Woozle: HyperAdmin
This is my attempt to create a general user administration system for use by other web-based applications (mostly mine) which might need one.
Tables
- "K" indicates Primary Key fields
- "#" indicates autonumbered fields
Main data tables
- users -- users with access to the admin system
#K |
ID |
int(4)
|
|
Name |
varchar(32)
|
|
Pass |
text
|
|
Email |
varchar(128) |
email address for password confirmation and such
|
|
WhenGood |
timestamp |
when user last logged in
|
|
WhenBad |
timestamp |
when user last attempted to log in but failed (bad password)
|
|
QtyFails |
int(4) |
number of failed login attempts since last success
|
- groups -- each group has a role to play, and each role requires a particular set of privileges
#K |
ID |
int(4)
|
|
Name |
varchar(32)
|
|
Descr |
text |
text describing the purpose of this group
|
- privs -- particular privileges; meaning is defined in code
#K |
ID |
int(4)
|
|
Name |
varchar(32)
|
|
Descr |
text |
text describing this permission
|
Collection/link tables
- users_x_groups -- users in each group / groups to which each user belongs
K |
ID_User |
int(4) |
users.ID
|
K |
ID_Group |
int(4) |
groups.ID
|
- groups_x_privs -- privileges each group has / groups having a particular privilege
K |
ID_Group |
int(4) |
groups.ID
|
K |
ID_Priv |
int(4) |
privs.ID
|
Logging tables
- log -- logs of login attempts as well as what users did while logged in
K# |
ID |
int(4)
|
|
ID_User |
int(4) |
users.ID - which user, if any (NULL = unknown user)
|
|
ID_Session |
int(4) |
sessions.ID - more information in case user is unknown
|
|
When |
timestamp |
when this action was taken
|
|
Seq |
int(4) |
Order in which actions were executed, if done at the same time
|
|
Descr |
text |
description of action taken (should be very specific)
|