Beispiel #1
0
 public function saveUsuarioRolList($con = null)
 {
     if (!$this->isValid()) {
         throw $this->getErrorSchema();
     }
     if (!isset($this->widgetSchema['usuario_rol_list'])) {
         // somebody has unset this widget
         return;
     }
     if (is_null($con)) {
         $con = $this->getConnection();
     }
     $c = new Criteria();
     $c->add(UsuarioRolPeer::FK_ROL_ID, $this->object->getPrimaryKey());
     UsuarioRolPeer::doDelete($c, $con);
     $values = $this->getValue('usuario_rol_list');
     if (is_array($values)) {
         foreach ($values as $value) {
             $obj = new UsuarioRol();
             $obj->setFkRolId($this->object->getPrimaryKey());
             $obj->setFkUsuarioId($value);
             $obj->save();
         }
     }
 }
Beispiel #2
0
 /**
  * Carga las credenciales del usuario
  * en la session del usuario
  *
  * @param integer $usuario_id identificador del usuario a cargar
  * en la session
  */
 public function cargarCredenciales($usuario_id)
 {
     //limpio las credenciales actuales si las hay
     $this->clearCredentials();
     /* asigno las credenciales x rol */
     $crol = new Criteria();
     $crol->add(UsuarioRolPeer::FK_USUARIO_ID, $usuario_id);
     $roles = UsuarioRolPeer::doSelect($crol);
     $user_roles = array();
     //por cada rol los cargo y tambien busco los permisos y los asigno
     foreach ($roles as $rol) {
         $user_rol['id'] = $rol->getRol()->getId();
         $user_rol['nombre'] = $rol->getRol();
         array_push($user_roles, $user_rol);
         $this->log('obteniendo rol: ' . $rol->getRol()->getNombre());
         $permisos = $rol->getRol()->getRolPermisos();
         foreach ($permisos as $permiso) {
             $this->log(sprintf('permiso desde rol: %s', $permiso->getPermiso()));
             $this->addCredential($permiso->getPermiso()->getNombre());
         }
     }
     $this->setAttribute('roles', $user_roles);
     /* asign credenciales por usuario */
     $this->log('obteniendo permisos x usuario:');
     $cuser = new Criteria();
     $cuser->add(UsuarioPermisoPeer::FK_USUARIO_ID, $usuario_id);
     $permisos = UsuarioPermisoPeer::doSelect($cuser);
     foreach ($permisos as $permiso) {
         $this->log('permiso desde usuario: ' . $permiso->getPermiso());
         $this->addCredential($permiso->getPermiso()->getNombre());
     }
     // quitando credenciales para la demo
     if (sfConfig::get('sf_environment') == 'demo') {
         $this->log('{DEMO} quitando credenciales');
         $this->removeCredential('usuario');
         $this->removeCredential('rol');
     }
 }
Beispiel #3
0
 /**
  * Modificar los roles y permisos del usuario
  */
 function executeEditPermiso($request)
 {
     $this->usuario = UsuarioPeer::retrieveByPk($this->getRequestParameter('id'));
     $this->forward404Unless($this->usuario);
     // estos son los permisos que tiene el usuario
     $c = new Criteria();
     $c->add(UsuarioPermisoPeer::FK_USUARIO_ID, $this->usuario->getId());
     $usuarioPermisos = UsuarioPermisoPeer::doSelectJoinPermiso($c);
     $optionsUsuarioPermisos = array();
     foreach ($usuarioPermisos as $usuarioPermiso) {
         $optionsUsuarioPermisos[$usuarioPermiso->getFkPermisoId()] = $usuarioPermiso->getPermiso()->getNombre();
     }
     $this->optionsUsuarioPermisos = $optionsUsuarioPermisos;
     // estos son todos los permisos existentes
     $todosLosPermisos = array();
     $c = new Criteria();
     // permisos
     $permisos = PermisoPeer::doSelect(new Criteria());
     foreach ($permisos as $permiso) {
         $todosLosPermisos[$permiso->getId()] = $permiso->getNombre();
     }
     // estos son los permisos existentes menos los del usuario
     $this->optionsPermisos = array_diff_key($todosLosPermisos, $this->optionsUsuarioPermisos);
     //cargo todos roles
     $c = new Criteria();
     $c->add(RolPeer::ACTIVO, 1);
     $roles = RolPeer::doSelect($c);
     $optionsRol = array();
     foreach ($roles as $rol) {
         $optionsRol[$rol->getId()] = $rol->getNombre();
     }
     $this->optionsRol = $optionsRol;
     //cargo roles del usuario
     $c = new Criteria();
     $c->add(UsuarioRolPeer::FK_USUARIO_ID, $this->usuario->getId());
     $this->usuarioroles = UsuarioRolPeer::doSelectJoinRol($c);
 }
Beispiel #4
0
 public function getUsuarioRolsJoinRol($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     if ($criteria === null) {
         $criteria = new Criteria(UsuarioPeer::DATABASE_NAME);
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     if ($this->collUsuarioRols === null) {
         if ($this->isNew()) {
             $this->collUsuarioRols = array();
         } else {
             $criteria->add(UsuarioRolPeer::FK_USUARIO_ID, $this->id);
             $this->collUsuarioRols = UsuarioRolPeer::doSelectJoinRol($criteria, $con, $join_behavior);
         }
     } else {
         $criteria->add(UsuarioRolPeer::FK_USUARIO_ID, $this->id);
         if (!isset($this->lastUsuarioRolCriteria) || !$this->lastUsuarioRolCriteria->equals($criteria)) {
             $this->collUsuarioRols = UsuarioRolPeer::doSelectJoinRol($criteria, $con, $join_behavior);
         }
     }
     $this->lastUsuarioRolCriteria = $criteria;
     return $this->collUsuarioRols;
 }
Beispiel #5
0
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = UsuarioRolPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setFkUsuarioId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setFkRolId($arr[$keys[1]]);
     }
 }
Beispiel #6
0
 public static function retrieveByPK($fk_usuario_id, $fk_rol_id, PropelPDO $con = null)
 {
     $key = serialize(array((string) $fk_usuario_id, (string) $fk_rol_id));
     if (null !== ($obj = UsuarioRolPeer::getInstanceFromPool($key))) {
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(UsuarioRolPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $criteria = new Criteria(UsuarioRolPeer::DATABASE_NAME);
     $criteria->add(UsuarioRolPeer::FK_USUARIO_ID, $fk_usuario_id);
     $criteria->add(UsuarioRolPeer::FK_ROL_ID, $fk_rol_id);
     $v = UsuarioRolPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }