芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/AdminPanelWebclient/vue/src/classes/user.js
import _ from 'lodash' import typesUtils from 'src/utils/types' import enums from 'src/enums' import GroupModel from 'src/classes/group' class UserModel { constructor (tenantId, serverData, completeData = null) { const UserRoles = enums.getUserRoles() this.tenantId = tenantId this.id = typesUtils.pInt(serverData?.Id) this.name = typesUtils.pString(serverData?.Name) this.publicId = typesUtils.pString(serverData?.PublicId) this.role = typesUtils.pEnum(serverData?.Role, UserRoles, UserRoles.Anonymous) this.disabled = typesUtils.pBool(serverData?.IsDisabled) this.uuid = typesUtils.pString(serverData?.UUID) this.quotaBytes = typesUtils.pInt(serverData?.QuotaBytes) this.note = typesUtils.pString(serverData?.Note) this.groups = typesUtils.pArray(serverData.Groups).map(groupData => new GroupModel(groupData)) this.setCompleteData(completeData) } setCompleteData (data) { this.completeData = data this.update(data) } update (data, allTenantGroups = null) { const UserRoles = enums.getUserRoles() if (data !== null) { this.role = typesUtils.pEnum(data?.Role, UserRoles, UserRoles.Anonymous) } if (data?.IsDisabled !== undefined) { this.disabled = typesUtils.pBool(data.IsDisabled) } if (data?.WriteSeparateLog !== undefined) { this.writeSeparateLog = typesUtils.pBool(data?.WriteSeparateLog) } if (data?.PublicId) { this.publicId = typesUtils.pString(data.PublicId) } if (data?.QuotaBytes) { this.quotaBytes = typesUtils.pInt(data.QuotaBytes) } if (data?.Note) { this.note = typesUtils.pString(data.Note) } if (_.isArray(allTenantGroups)) { const groupIds = typesUtils.pArray(data?.GroupIds) this.groups = groupIds.map(id => allTenantGroups.find(group => group.id === id)) } } addGroup (groupToAdd) { if (!this.groups.find(group => group.id === groupToAdd.id)) { this.groups = this.groups.concat([groupToAdd]) } } removeGroup (groupToRemove) { this.groups = this.groups.filter(group => group.id !== groupToRemove.id) } getData (field) { return this.completeData && this.completeData[field] } updateData (fieldsData) { if (!_.isEmpty(this.completeData)) { fieldsData.forEach(data => { this.completeData[data.field] = data.value }) } } } export default UserModel