diff options
Diffstat (limited to 'lib/private/Share')
-rw-r--r-- | lib/private/Share/Constants.php | 54 | ||||
-rw-r--r-- | lib/private/Share/Helper.php | 9 | ||||
-rw-r--r-- | lib/private/Share/Share.php | 8 |
3 files changed, 17 insertions, 54 deletions
diff --git a/lib/private/Share/Constants.php b/lib/private/Share/Constants.php index 8cfa83f9ea2..c55caee6f0a 100644 --- a/lib/private/Share/Constants.php +++ b/lib/private/Share/Constants.php @@ -7,63 +7,17 @@ */ namespace OC\Share; -use OCP\Share\IShare; - class Constants { - /** - * @deprecated 17.0.0 - use IShare::TYPE_USER instead - */ - public const SHARE_TYPE_USER = 0; - /** - * @deprecated 17.0.0 - use IShare::TYPE_GROUP instead - */ - public const SHARE_TYPE_GROUP = 1; - // const SHARE_TYPE_USERGROUP = 2; // Internal type used by DefaultShareProvider - /** - * @deprecated 17.0.0 - use IShare::TYPE_LINK instead - */ - public const SHARE_TYPE_LINK = 3; - /** - * @deprecated 17.0.0 - use IShare::TYPE_EMAIL instead - */ - public const SHARE_TYPE_EMAIL = 4; - public const SHARE_TYPE_CONTACT = 5; // ToDo Check if it is still in use otherwise remove it - /** - * @deprecated 17.0.0 - use IShare::TYPE_REMOTE instead - */ - public const SHARE_TYPE_REMOTE = 6; - /** - * @deprecated 17.0.0 - use IShare::TYPE_CIRCLE instead - */ - public const SHARE_TYPE_CIRCLE = 7; - /** - * @deprecated 17.0.0 - use IShare::TYPE_GUEST instead - */ - public const SHARE_TYPE_GUEST = 8; - /** - * @deprecated 17.0.0 - use IShare::REMOTE_GROUP instead - */ - public const SHARE_TYPE_REMOTE_GROUP = 9; - /** - * @deprecated 17.0.0 - use IShare::TYPE_ROOM instead - */ - public const SHARE_TYPE_ROOM = 10; - // const SHARE_TYPE_USERROOM = 11; // Internal type used by RoomShareProvider - /** - * @deprecated 21.0.0 - use IShare::TYPE_DECK instead - */ - public const SHARE_TYPE_DECK = 12; - // const SHARE_TYPE_DECK_USER = 13; // Internal type used by DeckShareProvider - - // Note to developers: Do not add new share types here - public const FORMAT_NONE = -1; public const FORMAT_STATUSES = -2; public const FORMAT_SOURCES = -3; // ToDo Check if it is still in use otherwise remove it public const RESPONSE_FORMAT = 'json'; // default response format for ocs calls - public const TOKEN_LENGTH = 15; // old (oc7) length is 32, keep token length in db at least that for compatibility + public const MIN_TOKEN_LENGTH = 6; // 19,770,609,664 different possible variations + public const DEFAULT_TOKEN_LENGTH = 15; // 54,960,434,128,018,667,122,720,768 different possible variations + public const MAX_TOKEN_LENGTH = 32; // 8,167,835,760,036,914,488,254,418,108,462,708,901,695,678,621,570,564,096 different possible variations + public const TOKEN_LENGTH = self::DEFAULT_TOKEN_LENGTH; // old (oc7) length is 32, keep token length in db at least that for compatibility protected static $shareTypeUserAndGroups = -1; protected static $shareTypeGroupUserUnique = 2; diff --git a/lib/private/Share/Helper.php b/lib/private/Share/Helper.php index 76e7daeb9e5..d53f9d6ed94 100644 --- a/lib/private/Share/Helper.php +++ b/lib/private/Share/Helper.php @@ -126,4 +126,13 @@ class Helper extends \OC\Share\Constants { return false; } + + public static function getTokenLength(): int { + $config = \OCP\Server::get(\OCP\IAppConfig::class); + $tokenLength = $config->getValueInt('core', 'shareapi_token_length', self::DEFAULT_TOKEN_LENGTH); + $tokenLength = $tokenLength ?: self::DEFAULT_TOKEN_LENGTH; + + // Token length should be within the defined min and max limits + return max(self::MIN_TOKEN_LENGTH, min($tokenLength, self::MAX_TOKEN_LENGTH)); + } } diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php index 0af264fb968..1121d71e45f 100644 --- a/lib/private/Share/Share.php +++ b/lib/private/Share/Share.php @@ -54,8 +54,8 @@ class Share extends Constants { return true; } \OC::$server->get(LoggerInterface::class)->warning( - 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] - .' is already registered for '.$itemType, + 'Sharing backend ' . $class . ' not registered, ' . self::$backendTypes[$itemType]['class'] + . ' is already registered for ' . $itemType, ['app' => 'files_sharing']); } return false; @@ -133,8 +133,8 @@ class Share extends Constants { // for file/folder shares we need to compare file_source, otherwise we compare item_source // only group shares if they already point to the same target, otherwise the file where shared // before grouping of shares was added. In this case we don't group them to avoid confusions - if (($fileSharing && $item['file_source'] === $r['file_source'] && $item['file_target'] === $r['file_target']) || - (!$fileSharing && $item['item_source'] === $r['item_source'] && $item['item_target'] === $r['item_target'])) { + if (($fileSharing && $item['file_source'] === $r['file_source'] && $item['file_target'] === $r['file_target']) + || (!$fileSharing && $item['item_source'] === $r['item_source'] && $item['item_target'] === $r['item_target'])) { // add the first item to the list of grouped shares if (!isset($result[$key]['grouped'])) { $result[$key]['grouped'][] = $result[$key]; |