Version 5 (modified by abhishekgupta92, 12 years ago) ( diff )


BluePrint: Public Portal

Customizing workflows to enable a single instance of Sahana Eden to be used to coordinate Volunteers, Projects and Requests between multiple users from different Organisations, Companies and members of the public. Authorizations would be set based on what group(s) the use belongs to.


Currently, Eden is overwhelmed with functionalities which might not be required by every user. For example, if you have come to volunteer on Eden, assets might not be so important for yourself. In such scenarios, it is imperative to include user management and roles. Selective features then to the users on the basis of their roles and privileges adds ease of use and help making the interface more usable and concise.

<Introduce the problem the solution is meant for> <Explain why this could be relevant for Eden>


Numerous examples, can be given in order to explain the problem. For example, if there is a need to send a bulk email to the staff and volunteers it might be useful if only a handful of people on the basis of their roles can do so. The clear distinction among the users regarding their roles and privileges, makes it easy enough to add new functionalities in a community environment.

<Briefly describe the solution, e.g. start with a user story> <Name existing solutions, e.g. in other applications>


  • Custom registration forms:
    • Public
    • Organisation
    • Companies
  • Setting authorizations & customizing workflows for:
    • Volunteer Registration
    • Organisation Registration
    • Member Registration (Application?)
    • Incident Reporting
    • Item, Task & Volunteer Requests
    • Task Assignment
    • Project
    • Social Media Integration
    • Sign Up for Alerts
    • Sign Up for Trainings
    • Register Donations ($$$ & Virtual)
  • Tracking of work


<Describe actors and use-cases> <Describe workflows> <Include diagrams where useful>


<Describe a possible design, repeat any design sections for alternative designs> <Include diagrams, screen mockups and wireframes where useful>


The implementation involves taking advantage of the already built in web2py user roles and privileges. User groups can be created by the administrator at the time of the initial setup.

After that, once a user registers on a website he can be allocated a certain group on the basis of what he has requested, or a role that a member of higher role has assigned to him (assuming a total order exists between the roles, which is not a necessary assumption though) which will add an entry to the auth_membership.

After this, we can before any function have a wrapper to say that only people with roles 'A' and 'B' or with privileges 'X' or 'Y' can access the same function.

This works at granularity of two levels :

  1. Groups
  2. Privileges



Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.