コード例 #1
0
ファイル: UserGroupRule.php プロジェクト: silischev/yii2_blog
 public function execute($user, $item, $params)
 {
     if (!Yii::$app->user->isGuest) {
         $group = Yii::$app->user->identity->role_id;
         // получаем id Модератора из таблицы Role
         $moder_id = Role::getIdByName('moderator');
         // получаем id Писателя из таблицы Role
         $writer_id = Role::getIdByName('writer');
         if ($item->name === 'moderator') {
             return $group == $moder_id;
         } elseif ($item->name === 'writer') {
             $role = Role::findOne(['name' => 'moderator']);
             return $group == $moder_id || $group == $writer_id;
         }
     }
     return FALSE;
 }
コード例 #2
0
 public function isNewsOwnerOrModer($newsId)
 {
     // получаем модель редактируемой новости
     $model = $this->findModel($newsId);
     // пользователь, который пытается редактировать профиль
     $currentUser = Yii::$app->user->identity;
     // id модератора из модели Role
     $moderatorId = Role::getIdByName('moderator');
     /* если пользователь, который редактирует/просматривает профиль 
      * не модератор и не пользователь текущего профиля
      */
     if ($currentUser->role_id !== $moderatorId && $currentUser->id !== $model->author_id) {
         return FALSE;
     } else {
         return TRUE;
     }
 }
コード例 #3
0
ファイル: _form.php プロジェクト: silischev/yii2_blog
<?php

use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use yii\widgets\ActiveForm;
use app\models\Role;
?>

<div class="user-form">
    
    <?php 
// если пользователь модератор
if (Yii::$app->user->identity->role_id == app\models\Role::getIdByName('moderator')) {
    ?>

    <?php 
    $form = ActiveForm::begin();
    ?>

    <?php 
    echo $form->field($model, 'role_id')->dropDownList(ArrayHelper::map(role::find()->all(), 'id', 'name'));
    ?>
    

    <?php 
    echo $form->field($model, 'email')->textInput(['maxlength' => true]);
    ?>

    <?php 
    echo $form->field($model, 'password')->passwordInput(['maxlength' => true]);
    ?>