aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Share
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Share')
-rw-r--r--lib/private/Share/Constants.php54
-rw-r--r--lib/private/Share/Helper.php9
-rw-r--r--lib/private/Share/Share.php8
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];