-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
start writing testable requirements content
- Loading branch information
1 parent
07f7632
commit b9ac22a
Showing
4 changed files
with
237 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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`. |