improve permissison handling in invoice screen (#2965)
This commit is contained in:
@@ -34,6 +34,7 @@ final class CustomerVoter extends Voter
|
||||
'comments',
|
||||
'comments_create',
|
||||
'details',
|
||||
'access',
|
||||
];
|
||||
|
||||
private $permissionManager;
|
||||
@@ -75,6 +76,22 @@ final class CustomerVoter extends Voter
|
||||
return false;
|
||||
}
|
||||
|
||||
// this is a virtual permission, only meant to be used by developer
|
||||
// it checks if access to the given customer is potentially possible
|
||||
if ($attribute === 'access') {
|
||||
if ($subject->getTeams()->count() === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
foreach ($subject->getTeams() as $team) {
|
||||
if ($user->isInTeam($team)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->permissionManager->hasRolePermission($user, $attribute . '_customer')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user