public function actionUsers()
 {
     $this->layout = 'default';
     if (Yii::$app->user->isGuest) {
         $this->redirect(Url::toRoute(['user/logout']));
         return;
     }
     if (Yii::$app->user->identity->role != User::ROLE_ADMIN) {
         $this->redirect(Url::toRoute(['user/logout']));
         return;
     }
     $role = Yii::$app->request->get('role', User::ROLE_USER);
     $username = Yii::$app->request->get('username', null);
     $email = Yii::$app->request->get('email', null);
     $user_id = Yii::$app->request->get('user_id', null);
     $filter = ['username' => $username, 'email' => $email, 'user_id' => $user_id];
     $sort = new Sort(['attributes' => ['updated_at' => SORT_ASC]]);
     $condition = ['role' => $role, 'status' => User::STATUS_ACTIVE];
     if (!empty($email)) {
         $condition['email'] = $email;
     }
     if (!empty($user_id)) {
         $condition['id'] = $user_id;
     }
     $query = User::find()->where($condition);
     if (!empty($username)) {
         $query = $query->andFilterWhere(['like', 'username', $username]);
     }
     $countQuery = clone $query;
     $pages = new Pagination(['totalCount' => $countQuery->count()]);
     $users = $query->orderBy(['created_at' => SORT_DESC])->offset($pages->offset)->limit($pages->limit)->all();
     $user_ids = [];
     foreach ($users as $key => $user) {
         $user_ids[] = $user->id;
     }
     //echo count($user_ids);
     $users_settings = UserSetting::find()->where(['user_id' => $user_ids])->all();
     //echo count($users_settings);
     $mapUsersSettings = [];
     foreach ($users_settings as $key => $users_setting) {
         $mapUsersSettings[$users_setting->user_id] = $users_setting;
     }
     $sidemenus = [['title' => Yii::t('app', 'Пользователи'), 'role' => User::ROLE_USER, 'count' => User::find()->where(['role' => User::ROLE_USER, 'status' => User::STATUS_ACTIVE])->count()], ['title' => Yii::t('app', 'Супер администраторы'), 'role' => User::ROLE_ADMIN, 'count' => User::find()->where(['role' => User::ROLE_ADMIN, 'status' => User::STATUS_ACTIVE])->count()]];
     return $this->render('users', ['users' => $users, 'pages' => $pages, 'users_settings' => $mapUsersSettings, 'sidemenus' => $sidemenus, 'role' => $role, 'filter' => $filter]);
 }