Chapter 8. Sitegroups: Virtual Database Environment, Authentication

Table of Contents
Sitegroups
Authentication and Security

Sitegroups

Every record in the database is tagged as belonging to a specific Sitegroup. The effect is much the same as storing sites for separate clients in separate databases in that resources can't be accessed across Sitegroups and has the following benefits:

Sitegroups account for three categories of Midgard users depending on their access level:

The Administrator Group: root level users

Any member of this Group is a root level user, which means he can do anything on the system. Only server administrators should be members of that Group, as everything else can be handled by creating a proper Group system.

Only root level users can:

  • Modify Asgard, the administration interface, which belongs to SG0.

  • Create new Sitegroups.

  • Create new Hosts ; or modify the name, prefix and port fields of an existing Host record.

Admingroups: admin level users

Any member of the Group whose id equals the admingroup field of a Sitegroup record is an admin level user for that Sitegroup. This means he has write access to every resource within that Sitegroup but the name, prefix and port fields of the Host table.

Only admin level users can modify Host records (apart from the three above mentioned fields): They can choose whether the sites within their Sitegroup are online, and whether they require authentication.

Also, only they can create root Pages, root Styles and root Topics.

Login Delimiters

A root or admin level user may want to limit his rights when doing a specific task which doesn't require special privileges, or so as to check on a user's rights. This is achieved by authenticating with a username and a Sitegroup name, separated with a Delimiter.

Table 8-1 to Table 8-3 explain the use of delimiters for the three cetegories of users:

Table 8-1. Sitegroup login Delimiters for root level user root.

CaseLogin levelDelimiterLogin
1rootnoneroot
2root*root*sitegroup
3admin!root!sitegroup
4user$root$sitegroup
5user=, $root=user$sitegroup

  1. root is logged in SGO. He has full access to all Sitegroups, but anything he creates will be part of SG0 only.

  2. root is logged in sitegroup. He has full access to all Sitegroups, but anything he creates will be part of sitegroup only.

  3. root has the same privileges as admin.

  4. root is logged in as a user, but looses all his write privileges as he doesn't belong to any Group.

  5. root is logged in as user with root's password. He gets the same privileges as user.

Table 8-2. Sitegroup login Delimiters for admin level user admin.

CaseLogin levelDelimiterLogin
1admin+admin or admin+sitegroup
2user;admin;sitegroup
3user= (, +)admin=user or admin=user+sitegroup

  1. admin is logged in as admin.

  2. admin is logged in as a user, and looses all his privileges as he doesn't belong to any Group.

  3. admin is logged in as user with admin's password. He gets the same privileges as user.

Table 8-3. Sitegroup login Delimiters for user level user user.

Login levelDelimiterLoginComment
user+

user or user+sitegroup

user is logged in as user.