| #summary Various user roles in Melange |
| #labels Phase-Requirements,Contents-Draft,Importance-Details |
| |
| The [SoCOverview SoC framework] implements workflows that pass |
| [ProposalModel Proposals], [TaskModel Tasks], and other WorkItems from |
| one [UserModel user] to another. These users can serve in one or more |
| roles, and these roles define which RoleViews and WorkViews the user |
| is able to see and interact with. |
| |
| Each role is represented in the [http://code.google.com/appengine/docs/datastore/ Google App Engine Datastore] by an entity model. RoleModels summarizes the relationships between these models. |
| |
| == Person == |
| |
| The Person role is a basic role from which all other user roles derive. This |
| role is represented in the [http://code.google.com/appengine/docs/datastore/ |
| Datastore] by [PersonModel Person entities]. |
| |
| == Contributor == |
| |
| The Contributor role is filled by a [UserRoles#Person Person] who contributes |
| progress on Tasks to a [UserRoles#Reviewer Reviewer]. In Google Summer of |
| Code, for example, an accepted student would be considered a Contributor. |
| |
| == Reviewer == |
| |
| The Reviewer role is filled by a [UserRoles#Person Person] who reviews the |
| work performed on Tasks done by a [UserRoles#Contributor Contributor]. Again, |
| in Google Summer of Code, a mentor with an assigned, accepted student would be |
| considered a Reviewer. |
| |
| == Author == |
| |
| The Author role is filled by a [UserRoles#Person Person] who creates (or |
| "authors") Tasks for a Program. In Google Summer of Code, students who create |
| applications to be reviewed for acceptance into the program are Authors. |
| Contrast this with Google Highly Open Participation, where representatives of |
| participating [PersonGroups#Organisation Organizations] author the Tasks to be |
| completed by the students. |
| |
| == Administrator == |
| |
| The Administrator role is filled by a [UserRoles#Person Person] who: |
| * submits an [PersonGroups#Organization Organization] for participation in a Program |
| * approves [UserRoles#Reviewer Reviewers] for that [PersonGroups#Organization Organization] |
| |
| == Host == |
| |
| The Host role is filled by a [UserRoles#Person Person] who: |
| * manages the overall Program for a [PersonGroups#Sponsor Sponsor] |
| * approves [PersonGroups#Organization Organizations] for participation in a Program |
| |
| == Developer == |
| |
| The Developer role is the Melange super-admin, who: |
| * manages the application deployment |
| * must create the [PersonGroups#Sponsor Sponsor] and [UserRoles#Host Host] |
| |
| This is not currently modeled in the [UserModel User Model] (but may be, as a |
| new Property, in the future), but is instead managed via the |
| [http://code.google.com/appengine/docs/users/adminusers.html Google AppEngine function] |
| `users.is_current_user_admin()`. |
| This solves the "chicken-and-egg" problem about how any "super-user" entities |
| in the Melange application get created if there are no existing such entities. |
| |
| ---- |
| _Copyright 2008 Google Inc._ |
| _This work is licensed under a_ |
| [http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License]. |
| [http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png] |