Exemplo n.º 1
0
 public function getUsuarioPermisos($criteria = null, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(UsuarioPeer::DATABASE_NAME);
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     if ($this->collUsuarioPermisos === null) {
         if ($this->isNew()) {
             $this->collUsuarioPermisos = array();
         } else {
             $criteria->add(UsuarioPermisoPeer::FK_USUARIO_ID, $this->id);
             UsuarioPermisoPeer::addSelectColumns($criteria);
             $this->collUsuarioPermisos = UsuarioPermisoPeer::doSelect($criteria, $con);
         }
     } else {
         if (!$this->isNew()) {
             $criteria->add(UsuarioPermisoPeer::FK_USUARIO_ID, $this->id);
             UsuarioPermisoPeer::addSelectColumns($criteria);
             if (!isset($this->lastUsuarioPermisoCriteria) || !$this->lastUsuarioPermisoCriteria->equals($criteria)) {
                 $this->collUsuarioPermisos = UsuarioPermisoPeer::doSelect($criteria, $con);
             }
         }
     }
     $this->lastUsuarioPermisoCriteria = $criteria;
     return $this->collUsuarioPermisos;
 }
Exemplo n.º 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');
     }
 }
Exemplo n.º 3
0
 public static function retrieveByPK($fk_usuario_id, $fk_permiso_id, PropelPDO $con = null)
 {
     $key = serialize(array((string) $fk_usuario_id, (string) $fk_permiso_id));
     if (null !== ($obj = UsuarioPermisoPeer::getInstanceFromPool($key))) {
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(UsuarioPermisoPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $criteria = new Criteria(UsuarioPermisoPeer::DATABASE_NAME);
     $criteria->add(UsuarioPermisoPeer::FK_USUARIO_ID, $fk_usuario_id);
     $criteria->add(UsuarioPermisoPeer::FK_PERMISO_ID, $fk_permiso_id);
     $v = UsuarioPermisoPeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }