Database structure comment
Hey all,
I think the current database structure is not optimal.
You're not linking roles with the bodies they belong to nor fees to antennae etc and you're creating separate tables for the different kinds of bodies. It is much better to do something like this:
(i didn't pay attention to the direction of the arrows because i was lazy)
this looks more complicated, but it's not because it needs less tables, and less separately programmed pages to handle them. You're unifying all bodies in one structure meaning they can all be managed in the same way without any extra programming or copied pages. By connecting roles and fees to bodies, the bodies can handle all administration thereof themselves without any help from the admins.
plus it can account for all the quirky possible AEGEE situations, for example:
You have a user, he's a member of a body AEGEE-Maastricht of the type Antenna, where he is in the honorary_member fee category and pays 0 fee. He is not assigned a role in the body.
The same user is a member of a body Juridical Commission of the type Commission, this body does not have any fees (no fee categories), the member has a role in the body of "Commissioner", and can change the status of its members.
The same user is a member of a body AEGEE-Aachen of the type Antenna, where he is in the member category and pays 25 fee, he also has the role of "Vice President for Agora Organisation", and can change the status of its members and add roles and change the body description.
You can also create a body called ITC with a role called OMS admin and then use that role_id to check for page-access for certain useradmin things.
In general auth_levels and is_superadmin don't fit at all with the structure of AEGEE.
I also recommend that if you think these changes are good, you don't jump up and implement them, but create a revised database structure and throw that at ITC-L and wherever other places AEGEE IT people hide, and see what the old bosses say so you can start with something optimal and work from there.
Some lesser comments on the database
do we really need stuff like phone number, date of birth and address? what will it be used for? is this gonna be a facebook replacement? it should in any case be optional