Esempio n. 1
0
 /**
  * Método para obtener los submenús de cada menú según el perfil
  */
 public function getListadoSubmenuPorPerfil($entorno, $perfil, $menu)
 {
     $columns = 'menu.*';
     $join = 'LEFT JOIN recurso ON recurso.id = menu.recurso_id ';
     $join .= 'LEFT JOIN recurso_perfil ON recurso.id = recurso_perfil.recurso_id ';
     $conditions = "menu.menu_id = {$menu} AND menu.visibilidad = {$entorno} AND menu.activo = " . self::ACTIVO;
     //Verifico si el perfil tiene el comodín
     $recurso = new RecursoPerfil();
     if ($recurso->count("recurso_id = " . Recurso::COMODIN . " AND perfil_id= {$perfil}")) {
         $perfil = NULL;
         //Para que liste todos los submenús
     }
     $conditions .= (empty($perfil) or $perfil == Perfil::SUPER_USUARIO) ? '' : " AND recurso_perfil.perfil_id = {$perfil}";
     $group = 'menu.id';
     $order = 'menu.posicion ASC';
     return $this->find("columns: {$columns}", "join: {$join}", "conditions: {$conditions}", "group: {$group}", "order: {$order}");
 }
Esempio n. 2
0
 /**
  * Método para listar
  */
 public function listar($order = 'order.modulo.asc')
 {
     if (Input::hasPost('privilegios') or Input::hasPost('old_privilegios')) {
         if (RecursoPerfil::setRecursoPerfil(Input::post('privilegios'), Input::post('old_privilegios'))) {
             Flash::valid('Los privilegios se han registrado correctamente!');
             Input::delete('privilegios');
             //Para que no queden persistentes
             Input::delete('old_privilegios');
         }
     }
     $recurso = new Recurso();
     $this->recursos = $recurso->getListadoRecursoPorModulo(Recurso::ACTIVO);
     $perfil = new Perfil();
     $this->perfiles = $perfil->getListadoPerfil(Perfil::ACTIVO);
     $privilegio = new RecursoPerfil();
     $this->privilegios = $privilegio->getPrivilegiosToArray();
     $this->order = $order;
     $this->page_title = 'Permisos y privilegios de usuarios';
 }
Esempio n. 3
0
 /**
  * Método para registrar los privilegios a los perfiles
  */
 public static function setRecursoPerfil($privilegios, $old_privilegios = NULL)
 {
     $obj = new RecursoPerfil();
     $obj->begin();
     //Elimino los antiguos privilegios
     if (!empty($old_privilegios)) {
         $items = explode(',', $old_privilegios);
         foreach ($items as $value) {
             $data = explode('-', $value);
             //el formato es 1-4 = recurso-rol
             if ($data[0] != Recurso::DASHBOARD && $data[0] != Recurso::MI_CUENTA) {
                 //Para que no elimine el principal y mi cuenta
                 if (!$obj->delete("recurso_id = {$data['0']} AND perfil_id = {$data['1']}")) {
                     $obj->rollback();
                     return FALSE;
                 }
             }
         }
     }
     if (!empty($privilegios)) {
         foreach ($privilegios as $value) {
             $data = explode('-', $value);
             //el formato es 1-4 = recurso_id-perfil_id
             $obj->recurso_id = $data[0];
             $obj->perfil_id = $data[1];
             if ($obj->exists("recurso_id={$obj->recurso_id} AND perfil_id={$obj->perfil_id}")) {
                 continue;
             }
             if (!$obj->create()) {
                 $obj->rollback();
                 return FALSE;
             }
         }
     }
     $obj->commit();
     return TRUE;
 }
Esempio n. 4
0
 /**
  * Callback que se ejecuta después de guardar/modificar un perfil
  */
 protected function after_save()
 {
     $data = array();
     $data[] = Recurso::DASHBOARD . '-' . $this->id;
     if (!RecursoPerfil::setRecursoPerfil($data)) {
         Flash::info("No se ha podido establcer el recurso 'dashboard' preestablecido al perfil.");
         return 'cancel';
     }
     $data = array();
     $data[] = Recurso::MI_CUENTA . '-' . $this->id;
     if (!RecursoPerfil::setRecursoPerfil($data)) {
         Flash::info("No se ha podido establcer el recurso 'Mi Cuenta' preestablecido al perfil.");
         return 'cancel';
     }
 }
Esempio n. 5
0
 /**
  * Callback que se ejecuta después de guardar/modificar un perfil
  */
 protected function after_save()
 {
     $data = array();
     $data[] = Recurso::DASHBOARD . '-' . $this->id;
     RecursoPerfil::setRecursoPerfil($data);
     $data = array();
     $data[] = Recurso::MI_CUENTA . '-' . $this->id;
     RecursoPerfil::setRecursoPerfil($data);
 }