@ Абхишив: с учетом этой задачи я бы применил некоторую форму соглашения для установки доступа по полю.
Учитывая объект, подобный следующему:
{
name : "me",
user : "me01234",
salary : "100",
address : "123 Nowhere drive"
}
Я бы добавилделая что-то вроде этого:
{
name : "me",
user : "me01234",
salary : "100",
address : "123 Nowhere drive"
p_salary : [ 'g/accounting', 'g/management', 'u/owner' ]
p_address : [ 'g/accounting', 'g/hr', 'u/me' ]
}
С такими соглашениями вы можете поддерживать права доступа на уровне документов.И довольно просто понять, как запрограммировать такую вещь.
Теперь обычно вам нужны права доступа как для объекта, так и для самой коллекции.Это держит весь процесс гораздо более сухим.Для этого я просто собрал бы коллекцию «полномочий», которая содержит разрешения по умолчанию для каждой другой коллекции в БД.
Вдобавок ко всему, я не знаю ни одной платформы, которая делает это"из коробки".Я хотел бы взглянуть на Mongoid и MongoMapper и посмотреть, если этот тип детализации не подходит для плагина.