[tech] UCC database
David Adam
zanchey at ucc.gu.uwa.edu.au
Sun May 22 05:17:58 AWST 2016
On Tue, 17 May 2016, Jonathan Van buren wrote:
> Got a question. What type of database (if any) does ucc use to store all
> the members user account information? How accessible is this information (I
> know you can finger system accounts can you also query the database for
> information or do you need elevated privileges to do so)?
As far as I know, there's two different sources of information.
The authoritative database for account information - that is, user names,
passwords, Unix and Windows user IDs, home directories and so on - is
stored in our OpenLDAP server and accessed via LDAP. You do need elevated
privileges to view some information such as password hashes, but you can
have a look at what's stored as an anonymous user:
$ ldapvi '(uid=*)'
This will show you the entries for all users on the system (use plain
`ldapvi` to look through the entire database, but there is lots of other
uninteresting system information inside).
However, the membership register - which contains full names, addresses,
student numbers and so on - is maintained separately. At the moment I
think we're still using MemberDB, which [PXY] started and I continued
with, renamed as the Gumby Management System (after the Fish Management
System, an old machine database at UCC - after all G follows F :-).
This is accessible at:
https://secure.ucc.asn.au/members/
You do need to be on committee (or have committee add you) as obviously
this information is private.
GMS is written in a Python framework called Django, and the thing about it
that made it so suitable is that the entire thing is under 100 lines of
code and configuration. You can have a look at the source, I think - it's
in /services/gms with the bulk of the code in
/services/gms/memberdb/models.py.
This sits on top of a PostgreSQL database, although that's entirely an
implementation detail - in the past it was a SQLite database in the
secretary's home directory.
There have been plans for years to merge these two databases, or to
rewrite MemberDB/GMS into something bigger that would allow online signups
or even payments. The former is a bad idea - we need to keep historical
records and carefully protect the privacy of the information, and OpenLDAP
makes this easy to mess up. The latter is a great idea, but it's quite
hard and involves words like "workflow" which are no fun.
David Adam
zanchey@
More information about the tech
mailing list