Updated more detailed specification of Calendars.
diff --git a/SocialFeaturesMelangeGSoC2010.wiki b/SocialFeaturesMelangeGSoC2010.wiki index eed3895..6f73b77 100644 --- a/SocialFeaturesMelangeGSoC2010.wiki +++ b/SocialFeaturesMelangeGSoC2010.wiki
@@ -195,7 +195,48 @@ ----- *Suggestion Incorporated* Comment (madhu): For clarity reasons I think it is better to name these values *requested*, *approved* and *declined* since they are not really Boolean fields but a 3-state property. ----- +=== Calendars in Detail === +*UseCases for Different User Roles* + +Program Admin + +http://www.comp.nus.edu.sg/~savitha/gsoc/cal_init.png + +"Initialize Calendars" use case simply refers to the automated creation of a new calendar for each accepted Organization and the assigning of access rights for all the org_admins and students at the start of the program. + +*Org Admin* + +http://www.comp.nus.edu.sg/~savitha/gsoc/org_admin.png + +*Student or Mentor* + +http://www.comp.nus.edu.sg/~savitha/gsoc/student-mentor.png + + +*Calendar Types*: + * *Program Calendar*: This is a completely public calendar which is visible to all users participating in the program including mentors, students, org_admins and program_admins. + * *Organization Calendar*: Every accepted organization has its own private calendar which is visible only to users working for that particular organization such as mentors, students and org_admin of that organization. + +*Calendar Account*: + * All the organization calendars and the single program calendar will be hosted in a *single* Google account owned by the program_admin. (this can be the program_admins own account or analternative account such as gsummerofcode@gmail.com where the current program [http://www.google.com/calendar/hosted/google.com/embed?src=gsummerofcode@gmail.com&ctz=America/Los_Angeles calendar] is being hosted.) + * Every org_admin will be given owner access to their org calendar. Google's Calendar API provides access control lists for each calendar. Hence, each org_admin can be given owner access(user can make changes to events) while org students are given read access(this user can see all event details). (Ref: http://code.google.com/apis/calendar/data/1.0/developers_guide_python.html#SharingACalendar) + +*Access Rights for User Roles* +When users access their Calendars, the respective calendars and rights will be triggered based on the account in which they are logged in. For example, if bob@gmail.com is an org_admin, and is logged in. He will automatically have "owner" access to his org calendar and "read" access to the program calendar. + +*Program_Admin*: + * Has "owner" access for all org_calendars and program_calendar + +*Org_Admin*: + * Has "read" access to program calendar. + * Has "owner" access to their org_calendar. + +*Mentors*: + * Has "read" access to their org calendar and program calendar. + +*Student*: + * Has "read" acess to their org calendar and program calendar. === APIs & Libraries === * Google Calendars API