diff --git a/apps/provisioning_api/lib/ResponseDefinitions.php b/apps/provisioning_api/lib/ResponseDefinitions.php index 07777f1f35ffc..9912fbe586a9b 100644 --- a/apps/provisioning_api/lib/ResponseDefinitions.php +++ b/apps/provisioning_api/lib/ResponseDefinitions.php @@ -35,30 +35,32 @@ * used?: float|int, * } * + * @psalm-type Provisioning_APIUserDetailsScope = 'v2-private'|'v2-local'|'v2-federated'|'v2-published'|'private'|'contacts'|'public' + * * @psalm-type Provisioning_APIUserDetails = array{ * additional_mail: string[], - * additional_mailScope?: string[], + * additional_mailScope?: Provisioning_APIUserDetailsScope[], * address: string, - * addressScope?: string, - * avatarScope?: string, + * addressScope?: Provisioning_APIUserDetailsScope, + * avatarScope?: Provisioning_APIUserDetailsScope, * backend: string, * backendCapabilities: array{ * setDisplayName: bool, * setPassword: bool * }, * biography: string, - * biographyScope?: string, + * biographyScope?: Provisioning_APIUserDetailsScope, * display-name: string, * displayname: string, - * displaynameScope?: string, + * displaynameScope?: Provisioning_APIUserDetailsScope, * email: ?string, - * emailScope?: string, + * emailScope?: Provisioning_APIUserDetailsScope, * enabled?: bool, * fediverse: string, - * fediverseScope?: string, + * fediverseScope?: Provisioning_APIUserDetailsScope, * groups: string[], * headline: string, - * headlineScope?: string, + * headlineScope?: Provisioning_APIUserDetailsScope, * id: string, * language: string, * lastLogin: int, @@ -66,20 +68,20 @@ * manager: string, * notify_email: ?string, * organisation: string, - * organisationScope?: string, + * organisationScope?: Provisioning_APIUserDetailsScope, * phone: string, - * phoneScope?: string, + * phoneScope?: Provisioning_APIUserDetailsScope, * profile_enabled: string, - * profile_enabledScope?: string, + * profile_enabledScope?: Provisioning_APIUserDetailsScope, * quota: Provisioning_APIUserDetailsQuota, * role: string, - * roleScope?: string, + * roleScope?: Provisioning_APIUserDetailsScope, * storageLocation?: string, * subadmin: string[], * twitter: string, - * twitterScope?: string, + * twitterScope?: Provisioning_APIUserDetailsScope, * website: string, - * websiteScope?: string, + * websiteScope?: Provisioning_APIUserDetailsScope, * } * * @psalm-type Provisioning_APIGroupDetails = array{ diff --git a/apps/provisioning_api/openapi-full.json b/apps/provisioning_api/openapi-full.json index 522375a966bd0..2b219416c8d48 100644 --- a/apps/provisioning_api/openapi-full.json +++ b/apps/provisioning_api/openapi-full.json @@ -162,17 +162,17 @@ "additional_mailScope": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" } }, "address": { "type": "string" }, "addressScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "avatarScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "backend": { "type": "string" @@ -196,7 +196,7 @@ "type": "string" }, "biographyScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "display-name": { "type": "string" @@ -205,14 +205,14 @@ "type": "string" }, "displaynameScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "email": { "type": "string", "nullable": true }, "emailScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "enabled": { "type": "boolean" @@ -221,7 +221,7 @@ "type": "string" }, "fediverseScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "groups": { "type": "array", @@ -233,7 +233,7 @@ "type": "string" }, "headlineScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "id": { "type": "string" @@ -259,19 +259,19 @@ "type": "string" }, "organisationScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "phone": { "type": "string" }, "phoneScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "profile_enabled": { "type": "string" }, "profile_enabledScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "quota": { "$ref": "#/components/schemas/UserDetailsQuota" @@ -280,7 +280,7 @@ "type": "string" }, "roleScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "storageLocation": { "type": "string" @@ -295,13 +295,13 @@ "type": "string" }, "twitterScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "website": { "type": "string" }, "websiteScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" } } }, @@ -372,6 +372,18 @@ ] } } + }, + "UserDetailsScope": { + "type": "string", + "enum": [ + "v2-private", + "v2-local", + "v2-federated", + "v2-published", + "private", + "contacts", + "public" + ] } } }, diff --git a/apps/provisioning_api/openapi.json b/apps/provisioning_api/openapi.json index 3119a813832c0..ee48da0765828 100644 --- a/apps/provisioning_api/openapi.json +++ b/apps/provisioning_api/openapi.json @@ -162,17 +162,17 @@ "additional_mailScope": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" } }, "address": { "type": "string" }, "addressScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "avatarScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "backend": { "type": "string" @@ -196,7 +196,7 @@ "type": "string" }, "biographyScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "display-name": { "type": "string" @@ -205,14 +205,14 @@ "type": "string" }, "displaynameScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "email": { "type": "string", "nullable": true }, "emailScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "enabled": { "type": "boolean" @@ -221,7 +221,7 @@ "type": "string" }, "fediverseScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "groups": { "type": "array", @@ -233,7 +233,7 @@ "type": "string" }, "headlineScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "id": { "type": "string" @@ -259,19 +259,19 @@ "type": "string" }, "organisationScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "phone": { "type": "string" }, "phoneScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "profile_enabled": { "type": "string" }, "profile_enabledScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "quota": { "$ref": "#/components/schemas/UserDetailsQuota" @@ -280,7 +280,7 @@ "type": "string" }, "roleScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "storageLocation": { "type": "string" @@ -295,13 +295,13 @@ "type": "string" }, "twitterScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" }, "website": { "type": "string" }, "websiteScope": { - "type": "string" + "$ref": "#/components/schemas/UserDetailsScope" } } }, @@ -372,6 +372,18 @@ ] } } + }, + "UserDetailsScope": { + "type": "string", + "enum": [ + "v2-private", + "v2-local", + "v2-federated", + "v2-published", + "private", + "contacts", + "public" + ] } } }, diff --git a/lib/private/Accounts/AccountProperty.php b/lib/private/Accounts/AccountProperty.php index 207dc1d139d4c..456d04f356f26 100644 --- a/lib/private/Accounts/AccountProperty.php +++ b/lib/private/Accounts/AccountProperty.php @@ -32,6 +32,9 @@ use OCP\Accounts\IAccountProperty; class AccountProperty implements IAccountProperty { + /** + * @var IAccountManager::SCOPE_* + */ private string $scope; private string $locallyVerified = IAccountManager::NOT_VERIFIED; diff --git a/lib/public/Accounts/IAccountProperty.php b/lib/public/Accounts/IAccountProperty.php index 82a83e8948a5a..2374c7b272d0d 100644 --- a/lib/public/Accounts/IAccountProperty.php +++ b/lib/public/Accounts/IAccountProperty.php @@ -50,6 +50,7 @@ public function setValue(string $value): IAccountProperty; * @since 15.0.0 * * @param string $scope + * @psalm-param IAccountManager::SCOPE_* $scope * @return IAccountProperty * @throws InvalidArgumentException (since 22.0.0) */ @@ -89,6 +90,7 @@ public function getValue(): string; * @since 15.0.0 * * @return string + * @psalm-return IAccountManager::SCOPE_* */ public function getScope(): string;