/** * Get a permission given to an id or a name. * @param Mixed $permission * @return Boolean */ public static function getPermission($permission) { $return = sfGuardPermissionPeer::retrieveByPK($permission); if (!$return) { $return = sfGuardPermissionPeer::retrieveByName($permission); } return $return; }
public function addPermissionByName($name, $con = null) { $permission = sfGuardPermissionPeer::retrieveByName($name); if (!$permission) { throw new Exception(sprintf('The permission "%s" does not exist.', $name)); } $up = new sfGuardUserPermission(); $up->setsfGuardUser($this); $up->setPermissionId($permission->getId()); $up->save($con); }
public function grantProjectGroupPermission($group_name, $permission_name) { $permission = sfGuardPermissionPeer::retrieveByName($this->getUuid() . '-' . $permission_name); $group = sfGuardGroupPeer::retrieveByName($this->getUuid() . '-' . $group_name); if ($permission == null) { sfContext::getInstance()->getLogger()->info('permission not found: [' . $this->getUuid() . $permission_name . ']'); return false; } elseif ($group == null) { sfContext::getInstance()->getLogger()->info('group not found: [' . $this->getUuid() . $group_name . ']'); return false; } // TODO: make sure that the group permission name does not already exist $groupPermission = new sfGuardGroupPermission(); $groupPermission->setGroupId($group->getPrimaryKey()); $groupPermission->setPermissionId($permission->getId()); $groupPermission->save(); sfContext::getInstance()->getLogger()->info('group permission saved: [' . $this->getUuid() . $group_name . ']:[' . $this->getUuid() . $permission_name . ']'); }