示例#1
0
 public static function getActuallyStatus($model)
 {
     $category = $model->category_id;
     $role = self::getRole();
     $user_id = Yii::$app->user->id;
     $haveModers = RelationCategories::find()->joinWith(['role'])->where(['category_id' => $category, 'auth_assignment.item_name' => User::MODER])->all();
     $moderHaveRCategory = RelationCategories::find()->joinWith(['role'])->where(['relation_categories.user_id' => $user_id, 'category_id' => $category, 'auth_assignment.item_name' => User::MODER])->one();
     $haveSModers = RelationCategories::find()->joinWith(['role'])->where(['category_id' => $category, 'auth_assignment.item_name' => User::SMODER])->all();
     $smoderHaveRCategory = RelationCategories::find()->joinWith(['role'])->where(['relation_categories.user_id' => $user_id, 'category_id' => $category, 'auth_assignment.item_name' => User::SMODER])->one();
     if ($model->status == News::MODER_NEWS && $role != User::ADMIN) {
         if ($model->isNewRecord || $model->oldAttributes['status'] == News::TEMP_NEWS || $model->oldAttributes['status'] == News::BAD_NEWS) {
             if (empty($haveModers)) {
                 $model->status = News::SMODER_NEWS;
             } else {
                 if ($role == User::MODER) {
                     if (!is_null($moderHaveRCategory)) {
                         $model->status = News::SMODER_NEWS;
                     }
                 }
             }
         }
     }
     if ($model->status == News::SMODER_NEWS && $role != User::ADMIN) {
         if (empty($haveSModers)) {
             $model->status = News::ADMIN_NEWS;
         } else {
             if ($role == User::SMODER) {
                 if (!is_null($smoderHaveRCategory)) {
                     $model->status = News::ADMIN_NEWS;
                 }
             }
         }
     }
 }