/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = UsuarioGrupo::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->joinWith("idGrupo"); $query->joinWith("idUsuario"); $query->andFilterWhere(['like', 'grupo.nombre', $this->id_grupo])->andFilterWhere(['like', 'usuario.login', $this->id_usuario]); return $dataProvider; }
/** * Finds the UsuarioGrupo model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id_grupo * @param integer $id_usuario * @return UsuarioGrupo the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id_grupo, $id_usuario) { if (($model = UsuarioGrupo::findOne(['id_grupo' => $id_grupo, 'id_usuario' => $id_usuario])) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * @return \yii\db\ActiveQuery */ public function getSeguridadUsuarioGrupos() { return $this->hasMany(UsuarioGrupo::className(), ['id_grupo' => 'id_grupo']); }
/** * @return \yii\db\ActiveQuery */ public function getIdGrupos() { return $this->hasMany(\app\modules\admin\models\Grupo::className(), ['id_grupo' => 'id_grupo'])->viaTable(\app\modules\admin\models\UsuarioGrupo::tableName(), ['id_usuario' => 'id_usuario']); }
/** * Assign or revoke assignment to user * @param integer $id * @param string $action * @return mixed */ public function actionAsignarPermisos() { try { Yii::$app->response->format = 'json'; if (Yii::$app->request->isAjax) { $usuario = SeguridadUsuarios::findOne(Yii::$app->request->post('id')); if ($usuario) { $grupo = Grupo::findOne(Yii::$app->request->post('grupo')); if ($grupo) { $tipo = intval(Yii::$app->request->post('tipo')); if ($tipo == 1) { $model = new UsuarioGrupo(); $model->id_grupo = $grupo->id_grupo; $model->id_usuario = $usuario->id_usuario; $model->save(); } else { if ($tipo == -1) { $model = UsuarioGrupo::findOne(['id_grupo' => $grupo->id_grupo, 'id_usuario' => $usuario->id_usuario]); if ($model) { $model->delete(); } } } return ['success' => true]; } } } } catch (\yii\db\IntegrityException $ex) { return ['success' => false, 'message' => "El usuario ya tiene los permisos asignados."]; } catch (Exception $ex) { return ['success' => false, 'message' => $ex->getMessage()]; } return ['success' => false, 'message' => "No se pudo procesar la solicitud."]; }