wizzard: (Default)
[personal profile] wizzard

ну в общем так:

обьект вида {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, это более традиционно

Date: 2009-10-19 10:49 pm (UTC)
From: [identity profile] 109.livejournal.com
> allow/deny не имеют особого приоритета друг над другом

deny традиционно имеет приоритет. то есть, если explicitly есть both deny and allow, allow is ignored.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2025 04:32 pm
Powered by Dreamwidth Studios