There can be added the design of multiple roots.

In plain words, many people can be given the responsibility(root permissions)
of small areas. For example, there can be a division of labour with respect to
the departments. Some person/s can be given the root permissions for an
individual department, with one or more than one SUPER user who has access to
all departments.

The design we propose is this:

For any individual root, the pages which are accessible to him carry with it a
constant parameter corresponding to his department code. So, all operations
performed by him will have this code as an integral part. Since all data are
stored in tables in the database, while passing queries to the database, this
code can also be passed as an additional clause.
For example, consider a root incharge of the CS department. The dept code is
05. When he wants to implement any change, say, 

delete all members satisfying particular condition

Internally this will be implemented as

delete all members satisfying particular condition AND dept code=05.

So, he now can tamper only with data concerning his own department.

The SUPER user, on the other hand has no such code associated with him and can
therefore access any data.


IMPLEMENTATION:

The implementation does NOT need changes in the existing structure. Few more
methods/classes have to be added in the above regard and the existing functions
can themselves be used. Even new tables need not be created since the login can
still be stored in auth_table. Validator/Authenticator only have to be appended
to enable this facility.

