{ "translations": { "Shared with %1$s" : "Partagé avec %1$s", "Shared with {email}" : "Partagé avec {email}", "Shared with %1$s by %2$s" : "Partagé avec %1$s par %2$s", "Shared with {email} by {actor}" : "Partagé avec {email} par {actor}", "You shared %1$s with %2$s by mail" : "Vous avez partagé %1$s avec %2$s par email", "You shared {file} with {email} by mail" : "Vous avez partagé {file} avec {email} par email", "%3$s shared %1$s with %2$s by mail" : "%3$s a partagé %1$s avec %2$s par email", "{actor} shared {file} with {email} by mail" : "{actor} a partagé {file} avec {email} par email", "Sharing %s failed, this item is already shared with %s" : "Le partage de %s a échoué, cet élément est déjà partagé avec %s", "Failed to send share by E-mail" : "Erreur lors de l'envoi du partage par email", "%s shared »%s« with you" : "%s a partagé «%s» avec vous", "%s shared »%s« with you on behalf of %s" : "%s a partagé «%s» avec vous de la part de %s", "Failed to create the E-mail" : "Erreur lors de la création du mail", "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "Could not find share" : "Impossible de trouver le partage", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Bonjour,\n\n%s a partagé «%s» avec vous de la part de %s.\n\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Bonjour,\n\n%s a partagé «%s» avec vous.\n\n%s\n\n", "Cheers!" : "À bientôt !", "Hey there,\n\n%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n\nIt is protected with the following password: %s\n\n" : "Bonjour,\n\n%s a partagé «%s» avec vous.\nVous avez normalement déjà reçu un autre email avec un lien pour y accéder.\n\nIl est protégé avec le mot de passe suivant : %s\n", "Hey there,

%s shared %s with you on behalf of %s.

" : "Bonjour,

%s a partagé %s avec vous de la part de %s.

", "Hey there,

%s shared %s with you.

" : "Bonjour,

%s a partagé %s avec vous.

", "Hey there,

%s shared %s with you.
You should have already received a separate mail with a link to access it.

It is protected with the following password: %s

" : "Bonjour,

%s a partagé %s avec vous.
Vous avez normalement déjà reçu un autre email avec un lien pour y accéder.

Il est protégé avec le mot de passe suivant : %s

", "Share by mail" : "Partage par email", "Send a personalized link to a file or folder by mail." : "Envoyer un lien personnalisé vers un fichier ou un dossier par email.", "Send password by mail" : "Envoyer le mot de passe par email" },"pluralForm" :"nplurals=2; plural=(n > 1);" }ore/user_retry_trait'>artonge/chore/user_retry_trait Nextcloud server, a safe home for all your data: https://github.com/nextcloud/serverwww-data
summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/Helper.php
blob: 72dea4b7dcb2c9f162ddd3d8c2a5c521da962cc4 (plain)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/**
 * @copyright Copyright (c) 2016, ownCloud, Inc.
 *
 * @author Bart Visscher <bartv@thisnet.nl>
 * @author Björn Schießle <bjoern@schiessle.org>
 * @author Joas Schilling <coding@schilljs.com>
 * @author Lukas Reschke <lukas@statuscode.ch>
 * @author Morris Jobke <hey@morrisjobke.de>
 * @author Robin Appelman <robin@icewind.nl>
 * @author Roeland Jago Douma <roeland@famdouma.nl>
 * @author Vincent Petry <pvince81@owncloud.com>
 *
 * @license AGPL-3.0
 *
 * This code is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 *
 * This program 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, version 3,
 * along with this program.  If not, see <http://www.gnu.org/licenses/>
 *
 */
namespace OCA\Files_Sharing;

use OC\Files\Filesystem;
use OC\Files\View;
use OCP\Files\NotFoundException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\User;

class Helper {

	public static function registerHooks() {
		\OCP\Util::connectHook('OC_Filesystem', 'post_rename', '\OCA\Files_Sharing\Updater', 'renameHook');
		\OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');

		\OCP\Util::connectHook('OC_User', 'post_deleteUser', '\OCA\Files_Sharing\Hooks', 'deleteUser');
	}

	/**
	 * check if file name already exists and generate unique target
	 *
	 * @param string $path
	 * @param array $excludeList
	 * @param View $view
	 * @return string $path
	 */
	public static function generateUniqueTarget($path, $excludeList, $view) {
		$pathinfo = pathinfo($path);
		$ext = isset($pathinfo['extension']) ? '.'.$pathinfo['extension'] : '';
		$name = $pathinfo['filename'];
		$dir = $pathinfo['dirname'];
		$i = 2;
		while ($view->file_exists($path) || in_array($path, $excludeList)) {
			$path = Filesystem::normalizePath($dir . '/' . $name . ' ('.$i.')' . $ext);
			$i++;
		}

		return $path;
	}

	/**
	 * get default share folder
	 *
	 * @param \OC\Files\View
	 * @return string
	 */
	public static function getShareFolder($view = null) {
		if ($view === null) {
			$view = Filesystem::getView();
		}
		$shareFolder = \OC::$server->getConfig()->getSystemValue('share_folder', '/');
		$shareFolder = Filesystem::normalizePath($shareFolder);

		if (!$view->file_exists($shareFolder)) {
			$dir = '';
			$subdirs = explode('/', $shareFolder);
			foreach ($subdirs as $subdir) {
				$dir = $dir . '/' . $subdir;
				if (!$view->is_dir($dir)) {
					$view->mkdir($dir);
				}
			}
		}

		return $shareFolder;

	}

	/**
	 * set default share folder
	 *
	 * @param string $shareFolder
	 */
	public static function setShareFolder($shareFolder) {
		\OC::$server->getConfig()->setSystemValue('share_folder', $shareFolder);
	}

}