0

Привет, ребята, я создал панель администратора, которую теперь мне нужно защитить, на основе которой пользователь пытается получить к ней доступ. Мне нужно что-то в php и mySQL, чтобы я мог проверить середину моего кода, если пользователь (с $_SESSION['thisUser']) имеет разрешение на изменение или просмотр только чего-либо. Я должен был бы это легко Потому что я не очень хорошо строить классы PHP .. не знаю то, что я могу назвать какРолевая система прав пользователя для панели администратора

if($user->hasPermission('write-news')) 
    // write news 

Любая помощь? заранее спасибо!

+1

Что вы думаете? Извлеките соответствующие данные из базы данных в методе. – Havsmonstret

+0

Я не уверен, что вы подразумеваете под методом, но я ищу что-то (может быть, несколько классов, не знаю), который быстро говорит мне, если у зарегистрированного пользователя есть определенное разрешение на просмотр/просмотр чего-либо или нет. – JohnnyCau

ответ

0

Хорошо, я думаю, что нашел более простой способ выполнить его.

Я просто сделал несколько таблиц (пользователей, роли, разрешения и role_perm, которые соединяют эти два). Затем я создал php-файл (который был включен сразу после файла db-settings.php), который извлекает все разрешения зарегистрированных пользователей и сохраняет их внутри массива (принимая userId от $_SESSION[]) и с function hasPermission($Permission) {, который проверяет заданное разрешение в массиве и возвращает true или false. Таким образом, каждый раз, когда мне нужно проверить для конкретного разрешения я называю это как

if(hasPermission("write-news")) { 
    // let him write it 
} else { 
    // "you do not have permission, bye bye" 
} 

Может быть, это не правильный способ настроить роль системы на основе разрешений или ж/д есть, но это просто и работает для того, что мне нужно. К сожалению, у меня действительно нет времени, чтобы узнать, как работают более совершенные системы. Если у вас есть какие-то предложения по этому поводу, мне было бы интересно прочитать его.

0

Ну, если вы пытаетесь перейти к объектно-ориентированному подходу, то, конечно, вы можете, но вам нужно убедиться, что у вас будет файл класса, в котором ваша переменная-член hasPermission() для $user (скорее всего из класса пользователя) который извлекает значения из базы данных, нажимая запрос непосредственно на $user.

PS: Это будет иметь смысл, если вы осознаете подход, основанный на PHP.

+0

Я не очень хорошо разбираюсь в php frameworks. Моя панель администратора - это довольно простой PHP-код. Вот почему мне нужно что-то готовое к использованию. Я обыскал веб-сайт и нашел класс ACL, но, похоже, требует, чтобы пользовательский класс работал, чего у меня нет. Может, мне понадобится что-то вроде пользователя и класса acl? – JohnnyCau