Реализация ACL для определения того, какие данные могут быть изменены пользователем - PullRequest
0 голосов
/ 22 января 2019

У меня проблема с дизайном.Я хотел бы реализовать систему 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.Есть ли лучший способ?

...