Skip to content

Commit daa1adf

Browse files
user-based login detailed description
1 parent 4b3ad47 commit daa1adf

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

docs/source/dev/lims_integration.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ There may be local deviations from this defined by the LIMS system and
6767
HardwareObject used. Any number of users can be logged in at the same time
6868
(only one active) as long as they belong to the **same** proposal.
6969

70+
For more details refer [here](./user-based-login-details.md).
71+
7072
### Proposal-based login
7173

7274
When proposal-based login is used, the user authenticates with the proposal
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# User-based login details
2+
3+
When logging in the very first user sees modal dialog `Select session` and must choose an experimental session. As long as one user is logged in, the consecutive users do not see this modal dialog. Pressing outside the modal or closing with `X` causes unsuccessful login and landing back on the login page.
4+
5+
## Multiple users:
6+
7+
Any number of users can be logged in at the same time if:
8+
* they belong to the same proposal,
9+
* they are **staff**.
10+
11+
Users, who are not part of the proposal, can not login. After unsuccessful login attempt the user should see the message: “Authentication failed”.
12+
13+
The first logged in user automatically becomes an **active user**. The **active user** is **in control** and the other users are **observers**.
14+
15+
The **active user** should be able to force logout **observers**, except **staff**.
16+
17+
**Observers** can remain logged in even if the **active user** logs out.
18+
19+
The **active user** can change proposal without signing out. This automatically log out any **observers** that are not part of the new proposal, except **staff**. Users can only choose proposals they belong to.
20+
21+
## Control:
22+
23+
It should be clear who is **in control** (hostname of the machine should be included to know if its remote or on the beamline) and who are the **observers**.
24+
25+
**Observers** can ”ask for control”, **active user** can give or deny control.
26+
27+
There is a timeout so an **observer** does not stay waiting for the control forever. After the timeout the user will get control (if there was no deny signal from **active user**). This feature is enabled by default, but can be disabled.
28+
29+
**Staff** can always “take control” or “ask for control”, even if the “get control after time out” feature is disabled.
30+
31+
The **active user** should be able to give control to any specific user (**observer** or **staff**).
32+
33+
If the **active user** logs out, any of the **observers** can ”ask for control”, and this user will immediately become the **active user**.
34+
35+
## New login:
36+
37+
Meaning: login of already logged in user in another browser, browser tab or window, computer, etc.
38+
39+
Already logged users (whether they are **active**, **observers** or **staff**) can always make a new login.
40+
41+
New login inherits all session data such as queues, control status, drawn points etc.
42+
43+
After new login the old one is quit silently and immediately.
44+
45+
## User with **staff** privileges
46+
47+
They can always:
48+
* Login - they do not need to be part of any proposal (it does not need to be checked to let them login). After login they see the `Select session` modal with the list of proposals they belong to. They could choose any proposal from it. If they type in a number or keyword they search through full list of proposals (even the ones they do not belong to) and they can select each one.
49+
* Logout any user (**active** or **observer**).
50+
* Take and move control from user to another one.
51+
* Change proposal without logging out.
52+
* Restart the server
53+
54+
## Sessions:
55+
56+
If user login and there is session MXCuBE will use it – applies to **staff** members and common users.
57+
58+
If user login and there is no sesion the MXCuBE creates new one applies to **staff** members and common users.
59+
60+
If they change proposal what happens with the session is covered above.
61+
62+
## Improper logout (without sign out button):
63+
64+
Closing or crashing browser of last logged in user activates an “idle timeout” (15 minutes for example as default value). If there is any **active user** or **observer** still logged in, the timeout will not be activated.
65+
66+
After the idle timeout, user data (points, queues etc.) is lost.
67+
68+
If the user logs in again before the end of the “idle timeout”, this data will be still available (this covers closing MXCuBE by mistake).
69+
70+
If the **active user** logged out improperly, the **observers** can “ask for control” and it will be given to them after certain time (mentioned in 3.3.) since there is no “deny” signal from the **active user**.
71+
72+
Users who are not part of the proposal need to wait for the idle timeout to pass until the formerly **active user's** data is cleaned. After that time any user can login.
73+
74+
**Staff** can kick out any idle user (or restart the server) so that the formerly **active user**’s data is cleaned, and any user can login immediately. Restarting server causes logging out every user.

0 commit comments

Comments
 (0)