User roles and permission management via Admin UI (#1231)

This commit is contained in:
Kevin Papst
2019-11-10 18:53:56 +01:00
committed by GitHub
parent c6c4098759
commit af0f89774e
58 changed files with 1355 additions and 186 deletions

View File

@@ -29,10 +29,6 @@ abstract class AbstractVoter extends Voter
*/
protected $roleManager;
/**
* @param AclDecisionManager $decisionManager
* @param RolePermissionManager $roleManager
*/
public function __construct(AclDecisionManager $decisionManager, RolePermissionManager $roleManager)
{
$this->decisionManager = $decisionManager;

View File

@@ -30,13 +30,7 @@ class RolePermissionVoter extends AbstractVoter
return false;
}
// and which is not neither a user role like USER_ADMIN
// nor an implicit role like IS_REMEMBERED / IS_FULLY_AUTHENTICATED
if (strpos($attribute, 'ROLE_') === false && strpos($attribute, 'IS_') === false) {
return $this->isRegisteredPermission($attribute);
}
return false;
return $this->isRegisteredPermission($attribute);
}
/**
@@ -53,12 +47,6 @@ class RolePermissionVoter extends AbstractVoter
return false;
}
foreach ($user->getRoles() as $role) {
if ($this->hasPermission($role, $attribute)) {
return true;
}
}
return false;
return $this->hasRolePermission($user, $attribute);
}
}

View File

@@ -82,15 +82,8 @@ class UserVoter extends AbstractVoter
return $this->hasRolePermission($user, 'delete_user');
// used in templates and ProfileController
case self::VIEW:
case self::EDIT:
// always allow the user to edit these own settings
if ($subject->getId() === $user->getId()) {
return true;
}
// no break on purpose
case self::PREFERENCES:
case self::PASSWORD:
case self::API_TOKEN: