← Back to team overview

epoptes team mailing list archive

[Question #386621]: Restrict how long users can log in for


New question #386621 on Epoptes:

The problem

1.	The computer lab is a limiting resource, as there are far more users than time and PCs available
2.	Users are therefore restricted to 1 hour a day
3.	Because of gender issues and inter-generational issues at play in the community, it is difficult for the young, female lab administrators to enforce the restriction
4.	Even if enforcement wasn’t a challenge, it is also difficult to manually track who has used up their time allocation in a busy lab

The solution

1.	A user administration area where user time allocations are set, and remaining hours viewed
2.	A tool which tracks user time based on when they logged in
3.	A remote control app that notifies users and then locks them out when their time is up

The technical parameters

Time allocations

Complex mapping of users to time allocations and rolling windows, with groups and rules
Group	Hours per week	Max per day
1	5	1
2	5	2
3	10	2
4	10	5

Usage logging

•	Time starts on login and is tracked against the usage for the current date
•	The time used must accumulate against a user’s allocation, even if they use different client PCs each time, and even if they log on and off multiple times in a day.

Notification and logout

1.	User is warned 10 minutes before deadline
2.	User is warned 2 minutes before deadline
3.	Logout happens at deadline

Note: It would be very useful if users could see all previous usage, usage remaining for the day, and usage remaining for the week, so that they can prioritise their work in terms of the remaining time available.


The software has to work on a somewhat rare configuration:

•	The device to be locked is a Raspberry Pi running as a fat client using PiNet and booting Raspbian OS
•	User login occurs on the Pi, but is logged on the PiNet server
•	The PiNet server has Epoptes for client management
•	Epoptes has routines for broadcast to user, and logging off/restarting specific devices
•	There are other logging tools that know how many hours the user was logged in for – e.g. psacct or acct


•	Cannot log only a single continuous user session of 1 hour – what happens if the computer logs off, reboots etc.
•	A accidental or forced reboot should suspend the user time tracking until they login again
•	The final logout should happen no matter if files are open, but should ideally not commonly result in loss of data
•	“an hour a day” doesn’t necessarily match resource allocations and load balancing.  5 hours in a week, no more than 2 hours a day might be better.
•	Lab managers have to make sure that users don’t register multiple times
•	Administrative override is probably necessary, but then puts pressure on lab administrators to bend the rules
•	Epoptes appears not to have a plugin or API architecture
•	If we build for epoptes, then the benefit is spread to all epoptes users on all platforms, not just fat client RPi
•	Does epoptes know anything about users, or only about clients?  Client PCs are identified by client name, not user name
•	Where should the locus of control be?
o	It can't be on the RP itself, because then the user could just go to another RP.
o	It could be PiNet istelf, since PiNet knows about the users.
o	It could be Epoptes, since that also knows about the users, and has logout and broadcast capabilities.  However, there is no API or plugin system for Epoptes, so development could be hard.
o	Finally, could it be the Ubuntu server itself, if the server knows when a user is logging into the RP?


Please contact me if you have any questions regarding the scope.

Assistance sought

We are seeking developers to assist with the coding as follows:

•	International developers on a voluntary basis – we will highlight your contribution online, in our media, and in the system documentation
•	South African developers on a voluntary basis – all of the above, plus points on your BEE scorecard, and/or a tax deduction certificate (the software recipient is a accredited non-profit organisation)

Please respond if you are able to help

You received this question notification because your team Epoptes
Developers is an answer contact for Epoptes.