fill assigned user if read level is own
This commit is contained in:
@@ -79,8 +79,7 @@ class DefaultsPopulator {
|
||||
* @private
|
||||
*/
|
||||
prepare(model, defaultHash) {
|
||||
const hasAssignedUsers =
|
||||
model.hasField('assignedUsers') &&
|
||||
const hasAssignedUsers = model.hasField('assignedUsers') &&
|
||||
model.getLinkParam('assignedUsers', 'entity') === 'User';
|
||||
|
||||
if (model.hasField('assignedUser') || hasAssignedUsers) {
|
||||
@@ -90,31 +89,7 @@ class DefaultsPopulator {
|
||||
assignedUserField = 'assignedUsers';
|
||||
}
|
||||
|
||||
let fillAssignedUser = true;
|
||||
|
||||
if (this.preferences.get('doNotFillAssignedUserIfNotRequired')) {
|
||||
fillAssignedUser = false;
|
||||
|
||||
if (model.getFieldParam(assignedUserField, 'required')) {
|
||||
fillAssignedUser = true;
|
||||
}
|
||||
else if (this.acl.getPermissionLevel('assignmentPermission') === 'no') {
|
||||
fillAssignedUser = true;
|
||||
}
|
||||
else if (
|
||||
this.acl.getPermissionLevel('assignmentPermission') === 'team' &&
|
||||
!this.user.get('defaultTeamId')
|
||||
) {
|
||||
fillAssignedUser = true;
|
||||
}
|
||||
else if (
|
||||
!this.acl.checkField(model.entityType, assignedUserField, 'edit')
|
||||
) {
|
||||
fillAssignedUser = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (fillAssignedUser) {
|
||||
if (this.toFillAssignedUser(model, assignedUserField)) {
|
||||
if (hasAssignedUsers) {
|
||||
defaultHash['assignedUsersIds'] = [this.user.id];
|
||||
defaultHash['assignedUsersNames'] = {};
|
||||
@@ -142,6 +117,42 @@ class DefaultsPopulator {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {import('model').default} model
|
||||
* @param {string} assignedUserField
|
||||
*/
|
||||
toFillAssignedUser(model, assignedUserField) {
|
||||
if (!this.preferences.get('doNotFillAssignedUserIfNotRequired')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (model.getFieldParam(assignedUserField, 'required')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.acl.getPermissionLevel('assignmentPermission') === 'no') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (
|
||||
this.acl.getPermissionLevel('assignmentPermission') === 'team' &&
|
||||
!this.user.get('defaultTeamId')
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.acl.getLevel(model.entityType, 'read') === 'own') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!this.acl.checkField(model.entityType, assignedUserField, 'edit')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {module:model} model
|
||||
* @param {Object.<string, *>} defaultHash
|
||||
|
||||
Reference in New Issue
Block a user