мысли вслух про permissions
Oct. 19th, 2009 03:05 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
ну в общем так:
обьект вида {value: (“data”, [(“childrenName”:{object})]), permissions: [(”identity”,”kind”,”A/D”)], owner: “identity”}
permission kinds: read value, write value, read permissions, write permissions, read owner, write owner
identities: (username), (user->groupname), (owner), (all)
процесс проверки пермишнов:
спускаемся от корня, накапливая dictionary (identity->permission->allow/deny), при этом allow/deny не имеют особого приоритета друг над другом, кто ниже - тот и выиграл. наличие deny равнозначно отсутствию allow, если хоть в одной группе, к которым принадлежит юзер, есть allow, то разрешение выдается.
при изменении value - owner не меняется, при создании owner наследуется от корня. меняется owner явным образом.
да, можно удалять подобьект обьекта, которым ты владеешь, даже если ты не владеешь никакими правами на него. Но нельзя читать, изменять или изменять права :)
user->groupname символизирует то, что группы всегда создаются пользователями
UPD: наверное стоит поменять пермишны на "allow/deny/inherit" и разрешать если есть хоть один allow и нету ни одного deny, это более традиционно
no subject
Date: 2009-10-19 10:49 pm (UTC)deny традиционно имеет приоритет. то есть, если explicitly есть both deny and allow, allow is ignored.