Users and Permissions

RoseNMS uses the repoze.what method of authorization which is based upon three sets of models.

Users

The first model is the User. This is usually a person although it can be a role. A User has a username and a password and the combination of these permits access to RoseNMS. All Attributes within the system are owned by a User, which can provide them with a limited read-only access to the state of the Attribute.

A User model also has an email_address which is used to send Triggers if they are setup for it.

Permissions

For each method within each controller the second model called a Permission is used to determine access. The following permissions are defined for RoseNMS:

Name Description
UserRO Read-Only Access to User, Group and Permissions
UserRW Read/Write Access to User, Group and Permissions
HostRO Read-Only Access to Host and Attribute
HostRW Read/Write Access to Host and Attribute
AdminRO Read-Only Access to remaining models
AdminRW Read/Write Access to remaining models

There is likely to me more Permissions created in future versions of RoseNMS depending on user feedback.

Groups

Groups are the glue between Permissions and Users. Users cannot have permissions granted to them directly, but belong to Groups which do have Permissions assigned to them. A User can belong to none, one or many Groups and a Group can be assigned multiple Permissions. As the relationship between a Group and a Permission is many-to-many, different Groups can have the same Permision assigned to them.

There are several pre-defined Groups within a standard installation of RoseNMS.

Group Name Permissions
User View UserRO
User Admin UserRW
Host View HostRO
Host Admin HostRW
System View UserRO, HostRO, AdminRO
System Admin UserRW, HostRW, AdminRW

Footnotes

[1]In JFFNMS users (which had admin access) and clients (which owned the interface) were separate models, they are combined in RoseNMS.