PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ограничение доступа в yii2 по mysql
Wet
Отправлено: 13 Апреля, 2017 - 05:11:40
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Подскажите кто нить как реализовать ограничение доступа по определенной таблице mysql?

Допустим есть 4 таблицы mysql:
1) таблица юзеров

id _ name
1 _ Иван
2 _ Федя

2) таблица прав доступа

id _ userid _ grouptid _ acess ( 0 - доступ закрыт, 1 - просмотр, 2 - просмотр, изменение… )
1 _ 1 _____ 1 _______ 1
2 _ 2 _____ 2 _______ 2

3) таблица контента (представим, что у каждой группы свой контент)

id _ content
1 _ текст
2 _ /img/1.jpg

4) таблица групп

id _ groupname
1 _ Группа 1
2 _ Группа 2

К примеру авторизовались под 1м юзером, yii должно ограничить доступ по 2й таблице и вывести только текст.

Прописал в BaseController:
public function beforeAction($action)
{
if (Yii::$app->user->isGuest) {
return $this->redirect('/site/login');
}

if (!parent::beforeAction($action)) {
return false;
}

$content = [];
$id = Yii::$app->user->id;
$content = User::getGroup($id);

return true;
}

а в модели User:
public function getGroup($userID)
{
$array = SysAcl::find()->where(['userid' => $userID])->select(['grouptid'])->asArray()->indexBy('id')->all();

$arr = [];
foreach ($array as $key => $value) {
$arr[$key] = $value['grouptid'];
}

// возвращаем массив вида [id] => [grouptid]
return $arr;
}

В результате получил id группы, но что дальше делать пока еще не знаю. Как вывести привязаный к группе контент? Если не знаете как yii2 это реализовать, то хотя бы подскажите как вы это делаете в другой MVC, чтобы хотя бы примерно понять как наследуется наше значение от базового контроллера к другим контроллерам.
 
 Top
andrewkard
Отправлено: 14 Апреля, 2017 - 14:31:53
Post Id


Участник


Покинул форум
Сообщений всего: 1041
Дата рег-ции: Нояб. 2014  


Помог: 19 раз(а)




 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB