/** * @inheritdoc */ public function behaviors() { return ['access' => ['class' => \yii\filters\AccessControl::className(), 'only' => ['index', 'view', 'create', 'update', 'delete'], 'rules' => [['actions' => ['index', 'create', 'view'], 'allow' => true, 'roles' => ['@'], 'matchCallback' => function ($rule, $action) { return PermisosHelpers::requerirMinimoRol('Administrador') && PermisosHelpers::requerirEstado('Activo'); }], ['actions' => ['update', 'delete'], 'allow' => true, 'roles' => ['@'], 'matchCallback' => function ($rule, $action) { return PermisosHelpers::requerirMinimoRol('Super Administrador') && PermisosHelpers::requerirEstado('Activo'); }]]], 'verbs' => ['class' => VerbFilter::className(), 'actions' => ['delete' => ['post']]]]; }
/** * Solo permite que accedan al backend usuarios con el Rol mínimo de "Administrador" * @throws NotFoundHttpException */ public function loginAdmin() { if ($this->validate() && PermisosHelpers::requerirMinimoRol('Administrador', $this->getUser()->id)) { // Si llega aquí el usuario y la clave son correctas return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); } else { throw new NotFoundHttpException('No existe en la BD.'); } }
*/ $this->title = "Perfil de " . $model->user->username; $this->params['breadcrumbs'][] = ['label' => 'Perfil', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="perfil-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php //esto no es necesario pero está aquí como ejemplo if (PermisosHelpers::userDebeSerPropietario('perfil', $model->id)) { echo Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); } ?> <?php echo Html::a('Delete', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => Yii::t('app', 'Are you sure to delete this item?'), 'method' => 'post']]); ?> </p> <?php echo DetailView::widget(['model' => $model, 'attributes' => ['user.username', 'nombre', 'apellido', 'fecha_nacimiento', 'genero.genero_nombre', 'created_at', 'updated_at']]); ?>
<title><?php echo Html::encode($this->title); ?> </title> <?php $this->head(); ?> </head> <body> <?php $this->beginBody(); ?> <div class="wrap"> <?php if (!Yii::$app->user->isGuest) { $is_admin = PermisosHelpers::requerirMinimoRol('Administrador'); NavBar::begin(['brandLabel' => 'TeleUrban <i class="fa fa-plug"></i> Administración', 'brandUrl' => Yii::$app->homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top']]); } else { NavBar::begin(['brandLabel' => 'Yii 2 Build <i class="fa fa-plug"></i>', 'brandUrl' => Yii::$app->homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top']]); $menuItems = [['label' => 'Inicio', 'url' => ['/site/index']]]; } if (!Yii::$app->user->isGuest && $is_admin) { $menuItems[] = ['label' => 'Usuarios', 'url' => ['user/index']]; $menuItems[] = ['label' => 'Perfiles', 'url' => ['perfil/index']]; $menuItems[] = ['label' => 'Roles', 'url' => ['rol/index']]; $menuItems[] = ['label' => 'Estado', 'url' => ['estado/index']]; } /* NavBar::begin([ 'brandLabel' => 'My Company', 'brandUrl' => Yii::$app->homeUrl,
<?php use yii\helpers\Html; use yii\widgets\DetailView; use common\models\PermisosHelpers; /* @var $this yii\web\View */ /* @var $model common\models\User */ $this->title = $model->username; $show_this_nav = PermisosHelpers::requerirMinimoRol('SuperUsuario'); $this->params['breadcrumbs'][] = ['label' => 'Users', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="user-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php if (!Yii::$app->user->isGuest && $show_this_nav) { echo Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); } ?> <?php if (!Yii::$app->user->isGuest && $show_this_nav) { echo Html::a('Delete', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), 'method' => 'post']]); }
<?php use yii\helpers\Html; use common\models\PermisosHelpers; /** * @var yii\web\View $this */ $this->title = 'Admin Yii 2 Build'; $es_admin = PermisosHelpers::requerirMinimoRol('Admin'); ?> <div class="site-index"> <div class="jumbotron"> <h1>¡Bienvenido a Admin!</h1> <p class="lead"> Ahora puede administrar usuarios, roles, y más con nuestras sencillas herramientas. </p> <p> <?php if (!Yii::$app->user->isGuest && $es_admin) { echo Html::a('Administrar Usuarios', ['user/index'], ['class' => 'btn btn-lg btn-success']); }
<?php use yii\helpers\Html; use yii\widgets\DetailView; use common\models\PermisosHelpers; /* @var $this yii\web\View */ /* @var $model frontend\models\Perfil */ $this->title = $model->user->username; $mostrar_esta_nav = PermisosHelpers::requerirMinimoRol('Super Administrador'); $this->params['breadcrumbs'][] = ['label' => 'Perfiles', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="perfil-view"> <h1>Perfil de <?php echo Html::encode($this->title); ?> </h1> <p> <?php if (!Yii::$app->user->isGuest && $mostrar_esta_nav) { echo Html::a('Actualizar', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); } ?> <?php if (!Yii::$app->user->isGuest && $mostrar_esta_nav) { echo Html::a('Borrar', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => Yii::t('app', 'Seguro de que lo quiere eliminar?'), 'method' => 'post']]); }