mirror of
https://github.com/urbit/shrub.git
synced 2024-12-01 06:35:32 +03:00
publish: set group tags for notebook write permissions
This commit is contained in:
parent
cf57af3065
commit
ed3d9bda12
@ -255,6 +255,11 @@
|
||||
=/ =group-path (stab (slav %t i.t.t.path))
|
||||
=/ =md-resource [`@tas`i.t.t.t.path (stab (slav %t i.t.t.t.t.path))]
|
||||
``noun+!>((~(get by associations) [group-path md-resource]))
|
||||
::
|
||||
[%x %resource @ *]
|
||||
=/ app=@tas i.t.t.path
|
||||
=/ app-path=^path t.t.t.path
|
||||
``noun+!>((~(get by resource-indices) app app-path))
|
||||
==
|
||||
::
|
||||
++ on-agent on-agent:def
|
||||
|
@ -54,6 +54,7 @@
|
||||
[%3 state-three]
|
||||
[%4 state-three]
|
||||
[%5 state-three]
|
||||
[%6 state-three]
|
||||
==
|
||||
::
|
||||
+$ metadata-delta
|
||||
@ -69,7 +70,7 @@
|
||||
==
|
||||
--
|
||||
::
|
||||
=| [%5 state-three]
|
||||
=| [%6 state-three]
|
||||
=* state -
|
||||
%- agent:dbug
|
||||
%+ verb |
|
||||
@ -86,7 +87,6 @@
|
||||
:_ this
|
||||
:~ [%pass /view-bind %arvo %e %connect [~ /'publish-view'] %publish]
|
||||
[%pass /read/paths %arvo %c %warp our.bol q.byk.bol `rav]
|
||||
[%pass /permissions %agent [our.bol %permission-store] %watch /updates]
|
||||
(invite-poke:main [%create /publish])
|
||||
:* %pass /invites %agent [our.bol %invite-store] %watch
|
||||
/invitatory/publish
|
||||
@ -218,6 +218,26 @@
|
||||
==
|
||||
::
|
||||
%5
|
||||
%= $
|
||||
-.p.old-state %6
|
||||
cards
|
||||
%+ weld cards
|
||||
%+ roll ~(tap by books.p.old-state)
|
||||
|= [[[who=@p book=@tas] nb=notebook] out=(list card)]
|
||||
^- (list card)
|
||||
?. =(who our.bol)
|
||||
out
|
||||
=/ rid (de-path:resource writers.nb)
|
||||
=/ grp=(unit group) (scry-group:grup:main rid)
|
||||
?~ grp out
|
||||
?: hidden.u.grp
|
||||
out
|
||||
=/ =tag [%publish (cat 3 'writers-' book)]
|
||||
:_ out
|
||||
(group-proxy-poke entity.rid %add-tag rid tag members.u.grp)
|
||||
==
|
||||
::
|
||||
%6
|
||||
[cards this(state p.old-state)]
|
||||
==
|
||||
++ convert-notebook-3-4
|
||||
@ -995,6 +1015,22 @@
|
||||
[~ state]
|
||||
:_ state
|
||||
%- zing
|
||||
:- ^- (list card)
|
||||
%+ roll ~(tap by books)
|
||||
|= [[[who=@p book=@tas] nb=notebook] out=(list card)]
|
||||
^- (list card)
|
||||
?. =(who our.bol)
|
||||
out
|
||||
?. =(writers.nb path)
|
||||
out
|
||||
=/ rid (de-path:resource writers.nb)
|
||||
=/ grp=(unit group) (scry-group:grup rid)
|
||||
?~ grp out
|
||||
?: hidden.u.grp
|
||||
out
|
||||
=/ =tag [%publish (cat 3 'writers-' book)]
|
||||
:_ out
|
||||
(group-proxy-poke entity.rid %add-tag rid tag members.u.grp)
|
||||
%+ turn ~(tap in ships)
|
||||
|= who=@p
|
||||
?. (allowed who %read u.book)
|
||||
@ -1226,12 +1262,19 @@
|
||||
^- [(list card) write=path read=path]
|
||||
?> ?=(^ group-path.group)
|
||||
=/ scry-path
|
||||
;:(welp /(scot %p our.bol)/group-store/(scot %da now.bol) [%groups group-path.group] /noun)
|
||||
=/ grp .^((unit ^group) %gx scry-path)
|
||||
;: welp
|
||||
/(scot %p our.bol)/group-store/(scot %da now.bol)
|
||||
[%groups group-path.group]
|
||||
/noun
|
||||
==
|
||||
=/ rid=resource (de-path:resource group-path.group)
|
||||
=/ grp=(unit ^group) (scry-group:grup rid)
|
||||
?: use-preexisting.group
|
||||
?~ grp !!
|
||||
?. (is-managed group-path.group) !!
|
||||
`[group-path.group group-path.group]
|
||||
=/ =tag [%publish (cat 3 'writers-' book)]
|
||||
:_ [group-path.group group-path.group]
|
||||
[(group-proxy-poke entity.rid %add-tag rid tag members.u.grp)]~
|
||||
::
|
||||
=/ =policy
|
||||
*open:policy
|
||||
@ -1684,10 +1727,9 @@
|
||||
?> ?=(^ subscribers.u.book)
|
||||
=/ cards=(list card)
|
||||
~[(delete-dir pax)]
|
||||
|
||||
=/ rid=resource
|
||||
(de-path:resource writers.u.book)
|
||||
=? cards (is-managed:grup rid)
|
||||
=? cards !(is-managed:grup rid)
|
||||
[(group-poke %remove-group rid ~) cards]
|
||||
[cards state]
|
||||
:: %del-note:
|
||||
@ -1791,6 +1833,10 @@
|
||||
?> (team:title our.bol src.bol)
|
||||
=/ join-wire=wire
|
||||
/join-group/[(scot %p who.act)]/[book.act]
|
||||
=/ meta=(unit (set path))
|
||||
(metadata-resource-scry %publish /(scot %p who.act)/[book.act])
|
||||
?^ meta
|
||||
(subscribe-notebook who.act book.act)
|
||||
=/ rid=resource
|
||||
[who.act book.act]
|
||||
=/ =cage
|
||||
@ -1956,6 +2002,19 @@
|
||||
/noun
|
||||
==
|
||||
::
|
||||
++ metadata-resource-scry
|
||||
|= [app=@tas app-path=path]
|
||||
^- (unit (set path))
|
||||
?. .^(? %gu (scot %p our.bol) %metadata-store (scot %da now.bol) ~) ~
|
||||
.^ (unit (set path))
|
||||
%gx
|
||||
;: weld
|
||||
/(scot %p our.bol)/metadata-store/(scot %da now.bol)/resource/[app]
|
||||
app-path
|
||||
/noun
|
||||
==
|
||||
==
|
||||
::
|
||||
++ emit-metadata
|
||||
|= del=metadata-delta
|
||||
^- (list card)
|
||||
|
Loading…
Reference in New Issue
Block a user