У меня проблема с дизайном.Я хотел бы реализовать систему ACL, но я бы хотел избежать реализации, где мне нужен набор предварительных настроек для каждого атрибута в модели данных.Например, если моя модель данных выглядит следующим образом:
{
person:
name: {
_acl: {read:['user','admin'],write:['admin'],publish:
['user','admin']},
value:'somename'
},
age: {
_acl: {read:['user','admin'],write:['admin','user'],publish:
['user','admin']},
value:'somename'
}
}
, я сразу вижу, что пользователь роли может изменить имя атрибута человека, но не возраст.Таким образом, я могу создать объект, который может быть отредактирован пользователем, просто проанализировав атрибут _acl и отправив его в клиентское (угловое) приложение.Проблема заключается в том, что каждый раз, когда я меняю свою модель данных или меняются роли, мне нужно изменить атрибут _acl.Есть ли лучший способ?