Blame view

sources/apps/files/lib/app.php 2.64 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  <?php
  
  /**
   * ownCloud - Core
   *
   * @author Morris Jobke
   * @copyright 2013 Morris Jobke morris.jobke@gmail.com
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either
   * version 3 of the License, or any later version.
   *
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
   *
   * You should have received a copy of the GNU Affero General Public
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
   */
  
  
  namespace OCA\Files;
  
  class App {
  	/**
  	 * @var \OC_L10N
  	 */
  	private $l10n;
  
  	/**
6d9380f96   Cédric Dupont   Update sources OC...
34
35
36
37
38
  	 * @var \OCP\INavigationManager
  	 */
  	private static $navigationManager;
  
  	/**
31b7f2792   Kload   Upgrade to ownclo...
39
40
41
42
43
44
45
46
47
48
  	 * @var \OC\Files\View
  	 */
  	private $view;
  
  	public function __construct($view, $l10n) {
  		$this->view = $view;
  		$this->l10n = $l10n;
  	}
  
  	/**
6d9380f96   Cédric Dupont   Update sources OC...
49
50
51
52
53
54
55
56
57
58
59
60
  	 * Returns the app's navigation manager
  	 *
  	 * @return \OCP\INavigationManager
  	 */
  	public static function getNavigationManager() {
  		if (self::$navigationManager === null) {
  			self::$navigationManager = new \OC\NavigationManager();
  		}
  		return self::$navigationManager;
  	}
  
  	/**
31b7f2792   Kload   Upgrade to ownclo...
61
62
63
64
65
66
67
68
69
70
71
72
  	 * rename a file
  	 *
  	 * @param string $dir
  	 * @param string $oldname
  	 * @param string $newname
  	 * @return array
  	 */
  	public function rename($dir, $oldname, $newname) {
  		$result = array(
  			'success' 	=> false,
  			'data'		=> NULL
  		);
6d9380f96   Cédric Dupont   Update sources OC...
73
74
75
76
77
78
79
  		// rename to non-existing folder is denied
  		if (!$this->view->file_exists($dir)) {
  			$result['data'] = array('message' => (string)$this->l10n->t(
  					'The target folder has been moved or deleted.',
  					array($dir)),
  					'code' => 'targetnotfound'
  				);
31b7f2792   Kload   Upgrade to ownclo...
80
81
  		// rename to existing file is denied
  		} else if ($this->view->file_exists($dir . '/' . $newname)) {
6d9380f96   Cédric Dupont   Update sources OC...
82

31b7f2792   Kload   Upgrade to ownclo...
83
84
85
86
87
88
89
90
  			$result['data'] = array(
  				'message'	=> $this->l10n->t(
  						"The name %s is already used in the folder %s. Please choose a different name.",
  						array($newname, $dir))
  			);
  		} else if (
  			// rename to "." is denied
  			$newname !== '.' and
31b7f2792   Kload   Upgrade to ownclo...
91
92
93
94
95
  			// THEN try to rename
  			$this->view->rename($dir . '/' . $oldname, $dir . '/' . $newname)
  		) {
  			// successful rename
  			$meta = $this->view->getFileInfo($dir . '/' . $newname);
6d9380f96   Cédric Dupont   Update sources OC...
96
  			$fileinfo = \OCA\Files\Helper::formatFileInfo($meta);
31b7f2792   Kload   Upgrade to ownclo...
97
98
99
100
101
102
103
104
105
106
107
108
  			$result['success'] = true;
  			$result['data'] = $fileinfo;
  		} else {
  			// rename failed
  			$result['data'] = array(
  				'message'	=> $this->l10n->t('%s could not be renamed', array($oldname))
  			);
  		}
  		return $result;
  	}
  
  }