Roles Used in Web Frontend

**Rolename** (RolesInPyramid @ RolesDerivedByDbAllocation)
* has / may have allocated objects
* can do actions

== Portal ==

-> ''module: collecting_society.portal''

[all roles]
* can view static sites (help, terms, privacy, legal)
* can contact admin
* can download plugins

anonymous
* can view static sites (home, landingpages)
* can view news (list, show)
* can register user
* can login

webuser (webuser @)
* may have bank accounts
* can logout
* can view dashboard
* can view webuser news (list, show)
* can administer webuser (edit {profile, roles, settings for webuser[default role]}, delete)
* can administer bank accounts (list, add, remove, create, show, edit, delete, validate)

admin (admin @)
* can administer webuser (edit {profile, roles, settings for webuser}, delete)
* can add administrative roles to webuser
* can confirm a bank account validation of webuser

== Creative ==

-> ''module: collecting_society.portal.creative''

creative (creative @)
* has a default soloartist
* can administer artists (list, create, show, edit, delete)
* can filter artists (all, POI)
* can edit settings for creative
* can view statistics for creatives (list, show)

artist (creative @ artist: webuser -> webuser)
* may have bank account
* can administer releases (list, create, show, edit, delete)
* can administer creation (add, remove, create, show, edit, delete)

soloartist (creative @ artist: webuser, type = solo)
* is payee of artist

bandmember (creative @ artist: artists -> webuser, type = group)
* may be payee of artist
* can administer members of artist (add, remove, create, delete)
* can administer payee (propose, accept, dismiss)

payee (creative @ artist : payee -> webuser)
* can administer bank account of artist (create, show, edit, delete)
* can handle money issues for artist

agent (agent @)
* same as / subset of creative

admin (admin @)
* can confirm a payee validation
* can confirm a bank account validation of artist

== Adore ==

-> ''module: collecting_society.portal.adore''

adorer (adorer @)
* has pocket
* can administer settings for adorer (amount in pocket, blacklist artists)
* can administer plugin api keys (list, add, remove, create, delete, show)
* can view pocket (show)
* can view statistics for adorer (list, show)

adored (adored @)
* has hat

artist (creative @ artist: artists -> webuser)
* can administer settings for adored (default distribution, default bank account)
* can view hats of adored (list, show)
* can view statistics for adored (list, show)
* can view billing for adored (list, show, export)

soloartist (creative @ artist: artists -> webuser, type = solo)
* can transfer money from hat to account

payee (creative @ artist : payee -> webuser)
* can distribute money from hat to hats of artist
* can transfer money from hat to bank account (of payee / artist)