Как управлять ссылками на разрешения в коде и в базе данных? - PullRequest
0 голосов
/ 13 августа 2010

Как люди управляют разрешениями между своей кодовой базой и базой данных? Например, мое приложение наполняется:

if($objects['username']['access_type'] == 'edit'){
    // print the HTML to edit the username
}

или в ОО:

if($user->getPermission('username')->canEdit()){
    // print the HTML to edit the username
}

Как вы отслеживаете, где используется объект 'username' и разрешение 'edit', и как вы поддерживаете связь между этими жестко закодированными тегами разрешений и их соответствующими записями в таблице разрешений в базе данных ? Конечно, время от времени некоторые из них должны быть потеряны, переименованы или неправильно использованы? Есть мысли?

1 Ответ

0 голосов
/ 13 августа 2010

Не можете ли вы сделать таблицу разрешений?

permisionId - UserId - Module - Permissions:

ID_ID - это autonr, userId - это пользователь, Module - это, например, 'username', разрешенияэто тип разрешения.

Вы можете использовать поле разрешения как int и использовать для него побитовый оператор «И» (как это делает chmod): 1 = чтение, 2 = запись, 1 + 2 = 3 = чтение+ write

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

...