diff --git a/external/nextcloud-notifications b/external/nextcloud-notifications index 69069071..09d3a1c9 160000 --- a/external/nextcloud-notifications +++ b/external/nextcloud-notifications @@ -1 +1 @@ -Subproject commit 69069071ff7a5775ddb06418f55f39593afdbbb1 +Subproject commit 09d3a1c9abcdd1c0ec4d8531907b56ac9f368666 diff --git a/external/nextcloud-server b/external/nextcloud-server index 8cfcb8e2..add4e436 160000 --- a/external/nextcloud-server +++ b/external/nextcloud-server @@ -1 +1 @@ -Subproject commit 8cfcb8e2a2f9ba1bbe993161f00d7dcebf07708f +Subproject commit add4e4365a4040d2e4e6aa79c0d03c3edd78583c diff --git a/packages/neon/neon/lib/src/widgets/account_tile.dart b/packages/neon/neon/lib/src/widgets/account_tile.dart index 5afa02c8..1c8ff4b1 100644 --- a/packages/neon/neon/lib/src/widgets/account_tile.dart +++ b/packages/neon/neon/lib/src/widgets/account_tile.dart @@ -43,7 +43,7 @@ class NeonAccountTile extends StatelessWidget { if (userDetails.data != null) ...[ Flexible( child: Text( - userDetails.data!.getDisplayName()!, + userDetails.data!.displayname, style: Theme.of(context).textTheme.bodyLarge!.copyWith( color: textColor, ), diff --git a/packages/nextcloud/lib/src/helpers.dart b/packages/nextcloud/lib/src/helpers.dart index a6b4895f..b156950e 100644 --- a/packages/nextcloud/lib/src/helpers.dart +++ b/packages/nextcloud/lib/src/helpers.dart @@ -14,12 +14,6 @@ NextcloudNotificationsNotificationDecryptedSubject decryptPushNotificationSubjec json.decode(privateKey.decrypt(subject)) as Map, ); -extension UserDetailsDisplayName on openapi.NextcloudProvisioningApiUserDetails { - /// This is used to work around an API change that wasn't made for every endpoint - /// See https://github.com/nextcloud/server/commit/5086335643b6181284ee50f57b95525002842992 - String? getDisplayName() => displayname ?? displayName; -} - /// See https://github.com/nextcloud/news/blob/4a107b3d53c4fe651ac704251b99e04a53cd587f/lib/Db/ListType.php enum NewsListType { feed(0), diff --git a/packages/nextcloud/lib/src/nextcloud.openapi.dart b/packages/nextcloud/lib/src/nextcloud.openapi.dart index 32691f03..72dc15b4 100644 --- a/packages/nextcloud/lib/src/nextcloud.openapi.dart +++ b/packages/nextcloud/lib/src/nextcloud.openapi.dart @@ -3196,6 +3196,7 @@ abstract class NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus jsonSerializers.deserializeWith(serializer, json)!; Map toJson() => jsonSerializers.serializeWith(serializer, this)! as Map; + bool? get restore; bool? get enabled; @BuiltValueField(wireName: 'supports_emoji') bool? get supportsEmoji; @@ -4015,7 +4016,7 @@ abstract class NextcloudProvisioningApiUserDetails BuiltList get additionalMail; @BuiltValueField(wireName: 'additional_mailScope') BuiltList get additionalMailScope; - String? get displayname; + String get displayname; String get displaynameScope; String get phone; String get phoneScope; @@ -4046,7 +4047,7 @@ abstract class NextcloudProvisioningApiUserDetails String? get notifyEmail; NextcloudProvisioningApiUserDetails_BackendCapabilities get backendCapabilities; @BuiltValueField(wireName: 'display-name') - String? get displayName; + String get displayName; static Serializer get serializer => _$nextcloudProvisioningApiUserDetailsSerializer; } diff --git a/packages/nextcloud/lib/src/nextcloud.openapi.g.dart b/packages/nextcloud/lib/src/nextcloud.openapi.g.dart index 05f56271..de1662b4 100644 --- a/packages/nextcloud/lib/src/nextcloud.openapi.g.dart +++ b/packages/nextcloud/lib/src/nextcloud.openapi.g.dart @@ -3757,6 +3757,12 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusSerializ {FullType specifiedType = FullType.unspecified}) { final result = []; Object? value; + value = object.restore; + if (value != null) { + result + ..add('restore') + ..add(serializers.serialize(value, specifiedType: const FullType(bool))); + } value = object.enabled; if (value != null) { result @@ -3784,6 +3790,9 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusSerializ iterator.moveNext(); final Object? value = iterator.current; switch (key) { + case 'restore': + result.restore = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool?; + break; case 'enabled': result.enabled = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool?; break; @@ -6109,6 +6118,8 @@ class _$NextcloudProvisioningApiUserDetailsSerializer serializers.serialize(object.additionalMail, specifiedType: const FullType(BuiltList, [FullType(String)])), 'additional_mailScope', serializers.serialize(object.additionalMailScope, specifiedType: const FullType(BuiltList, [FullType(String)])), + 'displayname', + serializers.serialize(object.displayname, specifiedType: const FullType(String)), 'displaynameScope', serializers.serialize(object.displaynameScope, specifiedType: const FullType(String)), 'phone', @@ -6160,6 +6171,8 @@ class _$NextcloudProvisioningApiUserDetailsSerializer 'backendCapabilities', serializers.serialize(object.backendCapabilities, specifiedType: const FullType(NextcloudProvisioningApiUserDetails_BackendCapabilities)), + 'display-name', + serializers.serialize(object.displayName, specifiedType: const FullType(String)), ]; Object? value; value = object.enabled; @@ -6180,24 +6193,12 @@ class _$NextcloudProvisioningApiUserDetailsSerializer ..add('email') ..add(serializers.serialize(value, specifiedType: const FullType(String))); } - value = object.displayname; - if (value != null) { - result - ..add('displayname') - ..add(serializers.serialize(value, specifiedType: const FullType(String))); - } value = object.notifyEmail; if (value != null) { result ..add('notify_email') ..add(serializers.serialize(value, specifiedType: const FullType(String))); } - value = object.displayName; - if (value != null) { - result - ..add('display-name') - ..add(serializers.serialize(value, specifiedType: const FullType(String))); - } return result; } @@ -6254,7 +6255,7 @@ class _$NextcloudProvisioningApiUserDetailsSerializer specifiedType: const FullType(BuiltList, [FullType(String)]))! as BuiltList); break; case 'displayname': - result.displayname = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; + result.displayname = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; case 'displaynameScope': result.displaynameScope = serializers.deserialize(value, specifiedType: const FullType(String))! as String; @@ -6338,7 +6339,7 @@ class _$NextcloudProvisioningApiUserDetailsSerializer as NextcloudProvisioningApiUserDetails_BackendCapabilities); break; case 'display-name': - result.displayName = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; + result.displayName = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; } } @@ -13537,6 +13538,8 @@ class NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_ThemingBuilder class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus extends NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus { @override + final bool? restore; + @override final bool? enabled; @override final bool? supportsEmoji; @@ -13545,7 +13548,8 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus [void Function(NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder)? updates]) => (NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder()..update(updates))._build(); - _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus._({this.enabled, this.supportsEmoji}) : super._(); + _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus._({this.restore, this.enabled, this.supportsEmoji}) + : super._(); @override NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus rebuild( @@ -13560,6 +13564,7 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus bool operator ==(Object other) { if (identical(other, this)) return true; return other is NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus && + restore == other.restore && enabled == other.enabled && supportsEmoji == other.supportsEmoji; } @@ -13567,6 +13572,7 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus @override int get hashCode { var _$hash = 0; + _$hash = $jc(_$hash, restore.hashCode); _$hash = $jc(_$hash, enabled.hashCode); _$hash = $jc(_$hash, supportsEmoji.hashCode); _$hash = $jf(_$hash); @@ -13576,6 +13582,7 @@ class _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus @override String toString() { return (newBuiltValueToStringHelper(r'NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus') + ..add('restore', restore) ..add('enabled', enabled) ..add('supportsEmoji', supportsEmoji)) .toString(); @@ -13588,6 +13595,10 @@ class NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder> { _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus? _$v; + bool? _restore; + bool? get restore => _$this._restore; + set restore(bool? restore) => _$this._restore = restore; + bool? _enabled; bool? get enabled => _$this._enabled; set enabled(bool? enabled) => _$this._enabled = enabled; @@ -13601,6 +13612,7 @@ class NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder get _$this { final $v = _$v; if ($v != null) { + _restore = $v.restore; _enabled = $v.enabled; _supportsEmoji = $v.supportsEmoji; _$v = null; @@ -13625,7 +13637,7 @@ class NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatusBuilder _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus _build() { final _$result = _$v ?? _$NextcloudCoreServerCapabilities_Ocs_Data_Capabilities_UserStatus._( - enabled: enabled, supportsEmoji: supportsEmoji); + restore: restore, enabled: enabled, supportsEmoji: supportsEmoji); replace(_$result); return _$result; } @@ -18682,7 +18694,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser @override final BuiltList additionalMailScope; @override - final String? displayname; + final String displayname; @override final String displaynameScope; @override @@ -18736,7 +18748,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser @override final NextcloudProvisioningApiUserDetails_BackendCapabilities backendCapabilities; @override - final String? displayName; + final String displayName; factory _$NextcloudProvisioningApiUserDetails([void Function(NextcloudProvisioningApiUserDetailsBuilder)? updates]) => (NextcloudProvisioningApiUserDetailsBuilder()..update(updates))._build(); @@ -18754,7 +18766,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser required this.emailScope, required this.additionalMail, required this.additionalMailScope, - this.displayname, + required this.displayname, required this.displaynameScope, required this.phone, required this.phoneScope, @@ -18781,7 +18793,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser required this.locale, this.notifyEmail, required this.backendCapabilities, - this.displayName}) + required this.displayName}) : super._() { BuiltValueNullFieldError.checkNotNull(id, r'NextcloudProvisioningApiUserDetails', 'id'); BuiltValueNullFieldError.checkNotNull(lastLogin, r'NextcloudProvisioningApiUserDetails', 'lastLogin'); @@ -18793,6 +18805,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser BuiltValueNullFieldError.checkNotNull(additionalMail, r'NextcloudProvisioningApiUserDetails', 'additionalMail'); BuiltValueNullFieldError.checkNotNull( additionalMailScope, r'NextcloudProvisioningApiUserDetails', 'additionalMailScope'); + BuiltValueNullFieldError.checkNotNull(displayname, r'NextcloudProvisioningApiUserDetails', 'displayname'); BuiltValueNullFieldError.checkNotNull(displaynameScope, r'NextcloudProvisioningApiUserDetails', 'displaynameScope'); BuiltValueNullFieldError.checkNotNull(phone, r'NextcloudProvisioningApiUserDetails', 'phone'); BuiltValueNullFieldError.checkNotNull(phoneScope, r'NextcloudProvisioningApiUserDetails', 'phoneScope'); @@ -18821,6 +18834,7 @@ class _$NextcloudProvisioningApiUserDetails extends NextcloudProvisioningApiUser BuiltValueNullFieldError.checkNotNull(locale, r'NextcloudProvisioningApiUserDetails', 'locale'); BuiltValueNullFieldError.checkNotNull( backendCapabilities, r'NextcloudProvisioningApiUserDetails', 'backendCapabilities'); + BuiltValueNullFieldError.checkNotNull(displayName, r'NextcloudProvisioningApiUserDetails', 'displayName'); } @override @@ -19223,7 +19237,8 @@ class NextcloudProvisioningApiUserDetailsBuilder emailScope, r'NextcloudProvisioningApiUserDetails', 'emailScope'), additionalMail: additionalMail.build(), additionalMailScope: additionalMailScope.build(), - displayname: displayname, + displayname: BuiltValueNullFieldError.checkNotNull( + displayname, r'NextcloudProvisioningApiUserDetails', 'displayname'), displaynameScope: BuiltValueNullFieldError.checkNotNull( displaynameScope, r'NextcloudProvisioningApiUserDetails', 'displaynameScope'), phone: BuiltValueNullFieldError.checkNotNull(phone, r'NextcloudProvisioningApiUserDetails', 'phone'), @@ -19243,8 +19258,7 @@ class NextcloudProvisioningApiUserDetailsBuilder twitterScope, r'NextcloudProvisioningApiUserDetails', 'twitterScope'), organisation: BuiltValueNullFieldError.checkNotNull( organisation, r'NextcloudProvisioningApiUserDetails', 'organisation'), - organisationScope: BuiltValueNullFieldError.checkNotNull( - organisationScope, r'NextcloudProvisioningApiUserDetails', 'organisationScope'), + organisationScope: BuiltValueNullFieldError.checkNotNull(organisationScope, r'NextcloudProvisioningApiUserDetails', 'organisationScope'), role: BuiltValueNullFieldError.checkNotNull(role, r'NextcloudProvisioningApiUserDetails', 'role'), roleScope: BuiltValueNullFieldError.checkNotNull(roleScope, r'NextcloudProvisioningApiUserDetails', 'roleScope'), headline: BuiltValueNullFieldError.checkNotNull(headline, r'NextcloudProvisioningApiUserDetails', 'headline'), @@ -19260,7 +19274,7 @@ class NextcloudProvisioningApiUserDetailsBuilder locale: BuiltValueNullFieldError.checkNotNull(locale, r'NextcloudProvisioningApiUserDetails', 'locale'), notifyEmail: notifyEmail, backendCapabilities: backendCapabilities.build(), - displayName: displayName); + displayName: BuiltValueNullFieldError.checkNotNull(displayName, r'NextcloudProvisioningApiUserDetails', 'displayName')); } catch (_) { late String _$failedField; try { diff --git a/packages/nextcloud/lib/src/nextcloud.openapi.json b/packages/nextcloud/lib/src/nextcloud.openapi.json index 84b0224d..0e6f6a85 100644 --- a/packages/nextcloud/lib/src/nextcloud.openapi.json +++ b/packages/nextcloud/lib/src/nextcloud.openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Nextcloud", - "version": "26.0.1", + "version": "27.0.0", "description": "All supported Nextcloud APIs in one", "license": { "name": "agpl", @@ -755,6 +755,9 @@ "type": "object", "additionalProperties": true, "properties": { + "restore": { + "type": "boolean" + }, "enabled": { "type": "boolean" }, @@ -1507,6 +1510,8 @@ "emailScope", "additional_mail", "additional_mailScope", + "display-name", + "displayname", "displaynameScope", "phone", "phoneScope", diff --git a/packages/nextcloud/lib/src/version_supported.dart b/packages/nextcloud/lib/src/version_supported.dart index 6403f8c9..edadd50c 100644 --- a/packages/nextcloud/lib/src/version_supported.dart +++ b/packages/nextcloud/lib/src/version_supported.dart @@ -1,7 +1,7 @@ part of '../nextcloud.dart'; /// Version of core/Server supported -const coreSupportedVersion = 26; +const coreSupportedVersion = 27; /// API version of the news app supported const newsSupportedVersion = 'v1-3'; diff --git a/packages/nextcloud/test/provisioning_api.dart b/packages/nextcloud/test/provisioning_api.dart index 45fdc60c..ea8587df 100644 --- a/packages/nextcloud/test/provisioning_api.dart +++ b/packages/nextcloud/test/provisioning_api.dart @@ -1,4 +1,3 @@ -import 'package:nextcloud/nextcloud.dart'; import 'package:test/test.dart'; import 'helper.dart'; @@ -20,7 +19,7 @@ Future run(final DockerImage image) async { test('Get current user', () async { final user = await client.provisioningApi.getCurrentUser(); expect(user.ocs.data.id, 'user1'); - expect(user.ocs.data.getDisplayName(), 'User One'); + expect(user.ocs.data.displayname, 'User One'); expect(user.ocs.data.displaynameScope, 'v2-federated'); expect(user.ocs.data.language, 'en'); }); @@ -28,7 +27,7 @@ Future run(final DockerImage image) async { test('Get user by username', () async { final user = await client.provisioningApi.getUser(userId: 'user1'); expect(user.ocs.data.id, 'user1'); - expect(user.ocs.data.getDisplayName(), 'User One'); + expect(user.ocs.data.displayname, 'User One'); expect(user.ocs.data.displaynameScope, 'v2-federated'); expect(user.ocs.data.language, 'en'); }); diff --git a/packages/nextcloud/test/webdav.dart b/packages/nextcloud/test/webdav.dart index f07d6bb4..7925a71e 100644 --- a/packages/nextcloud/test/webdav.dart +++ b/packages/nextcloud/test/webdav.dart @@ -47,7 +47,7 @@ Future run(final DockerImage image) async { ), )) .responses; - expect(responses, hasLength(9)); + expect(responses, hasLength(10)); final props = responses.singleWhere((final response) => response.href!.endsWith('/Nextcloud.png')).propstats.first.prop; expect(props.nchaspreview, isTrue); @@ -62,7 +62,7 @@ Future run(final DockerImage image) async { depth: 'infinity', )) .responses; - expect(responses, hasLength(37)); + expect(responses, hasLength(48)); }); test('Create directory', () async { @@ -96,7 +96,7 @@ Future run(final DockerImage image) async { ), )) .responses; - expect(responses, hasLength(11)); + expect(responses, hasLength(12)); expect( responses.singleWhere((final response) => response.href!.endsWith('/test.png')).propstats.first.prop.ocsize, pngBytes.lengthInBytes, diff --git a/specs/core.json b/specs/core.json index 6ed8a375..0d404e16 100644 --- a/specs/core.json +++ b/specs/core.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Core", - "version": "26.0.1", + "version": "27.0.0", "description": "Core functionality of Nextcloud", "license": { "name": "agpl", @@ -755,6 +755,9 @@ "type": "object", "additionalProperties": true, "properties": { + "restore": { + "type": "boolean" + }, "enabled": { "type": "boolean" }, diff --git a/specs/notifications.json b/specs/notifications.json index 340a16cb..bc3dd746 100644 --- a/specs/notifications.json +++ b/specs/notifications.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Notifications", - "version": "2.14.0", + "version": "2.15.0", "description": "This app provides a backend and frontend for the notification API available in Nextcloud.", "license": { "name": "agpl", diff --git a/specs/provisioning_api.json b/specs/provisioning_api.json index c409e897..f40045e2 100644 --- a/specs/provisioning_api.json +++ b/specs/provisioning_api.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Provisioning API", - "version": "1.16.0", + "version": "1.17.0", "description": "This application enables a set of APIs that external systems can use to manage users, groups and apps.", "license": { "name": "agpl", @@ -112,6 +112,8 @@ "emailScope", "additional_mail", "additional_mailScope", + "display-name", + "displayname", "displaynameScope", "phone", "phoneScope", diff --git a/specs/templates/appinfo_core.xml b/specs/templates/appinfo_core.xml index ff8571a6..c28c028e 100644 --- a/specs/templates/appinfo_core.xml +++ b/specs/templates/appinfo_core.xml @@ -4,6 +4,6 @@ Core Core functionality of Nextcloud - 26.0.1 + 27.0.0 agpl diff --git a/specs/templates/core.json b/specs/templates/core.json index ce3abdb5..e43b0105 100644 --- a/specs/templates/core.json +++ b/specs/templates/core.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Core", - "version": "26.0.1", + "version": "27.0.0", "description": "Core functionality of Nextcloud", "license": { "name": "agpl", diff --git a/specs/templates/notifications.json b/specs/templates/notifications.json index a44561df..b157d639 100644 --- a/specs/templates/notifications.json +++ b/specs/templates/notifications.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Notifications", - "version": "2.14.0", + "version": "2.15.0", "description": "This app provides a backend and frontend for the notification API available in Nextcloud.", "license": { "name": "agpl", diff --git a/specs/templates/provisioning_api.json b/specs/templates/provisioning_api.json index 153765d1..8dad48da 100644 --- a/specs/templates/provisioning_api.json +++ b/specs/templates/provisioning_api.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "Provisioning API", - "version": "1.16.0", + "version": "1.17.0", "description": "This application enables a set of APIs that external systems can use to manage users, groups and apps.", "license": { "name": "agpl", @@ -562,6 +562,14 @@ "type": "string", "default": "" } + }, + { + "name": "manager", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { diff --git a/specs/templates/user_status.json b/specs/templates/user_status.json index 309553e8..a7151aa4 100644 --- a/specs/templates/user_status.json +++ b/specs/templates/user_status.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "User status", - "version": "1.6.0", + "version": "1.7.0", "description": "User status", "license": { "name": "agpl", @@ -232,6 +232,36 @@ } } }, + "/ocs/v2.php/apps/user_status/api/v1/user_status/revert/{messageId}": { + "parameters": [ + { + "name": "messageId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "delete": { + "operationId": "userstatus-revertstatus-TODO", + "tags": [ + "user_status" + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, "/ocs/v2.php/apps/user_status/api/v1/predefined_statuses": { "get": { "operationId": "predefinedstatus-findall-TODO", diff --git a/specs/user_status.json b/specs/user_status.json index ac0a2206..78cd91e5 100644 --- a/specs/user_status.json +++ b/specs/user_status.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "User status", - "version": "1.6.0", + "version": "1.7.0", "description": "User status", "license": { "name": "agpl", diff --git a/tool/Dockerfile.dev b/tool/Dockerfile.dev index 0fc144ec..f585d46d 100644 --- a/tool/Dockerfile.dev +++ b/tool/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM nextcloud:26.0.1 +FROM nextcloud:27.0.0 WORKDIR /usr/src/nextcloud RUN chown -R www-data:www-data . USER www-data