Open lhermann opened 6 years ago
That sounds like a good workflow.
Django calls it permissions. In general we have these permissions:
We have to apply these (and other) permissions for every model object and user. These models are used currently:
Permission | User |
---|---|
view username | everybody |
view password | nobody |
view first and last name | depends on user setting: everybody, Student, owner |
view e-mail | owner |
view image | everybody |
view reputation | owner, Moderator |
view privileges | everybody? |
view contributions | everybody |
add | anonymous user |
change | owner |
change username | admin |
delete | owner |
history | admin |
System: ?
Besides these permissions everybody can see how privileges are defined (but that's not important here).
Permission | User |
---|---|
view | admin |
add | Trustee |
change | admin |
delete | Trustee |
Trustee because they can define the languages a work should be translated in to.
System: accessed indirectly
Permission | User |
---|---|
view | everybody |
add | admin |
change | owner (members) |
change code | admin |
delete | owner (members) |
history | admin |
System: object derived
Permission | User |
---|---|
view | everybody (except for private projects) |
add | owner (Trustee) |
change | owner (Trustee) |
change abbreviation | admin |
delete | owner (Trustee) |
history | everybody |
System: object derived
Permission | User |
---|---|
view | everybody (except for private projects) |
add | Initiator |
change | Initiator with Reviewer, Translator |
change abbreviation | admin |
change release process | Guardian |
delete empty | Initiator |
delete almost empty | Moderator |
delete partial translated | Trustee |
history | everybody |
System: privilege derived
Permission | User |
---|---|
view | everybody (except for private projects?) |
add | Trustee |
change | Trustee |
delete | Trustee |
history | admin |
System: Trustee derived
Permission | User |
---|---|
view | everybody |
add | Trustee |
change | Trusteee |
delete | Trustee |
history | admin |
System: Trustee derived
Permission | User |
---|---|
view | everybody (except for private projects) |
add | Guardian |
change | Trustee |
delete | Trustee |
history | admin |
System: privilege derived
Same as original work.
Permission | User |
---|---|
view | Student (except for private projects) |
add | Contributor with Reviewer, Translator |
change | Contributor with Reviewer, Translator |
delete | Moderator |
review | Reviewer |
amend | Amender |
history | Student |
System: privilege derived
Permission | User |
---|---|
view | owner |
add | Contributor |
change | owner |
delete | owner |
history | owner |
System: object derived
Permission | User |
---|---|
view | everybody (except for private projects?) |
add | ? Trustee |
change | Trustee |
delete | Trustee |
history | Trustee |
System: Trustee derived
Permission | User |
---|---|
view | everybody (except for private projects) |
add | Contributor |
change | owner, Moderator |
delete | owner, Moderator |
System: privilege, object derived
Same as issue.
Before distributing titles, badges and reputation we need to define privileges.
Privileges are defined as
can
statements:can read translation
can commit translation
can edit translation
can delete translation
can confirm translation
can ...
Then we should define user roles and match the privileges with the roles:
can read translation
can ...
Then we think about the number of reputation points (and maybe other requirements) needed to advance in the user role. That ill make things easier in the long run and help us to keep a good overview.
One interesting question will be: What privileges does a new user have and what does he need in order to start translating.