Ejemplo n.º 1
0
Archivo: Rule.php Proyecto: spryker/Acl
 /**
  * @param \Generated\Shared\Transfer\UserTransfer $userTransfer
  * @param string $bundle
  * @param string $controller
  * @param string $action
  *
  * @return bool
  */
 public function isAllowed(UserTransfer $userTransfer, $bundle, $controller, $action)
 {
     if ($this->userFacade->isSystemUser($userTransfer)) {
         $this->registerSystemUserRules($userTransfer);
     }
     if ($this->isIgnorable($bundle, $controller, $action)) {
         return true;
     }
     $groups = $this->group->getUserGroups($userTransfer->getIdUser());
     if (!$groups->getGroups()) {
         return false;
     }
     $this->provideUserRuleWhitelist();
     foreach ($groups->getGroups() as $group) {
         $rulesTransfer = $this->getRulesForGroupId($group->getIdAclGroup());
         if (!$rulesTransfer->getRules()) {
             continue;
         }
         $this->rulesValidator->setRules($rulesTransfer);
         $isAccessible = $this->rulesValidator->isAccessible($bundle, $controller, $action);
         if ($isAccessible) {
             return true;
         }
     }
     return false;
 }
Ejemplo n.º 2
0
Archivo: Role.php Proyecto: spryker/Acl
 /**
  * @param int $idUser
  *
  * @return \Generated\Shared\Transfer\RolesTransfer
  */
 public function getUserRoles($idUser)
 {
     $groupsTransfer = $this->group->getUserGroups($idUser);
     $rolesTransfer = new RolesTransfer();
     foreach ($groupsTransfer->getGroups() as $groupTransfer) {
         $this->addGroupRoles($rolesTransfer, $groupTransfer->getIdAclGroup());
     }
     return $rolesTransfer;
 }
Ejemplo n.º 3
0
 /**
  * @throws \Spryker\Zed\Acl\Business\Exception\GroupNotFoundException
  * @throws \Spryker\Zed\User\Business\Exception\UserNotFoundException
  *
  * @return void
  */
 private function addUserGroupRelations()
 {
     foreach ($this->config->getInstallerUsers() as $username => $config) {
         $group = $this->group->getByName($config['group']);
         if (!$group) {
             throw new GroupNotFoundException();
         }
         $user = $this->userFacade->getUserByUsername($username);
         if (!$user) {
             throw new UserNotFoundException();
         }
         if (!$this->group->hasUser($group->getIdAclGroup(), $user->getIdUser())) {
             $this->group->addUser($user->getIdUser(), $group->getIdAclGroup());
         }
     }
 }