HyperAdmin

From HypertWiki
Revision as of 17:49, 7 August 2005 by Woozle (talk | contribs) (log table)
Jump to navigation Jump to search

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)