Управление правами на пользовательские файлы

В настоящее время я работаю над веб-сайтом, который должен позволить пользователям размещать файлы, такие как изображения и документы. У меня есть управление правами на основе групп и пользователей, но оно не совсем соответствует этой концепции групп и пользователей.

Например:

Пользователь загружает файл, над которым должна работать небольшая группа из 2-3 пользователей. Эта группа является динамической, и они должны получить доступ только к этому файлу. Другая группа под названием «Персонал» должна иметь возможность просматривать его, но не может редактировать или удалять его.

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

По сути, я бы получил много тысяч групп со многими избыточными правами. Есть ли лучший подход к этому?

Спасибо


person Community    schedule 03.03.2012    source источник


Ответы (2)


Я думаю, вы можете использовать что-то вроде «лидер группы» - первый зарегистрированный пользователь для конкретной группы. Вы можете использовать его идентификатор в качестве идентификатора группы (чтобы уменьшить количество таблиц и избежать беспорядка в таблице с группами без пользователей).

Если вам нужна информация о наилучшем подходе - прочитайте об управлении правами на файлы в Unix (стандартное или ACL, если вам нужно несколько групп для пользователя).

person Kamil    schedule 03.03.2012
comment
Не забудьте обработать удаление пользователя-лидера. - person Kamil; 04.03.2012

Было бы лучше, если бы вы подробнее уточнили, о каком файле идет речь. Не лучше ли хранить содержимое файла в базе данных и предоставлять права доступа каждому пользователю? Или вы хотите, чтобы физически файл хранился на машине?

person sumofighter666    schedule 03.03.2012
comment
Да, файл физически сохраняется, так как Размер может достигать 50 МБ, а это не то, для чего был разработан Mysql. Каждый файл имеет запись в таблице файлов, которая связана с файлом в FS. - person ; 03.03.2012