Esempio n. 1
0
 /**
  * 
  * @param type $userLogged
  * @param DbTable_RoleRow $roleRow
  * @param type $allowPrivileges
  */
 public function updateRolePrivileges($userLogged, DbTable_RoleRow $roleRow, $allowPrivileges = array())
 {
     DbTable_Resource::getInstance()->getAdapter()->beginTransaction();
     try {
         /* Deleta todos os privilégios do papel */
         $whereDelete = array('RoleId = ?' => $roleRow->getId());
         DbTable_RoleResourcePrivilege::getInstance()->delete($whereDelete);
         foreach ($allowPrivileges as $allowPrivilege) {
             list($resourceId, $privilege) = explode(':', $allowPrivilege, 2);
             /* o usuário logado tem este privilégio? */
             $resource = DbTable_Resource::getInstance()->find($resourceId)->current();
             $allowEditPrivileges = $this->isAllowed($userLogged->getRole(), $resource->getResourceName(), $privilege);
             if (!$allowEditPrivileges) {
                 throw new Exception('Sem permissão para editar privilegio');
             }
             $roleResourcePrivilege = DbTable_RoleResourcePrivilege::getInstance()->createRow()->setRoleId($roleRow->getId())->setResourceId($resourceId)->setPrivilege($privilege);
             $roleResourcePrivilege->save();
         }
         self::clearAclCache();
         DbTable_Resource::getInstance()->getAdapter()->commit();
         return $this;
     } catch (Exception $e) {
         DbTable_Resource::getInstance()->getAdapter()->rollBack();
         throw new Exception($e);
     }
 }
 public function saveInsertGrade($data)
 {
     DbTable_BlockEnterpreneurGrade::getInstance()->getAdapter()->beginTransaction();
     try {
         $grade = DbTable_BlockEnterpreneurGrade::getInstance()->createRow()->setEnterpreneurFeatureId($data['EnterpreneurFeatureId'])->setCompetitionId($data['CompetitionId'])->setUserId($data['UserId'])->setQuestionnaireId($data['QuestionnaireId'])->setBlockId($data['BlockId'])->setDescription($data['Description'])->setPoints($data['Points']);
         $grade->save();
         DbTable_Resource::getInstance()->getAdapter()->commit();
         return $grade;
     } catch (Exception $e) {
         DbTable_Resource::getInstance()->getAdapter()->rollBack();
         throw new Exception($e);
     }
     return true;
 }