diff --git a/api/funkwhale_api/manage/serializers.py b/api/funkwhale_api/manage/serializers.py index 87e34e173c07b5a6916a887eb3f52d3dcbcc0388..5f1e25240fd5a73164bf3f8cbed432a602862eff 100644 --- a/api/funkwhale_api/manage/serializers.py +++ b/api/funkwhale_api/manage/serializers.py @@ -93,11 +93,13 @@ class ManageUserSimpleSerializer(serializers.ModelSerializer): "date_joined", "last_activity", "privacy_level", + "upload_quota", ) class ManageUserSerializer(serializers.ModelSerializer): permissions = PermissionsSerializer(source="*") + upload_quota = serializers.IntegerField(allow_null=True) class Meta: model = users_models.User @@ -113,6 +115,7 @@ class ManageUserSerializer(serializers.ModelSerializer): "last_activity", "permissions", "privacy_level", + "upload_quota", ) read_only_fields = [ "id", diff --git a/front/src/views/admin/users/UsersDetail.vue b/front/src/views/admin/users/UsersDetail.vue index 4e750cafa188218d48049c288ffa654118189087..21e7b9811fdae29b1be9e05d6060343c1485e979 100644 --- a/front/src/views/admin/users/UsersDetail.vue +++ b/front/src/views/admin/users/UsersDetail.vue @@ -78,6 +78,25 @@ </select> </td> </tr> + <tr> + <td> + <translate>Upload quota</translate> + <span :data-tooltip="labels.uploadQuota"><i class="question circle icon"></i></span> + </td> + <td> + <div class="ui right labeled input"> + <input + class="ui input" + @change="update('upload_quota', true)" + v-model.number="object.upload_quota" + step="100" + type="number" /> + <div class="ui basic label"> + <translate>MB</translate> + </div> + </div> + </td> + </tr> </tbody> </table> </div> @@ -122,8 +141,12 @@ export default { self.isLoading = false }) }, - update (attr) { + update (attr, toNull) { let newValue = this.object[attr] + if (toNull && !newValue) { + newValue = null + } + console.log(newValue, typeof(newValue)) let params = {} if (attr === 'permissions') { params['permissions'] = {} @@ -143,7 +166,8 @@ export default { computed: { labels () { return { - inactive: this.$gettext('Determine if the user account is active or not. Inactive users cannot login or use the service.') + inactive: this.$gettext('Determine if the user account is active or not. Inactive users cannot login or use the service.'), + uploadQuota: this.$gettext('Determine how much content the user can upload. Leave empty to use the default value of the instance.') } }, allPermissions () {