Пример #1
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = \app\modules\admin\models\SeguridadUsuarios::findByUsername($this->username);
     }
     return $this->_user;
 }
Пример #2
0
 public function beforeAction($action)
 {
     $accion = str_ireplace("action", "", $action->actionMethod);
     try {
         if (!SeguridadUsuarios::hasAccess($this->module->id, $this->id, $accion)) {
             throw new ForbiddenHttpException("DISCULPE USTED NO POSEE LOS PERMISOS NECESARIOS PARA ENTRAR AL SISTEMA");
         }
     } catch (Exception $ex) {
         $this->redirect(['/site/index']);
     }
     return true;
 }
Пример #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdUsuario()
 {
     return $this->hasOne(SeguridadUsuarios::className(), ['id_usuario' => 'id_usuario']);
 }
Пример #4
0
 public static function hasAccess($module, $controller = null, $action = null)
 {
     try {
         if (strcmp(strtoupper($module), "SIAP") == 0 && strcmp(strtoupper($controller), "DEFAULT") == 0 && strcmp(strtoupper($action), "INDEX") == 0) {
             return true;
         }
         if (\Yii::$app->user->isGuest) {
             return false;
         }
         $usuario = SeguridadUsuarios::findOne(\Yii::$app->user->identity->id);
         if ($usuario == null) {
             return false;
         }
         if ($usuario->isAdmin()) {
             return true;
         }
         if ($module == null) {
             return false;
         }
         $modulo = Modulo::findOne(['descripcion' => strtoupper($module)]);
         if ($controller == null) {
             if ($modulo) {
                 foreach ($usuario->idGrupos as $grupo) {
                     $grupo instanceof Grupo;
                     foreach ($grupo->idControladores as $controlador) {
                         $controlador instanceof Controlador;
                         if ($controlador->id_modulo == $modulo->id_modulo) {
                             return true;
                         }
                     }
                 }
             }
         } else {
             if ($action == null) {
                 $controlador = Controlador::findOne(['id_modulo' => $modulo->id_modulo, 'descripcion' => strtoupper($controller)]);
                 if ($modulo && $controlador) {
                     $controlador instanceof Controlador;
                     foreach ($usuario->idGrupos as $grupo) {
                         $grupo instanceof Grupo;
                         foreach ($grupo->idControladores as $controladorPermiso) {
                             if ($controlador->id_controlador == $controladorPermiso->id_controlador && $controlador->id_modulo == $modulo->id_modulo) {
                                 return true;
                             }
                         }
                     }
                 }
             } else {
                 $controlador = Controlador::findOne(['id_modulo' => $modulo->id_modulo, 'descripcion' => strtoupper($controller)]);
                 $accion = Acciones::findOne(['id_controlador' => $controlador->id_controlador, 'descripcion' => strtoupper($action)]);
                 if ($modulo && $controlador && $accion) {
                     $accion instanceof Acciones;
                     $controlador instanceof Controlador;
                     foreach ($usuario->idGrupos as $grupo) {
                         $grupo instanceof Grupo;
                         $permiso = AccionGrupo::findOne(['id_accion' => $accion->id_accion, 'id_controlador' => $controlador->id_controlador, 'id_grupo' => $grupo->id_grupo]);
                         if ($permiso) {
                             return true;
                         }
                     }
                 }
             }
         }
     } catch (Exception $ex) {
     }
     return false;
 }
Пример #5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSeguridadUsuarios()
 {
     return $this->hasMany(SeguridadUsuarios::className(), ['cedula' => 'cedula']);
 }
Пример #6
0
 public function actionValidar()
 {
     $return = array('success' => 'false', 'mensaje' => '');
     if (\yii::$app->request->isAjax) {
         $validar = \app\modules\admin\models\SeguridadUsuarios::find()->where(['cedula' => \yii::$app->request->post('cedula')])->one();
         if ($validar) {
             $return = array('success' => 'true', 'cedulau' => trim($validar->cedula), 'login' => trim($validar->login), 'iddireccion' => trim($validar->id_direccion));
         } else {
             $return = array('false' => 'true', 'mensaje' => 'no se encuentra cedula de usuario');
         }
     }
     echo json_encode($return);
     return;
 }
Пример #7
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSeguridadUsuarios()
 {
     return $this->hasMany(SeguridadUsuarios::className(), ['id_direccion' => 'iddireccion']);
 }
Пример #8
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getIdUsuarios()
 {
     return $this->hasMany(SeguridadUsuarios::className(), ['id_usuario' => 'id_usuario'])->viaTable('usuario_grupo', ['id_grupo' => 'id_grupo']);
 }
 /**
  * Search roles of user
  * @param  integer $id
  * @param  string  $target
  * @param  string  $term
  * @return string
  */
 public function actionBuscarPermisos()
 {
     try {
         $return = ['success' => false, 'message' => "No se pudo procesar la solicitud."];
         if (\Yii::$app->request->isAjax) {
             Yii::$app->response->format = 'json';
             $usuario = SeguridadUsuarios::findOne(Yii::$app->request->post("id"));
             $available = Grupo::getGrupos();
             $assigned = $usuario->getPermisos();
             //                $permisosGrupo = $grupo->getPermisos();
             //                $available = array_diff($available, $permisosGrupo);
             //                $assigned = array_intersect($available, $permisosGrupo);
             $available = \yii\helpers\Html::listBox("list-available", NULL, $available, ['id' => 'list-available', "multiple" => true, "size" => "20", "style" => "width:100%"]);
             $assigned = \yii\helpers\Html::listBox("list-assigned", NULL, $assigned, ['id' => 'list-assigned', "multiple" => true, "size" => "20", "style" => "width:100%"]);
             $return = ['success' => true, 'available' => $available, 'assigned' => $assigned];
         }
     } catch (Exception $ex) {
         $return = ['success' => false, 'message' => $ex->getMessage()];
     }
     return $return;
 }