@allow_empty_body
def create(self, uid, display_name, email=None, max_buckets=None,
- suspended=None, generate_key=None, access_key=None,
+ system=None, suspended=None, generate_key=None, access_key=None,
secret_key=None, daemon_name=None):
params = {'uid': uid}
if display_name is not None:
params['email'] = email
if max_buckets is not None:
params['max-buckets'] = max_buckets
+ if system is not None:
+ params['system'] = system
if suspended is not None:
params['suspended'] = suspended
if generate_key is not None:
@allow_empty_body
def set(self, uid, display_name=None, email=None, max_buckets=None,
- suspended=None, daemon_name=None):
+ system=None, suspended=None, daemon_name=None):
params = {'uid': uid}
if display_name is not None:
params['display-name'] = display_name
params['email'] = email
if max_buckets is not None:
params['max-buckets'] = max_buckets
+ if system is not None:
+ params['system'] = system
if suspended is not None:
params['suspended'] = suspended
result = self.proxy(daemon_name, 'POST', 'user', params)
</tr>
<tr>
<td i18n
- class="bold">System</td>
- <td>{{ user.system === 'true' | booleanText }}</td>
+ class="bold">System user</td>
+ <td>{{ user.system | booleanText }}</td>
</tr>
<tr>
<td i18n
});
it('should show correct "System" info', () => {
- component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
+ component.selection = { uid: '', email: '', system: true, keys: [], swift_keys: [] };
component.ngOnChanges();
fixture.detectChanges();
const detailsTab = fixture.debugElement.nativeElement.querySelectorAll(
'.table.table-striped.table-bordered tr td'
);
- expect(detailsTab[10].textContent).toEqual('System');
+ expect(detailsTab[10].textContent).toEqual('System user');
expect(detailsTab[11].textContent).toEqual('Yes');
- component.selection.system = 'false';
+ component.selection.system = false;
component.ngOnChanges();
fixture.detectChanges();
</div>
</div>
+ <!-- System User -->
+ <div class="form-group row">
+ <div class="cd-col-form-offset">
+ <div class="custom-control custom-checkbox">
+ <input class="custom-control-input"
+ id="system"
+ type="checkbox"
+ formControlName="system">
+ <label class="custom-control-label"
+ for="system"
+ i18n>System user</label>
+ <cd-helper i18n>System users are distinct from regular users, they are used by the RGW service to perform administrative tasks, manage buckets and objects</cd-helper>
+ </div>
+ </div>
+ </div>
+
<!-- S3 key -->
<fieldset *ngIf="!editing">
<legend i18n>S3 key</legend>
max_buckets: -1,
secret_key: '',
suspended: false,
+ system: false,
uid: null
});
});
display_name: null,
email: null,
max_buckets: -1,
- suspended: false
+ suspended: false,
+ system: false
});
});
max_buckets: 0,
secret_key: '',
suspended: false,
+ system: false,
uid: null
});
});
display_name: null,
email: null,
max_buckets: 0,
- suspended: false
+ suspended: false,
+ system: false
});
});
max_buckets: 100,
secret_key: '',
suspended: false,
+ system: false,
uid: null
});
});
display_name: null,
email: null,
max_buckets: 100,
- suspended: false
+ suspended: false,
+ system: false
});
});
});
display_name: null,
email: '',
max_buckets: 1000,
- suspended: false
+ suspended: false,
+ system: false
});
});
1000,
[CdValidators.requiredIf({ max_buckets_mode: '1' }), CdValidators.number(false)]
],
+ system: [false],
suspended: [false],
// S3 key
generate_key: [true],
* @return {Boolean} Returns TRUE if the general user settings have been modified.
*/
private _isGeneralDirty(): boolean {
- return ['display_name', 'email', 'max_buckets_mode', 'max_buckets', 'suspended'].some(
+ return ['display_name', 'email', 'max_buckets_mode', 'max_buckets', 'system', 'suspended'].some(
(path) => {
return this.userForm.get(path).dirty;
}
const result = {
uid: this.getUID(),
display_name: this.userForm.getValue('display_name'),
+ system: this.userForm.getValue('system'),
suspended: this.userForm.getValue('suspended'),
email: '',
max_buckets: this.userForm.getValue('max_buckets'),
*/
private _getUpdateArgs() {
const result: Record<string, any> = {};
- const keys = ['display_name', 'email', 'max_buckets', 'suspended'];
+ const keys = ['display_name', 'email', 'max_buckets', 'system', 'suspended'];
for (const key of keys) {
result[key] = this.userForm.getValue(key);
}
type: string
suspended:
type: string
+ system:
+ type: string
uid:
type: string
required:
type: string
suspended:
type: string
+ system:
+ type: string
type: object
responses:
'200':