Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Ограничение доступа в yii2 по mysql, Ограничение доступа в yii2 по mysql
Wet  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 4
Пользователь №: 43990
На форуме: 2 месяца, 13 дней
Карма:




Подскажите кто нить как реализовать ограничение доступа по определенной таблице 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, чтобы хотя бы примерно понять как наследуется наше значение от базового контроллера к другим контроллерам.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26421
Пользователь №: 21350
На форуме: 7 лет, 3 месяца, 10 дней
Карма: 739




Зачем тебе твоя костыляция???
в Yii есть контроль доступа там учитываются роли и урлы

https://habrahabr.ru/post/235485/
https://code.tutsplus.com/tutorials/how-to-...rols--cms-23173


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса