0

Я простую систему в PHP и codeigniter, и вам нужен простой, но лучший способ управлять пользователями и их доступом к системе. Поэтому после некоторого поиска я нашел интересные темы о контроле доступа, но я все еще сомневаюсь, если это хороший подход или нет.Это плохой дизайн для базы данных контроля доступа?

Таблицы прав и прав пользователей - это то, что некоторые пользователи должны иметь различный доступ, который не определен какой-либо ролью. и user_permission всегда будет иметь приоритет над role_permission. Например, пользователь имеет роль, которая имеет доступ к исключению пользователя, но администратор создал user_perm, запрещающий исключение пользователя, поэтому этот конкретный пользователь не сможет удалять пользователей.

Любая помощь будет оценена по достоинству.

 
    CREATE TABLE users 
    (
     id PRIMARY KEY, 
     username, 
     password, 
     role_id, 
     first_name, 
     last_name, 
     ... 
    ); 

    CREATE TABLE roles 
    (
     id PRIMARY KEY, 
     name 
    ); 
    CREATE TABLE actions 
    (
     id PRIMARY KEY, 
     name, 
    ); 
    CREATE TABLE role_permission 
    (
     id PRIMARY KEY, 
     action_id, 
     permission BOOLEAN 
    ); 

    CREATE TABLE user_permission 
    (
     id serial NOT NULL PRIMARY KEY, 
     action_id, 
     permission BOOLEAN 
    ); 

ответ

0

Вы забыли таблицу для отношений между идентификатором ролевым к нескольким пользователям - ид .... так что каждый пользователь будет иметь роль и на основе той роли, которую он получил бы разрешение .. или же у может добавьте поле role_id в таблицу users.

+0

изменен, роль_id теперь находится в пользовательской таблице. –

+0

хорошо .. я думаю, что все в порядке ... его на u, как реализовать и держать проверку каждого пользователя во время выполнения конкретного действия ... –