Skip to content

Commit

Permalink
start writing testable requirements content
Browse files Browse the repository at this point in the history
  • Loading branch information
monkeypants committed Jan 28, 2016
1 parent 07f7632 commit b9ac22a
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 0 deletions.
3 changes: 3 additions & 0 deletions commercial_partner/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ User Manual - Commercial Partners
:maxdepth: 2

introduction
logging_in
menu
roles_and_responsabilities
howto_apply_to_join_org
howto_create_new_account_by_invitation
howto_approve_new_account
Expand Down
142 changes: 142 additions & 0 deletions commercial_partner/logging_in.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
.. _logging-in:

Logging in
==========

Normaly, a user is a member of only one organisation, but it is
possible for them to be in more than one. A user can have different
roles in organisations, such as Admin, Guide and Sales Agent.
There is more information about this in
:ref:`roles-and-responsabilities`.


Simple Case
-----------

The common situations are:
* Admin for a single organisation
* Guide for a single organisation
* Sales Agent for a single organisation
* Guide and Sales Agent for a single organisation

Depending on a user's role, they see a different page when they first log in.

+--------+-------+-------+------------+--------------------------------+
| action | Admin | Guide | SalesAgent | Page |
+========+=======+=======+============+================================+
| login | 1 | 0 | 0 | Org Home |
+--------+-------+-------+------------+--------------------------------+
| login | 0 | 1 | 1 | Org Home [#]_ |
+--------+-------+-------+------------+--------------------------------+
| login | 0 | 1 | 0 | CTO Home |
+--------+-------+-------+------------+--------------------------------+
| login | 0 | 0 | 1 | Retail Home |
+--------+-------+-------+------------+--------------------------------+

.. [#] This assumes the user is Guide and Sales agent in the same organisation.
These login scenarios involve the following pages:

+---------------+--------------------+---------------------------------------------------------+
| page name | example URL | description |
+===============+====================+=========================================================+
| login | /accounts/login/ | The page where a user logs in. |
+---------------+--------------------+---------------------------------------------------------+
| CTO home | /cto/123/ | Page about Tours (etc) for one organisation |
+---------------+--------------------+---------------------------------------------------------+
| Retail Home | /retail/123/ | FIT ticket order form (a lot like the public form) |
+---------------+--------------------+---------------------------------------------------------+
| Org Home | /org/123/ | Organisation Summary, links to Retail and CTO Homes |
+---------------+--------------------+---------------------------------------------------------+


Unusual Cases - A member of multiple organisations
--------------------------------------------------

It's probably uncommon, but a user could have roles in different organisations.

For example:
* Guide for multiple organisations
* Sales Agent for multiple organisations
* Admin for multiple organisations

In these situations, when a person logs in, they would have to chose
which organisation they want to act on behalf of. Then they would navigate
to the correct page.

+--------+-------+-------+------------+--------------------------------+
| action | Admin | Guide | SalesAgent | Page |
+========+=======+=======+============+================================+
| login | 0 | 2+ | 0 | select CTO -> CTO Home |
+--------+-------+-------+------------+--------------------------------+
| login | 2+ | 0 | 0 | select Org -> Org Home |
+--------+-------+-------+------------+--------------------------------+
| login | 0 | 0 | 2+ | select Retail -> Retail Home |
+--------+-------+-------+------------+--------------------------------+

Those unusual cases require aditional pages:

+---------------+--------------+---------------------------------------------------------+
| page name | example URL | description |
+===============+==============+=========================================================+
| Select Org | /org/ | List of organisation user is a member of |
+---------------+--------------+---------------------------------------------------------+
| Select CTO | /cto/ | List of organisations user is Guide or Admin of |
+---------------+--------------+---------------------------------------------------------+
| Select Retail | /retail/ | List of organisations user is a Sales Agend or Admin of |
+---------------+--------------+---------------------------------------------------------+

It could be even more complicated. If a user is a Guide for one organisation
and a Sales agent for another, when they log in, they would need to chose
which organisation they are acting on behalf of. If they were a Guide and
Sales agent for the same organisation, they would not have to make that choice.

+--------+-------+-------+------------+--------------------------------------------+
| action | Admin | Guide | SalesAgent | Page |
+========+=======+=======+============+============================================+
| login | 0 | 1 | 1 | Org Home (if same org) |
+--------+-------+-------+------------+--------------------------------------------+
| login | 0 | 1 | 1 | select Org (if different orgs) -> Org Home |
+--------+-------+-------+------------+--------------------------------------------+

In the more complicated combinations, the user would have to select the
organisation they are acting on behalf of when they log in.

+--------+-------+-------+------------+--------------------------------+
| action | Admin | Guide | SalesAgent | Page |
+========+=======+=======+============+================================+
| login | 0+ | 2+ | 1+ | select Org -> Org Home |
+--------+-------+-------+------------+--------------------------------+
| login | 0+ | 1+ | 2+ | select Org -> Org Home |
+--------+-------+-------+------------+--------------------------------+


Visualising the login logic
---------------------------

Overall, this diagram shows the different naviation paths from logging in.
It looks complicated because it covers all possible situations, however each
user would only experience one path based on their personal circumstances,
so it should not be a complicated experience for them.

.. graphviz::

digraph d {
node [style=filled fillcolor=white];

login [label="Login"];
cto_home [label="CTO Home"];
select_cto [label="Select CTO" fillcolor=lightgrey];
retail_home [label="Retail Home"];
select_retail [label="Select Retail" fillcolor=lightgrey];
org_home [label="Org Home"];
select_org [label="Select Org" fillcolor=lightgrey];

login -> cto_home;
login -> select_cto -> cto_home;
login -> org_home;
login -> select_org -> org_home;
login -> retail_home;
login -> select_retail -> retail_home;
}

49 changes: 49 additions & 0 deletions commercial_partner/menu.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
The Drop-down Menu
==================




menu_retail
^^^^^^^^^^^

menu item labelled "Retail". Present if user has Retail or Admin for 1 or more organisations


menu_cto
^^^^^^^^

menu item labelled "CTO". Present if user has Guide or Admin for 1 or more organisations


menu_search
^^^^^^^^^^^
menu item labelled "Search". Present if the user has Guide, SalesAgent or Admin for 1 or more organisations.



.. graphviz::

digraph d {
menu_retail -> org_retail [label="single retail org"];
menu_retail -> select_org_retail [label="multiple retail orgs"];
menu_CTO -> org_CTO [label="single CTO org"];
menu_CTO -> select_org_cto [label="multiple CTO orgs"];
menu_org -> org_home;
org_home -> org_CTO;
org_home -> org_retail;
select_org_cto;
select_org_retail;
select_org_cto_and_retail;
login;
login -> select_org_cto_and_retail [label="multiple orgs, cto + retail"];
select_org_cto_and_retail -> org_retail;
select_org_cto_and_retail -> org_CTO;
login -> select_org_cto [label="multiple orgs, cto only"];
select_org_cto -> org_CTO;
login -> select_org_retail [label="multiple orgs, retail only"];
select_org_retail -> org_retail;
login -> org_retail [label="single org, retail only"];
login -> org_CTO [label="single org, CTO only"];
login -> org_home [label="single org, CTO and retail"];
}
43 changes: 43 additions & 0 deletions commercial_partner/roles_and_responsabilities.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
.. _roles-and-responsabilities:

Roles and Responsabilities
==========================

Public users of the Parks Australia web site are essentially
anonymous. They do not have accounts, they do not log in to the
site.

Logged in users are typically members of 1 or more Commercial
Partner organisations, such as Commercial Tour Operators or
ticket retailers.

A user may have the following priveleges (roles) for an
organisation:
* Guide priveleges
* SalesAgent priveleges
* Admin privileges

If a user has Admin priveleges for an organisation, they
automatically have SalesAgent and Guide Priveleges for
that organisation.

Admin priveleges allows a user to:
* manage organisation configuration (TourTypes, Vehicles, etc)
* invite/approve/remove organisation members
* grant/revoke priveleges (SalesAgent, Guide, Admin)

If a user has SalesAgent priveleges, they are able to:
* search for customer's tickets
* edit customer's tickets
* create FIT tickets on behalf of retail customers

If a user has Guide priveleges, they are able to:
* search for customer's tickets
* edit customer's tickets
* Create PAX tickets and a tour manifest

A user can be a member of multiple organisations. They can have
different roles/priveleges in different organisations. This has
an impact on different navigation paths.

For example, see :ref:`logging-in`.

0 comments on commit b9ac22a

Please sign in to comment.