[SUCS Devel] Data held on membership
Chris Jones
rollercow at sucs.org
Mon Jul 23 23:02:49 BST 2007
On 23 Jul 2007, at 11:17, Denis Walker wrote:
> Another issue that needs to be addressed regarding membership data
> is where it is to be stored.
>
> Currently, it is held in the old "sucs" postgres database, which
> I'd hope we can make redundant in the medium term - it was the one
> used by the old website and contains various unused tables relating
> to the old site.
>
> There is the possibility of holding it in the "sucssite" db, but
> I'm not personally keen on that idea as I think membership data
> should be stored separately from the website.
>
> Personally, I think the most logical place would be in the LDAP
> database, which would mean that all member data is held in the one
> place and would make maintaining it much easier. However, I don't
> know how easy it would be to add fields to do this.
>
> So I would suggest LDAP for preference, but if that proves
> impractical, then a new dedicated postgres db (called "members"?).
Whilst storing everything in LDAP would be nice, it makes it hard to
limit access to data in simple yet a granular fashion, thus sticking
with the database is probably the best plan.
I propose the following schema...
CREATE TABLE member_type (
id serial NOT NULL PRIMARY KEY,
typename text NOT NULL,
blurb text NOT NULL
);
To follow the current convention of:
1 Student
2 Society
3 Honorary
4 Life
5 Associate
CREATE TABLE members (
uid integer NOT NULL PRIMARY KEY,
username text NOT NULL,
realname text NOT NULL,
email text,
address text,
phone text,
sid integer,
type integer REFERENCES member_type NOT NULL,
paid text NOT NULL,
comments text,
lastupdate timestamp(0) DEFAULT now() NOT NULL,
lastedit integer REFERENCES members NOT NULL
);
CREATE TABLE guestnet (
mac text NOT NULL UNIQUE,
uid integer REFERENCES members NOT NULL
);
CREATE TABLE doorcards (
cardnumber integer NOT NULL UNIQUE,
uid integer REFERENCES members NOT NULL
);
Out of personal preference I would also stick with keeping this data
within the 'sucs' database.
> A particular reason for my interest is that I've just started work
> on a member "Options" page for the website (http://beta.sucs.org/
> Tools/Options) which is intended to be able to edit some of this
> information. I'm intending that any changes will require the user's
> current password to be entered, to avoid them forgetting they've
> left themselves logged into the site and someone else making
> changes. Perhaps some changes might also require admin approval
> before being applied?
Excellent!
I don't think any changes to user provided data would require admin
approval, we have a nightly snapshot of that data if we ever need to
look back at old data.
Graham was working on a password changing tool, I don't know how far
he got though...
> Of course, another reason is that we really ought to get all the
> member handling stuff moved from old.sucs.org before the beginning
> of the new academic year.
At the very least moving the signup system to smarty (and the
associated check/rewrite of the validation and user-add stuff) would
be good.
--
Chris Jones, SUCS Admin
http://sucs.org
More information about the Devel
mailing list