Как справиться с разными ролями с разными преобладаниями в PHP? - PullRequest
1 голос
/ 25 мая 2010

Я хотел бы знать, как мы можем создавать разные «роли пользователей» для разных пользователей в PHP. Пример:

Администратор может создавать всех типов пользователей, добавлять, просматривать, манипулировать данными, удалять менеджеров, зрителей и рабочих и т. Д.

Менеджеры могут только создавать, работники и зрители, могут добавлять и просматривать данные, рабочие не могут создавать новых пользователей, а могут только добавлять данные и просматривать данные,

Зрители могут просматривать только те данные, которые были добавлены в БД работниками, менеджерами и администраторами.

Хотя лучше использовать разные сессии, такие как:

$_SESSION['admin']
$_SESSION['manager']
$_SESSION['worker']
$_SESSION['viewvers']

и для каждой страницы проверьте, какая из них имеет значение true или yes, но я хочу знать, как они это делают в реальных и больших проектах ??? есть ли другой способ ???

Ответы [ 3 ]

2 голосов
/ 25 мая 2010

Зависит от грандиозной схемы вещей (надеюсь, вы все поняли, смеется). Как правило, у пользователя есть идентификатор относительно того, на каком уровне он находится. Например, поле «статус» или «тип».

$ _ SESSION [ 'loggedInUser'] [ 'типа']

этот тип обычно числовой. 1 могут быть обычными пользователями, 2 могут быть модераторами, 3 администраторами и т. Д.

Остальное, как вы управляете этим в своем коде. Такие фреймворки, как cakephp, дадут вам доступ вошедшему в систему пользователю через его объект auth, и вы сможете получить любые данные, какие захотите:)

Я знаю, что это очень поверхностно, но, увы, вопрос был также. Надеюсь, это поможет:)

1 голос
/ 25 мая 2010

Обычный способ реализации пользовательских привилегий - это «пользовательские уровни», где каждый пользовательский уровень - это то, что может быть представлено int. Например:

0 = guest, no privileges
1 = standard user, read-only access
9 = power user, read/write access
10 = admin, all access

Во всем приложении вы проверяете уровень доступа пользователя и соответственно разрешаете или запрещаете доступ. Это становится сложнее, если у вас есть области, где привилегии не обязательно являются иерархическими.

В этой ситуации вы можете проверить переменную сеанса (после аутентификации пользователя, конечно), скажем, $_SESSION['user_level'];

0 голосов
/ 25 мая 2010

Вы должны играть роль, как в $_SESSION['Role'] и заполнить ее при входе в систему. затем проверяйте каждый раз, имеет ли эта роль полномочия на выполнение операции.

...