Blog

On this page you will find Tutorials, How-Tos and Tips for developing with open bi.

User Creation and Maintenance

The User is the central open bi entity to control access to the open bi instance and its services. Only maintained users are allowed to log in, and the User Groups assigned to the user define what the user is allowed to see and do.

In this blog post we will discuss how users can be created in open bi. For a full overview on the properties of the user, visit the Entity documentation. If a property is missing for your project, you can easily add it as a custom property using the Table Attributes.

open bi Configurator

An administrator can create new users in the open bi Configurator via Users:

You can click on the + icon to create a new user. A user must at least:

  • Have A Username
  • Have A Password.
  • Be Active
Please observe that Initial password will require a password change, provided that the used UI supports changing the password.

Once you Save the user, it can be used for log in.

HTML Items

If you are using the open bi CMS, you can use the following HTML Items to create and maintain users. There are two helpful blog posts on How to create a CMS and How to use HTML items in general.

User Maintenance

The HTML Item <openbi:usermaintenance> can be used to administer the user list and to invite new users. If a new user is invited, the standard registration process of the CMS is used:

  1. User properties (e.g. first name, lastname and mail address) are set by the inviting user
  2. Upon save, the new user is stored with Active set to false and no Password set
  3. A mail containing an activation link is sent to the invited user
  4. The invited user clicks on the activation link, which opens the page of the CMS containing the <openbi:passwordinitial> item
  5. Once a password has been entered, the user is activated and ready for log-in

User Registration

The HTML Item <openbi:registration> can be used to provide a registration page in your CMS, which allows users to register themselves.

The process is the same as for the HTML Item <openbi:usermaintenance> - with the only difference that the users provide the information in step 1 themselves.

User Activation

For the user registration and activation processes above, you need a page in your CMS that uses the HTML Item <openbi:logininitial>. The HTML Item allows users to set their password and activate their user.

Password Reset

You can add a page to your CMS that uses the HTML Item <openbi:forgotpassword>. It will allow users to request a mail with a generated password.

Password Change

You can add a page to your CMS that uses the HTML Item <openbi:changepassword>. It will allow users to change their passowrd.

User Self-Service

If you want currently logged-in users to be able to change their own data, you can use HTML Item <openbi:contactinformation>.

API

You can also maintain and create users via the open bi API: Here is an example on how to use the Class user for this:

using BiExcellence.OpenBi.Api.Commands.Users; var users = await session.GetUsers().Send(cancellationToken); var user = await session.GetUserByUsername(username, cancellationToken); var usergroupUsers = await session.GetUsersByUsergroup(usergroupId, cancellationToken); var organisationUsers = await session.GetUsersByOrganisation(organisationId, cancellationToken); var roleUsers = await session.GetUsersByRole(roleId, cancellationToken); var newUser = new User("username") { IsActive = true, Firstname = "Firstname", Lastname = "Lastname" }; await session.CreateUser(newUser, cancellationToken); await session.ChangePassword(newUser, "", "newPassword", cancellationToken); await session.AssignUserToUsergroup(newUser.Id, usergroupId, cancellationToken); await session.RemoveUserFromUsergroup(newUser.Id, usergroupId, cancellationToken); await session.AssignUserToOrganisation(newUser.Id, organisationId, cancellationToken); await session.RemoveUserFromOrganisation(newUser.Id, organisationId, cancellationToken); await session.AssignUserToRole(newUser.Id, roleId, cancellationToken); await session.RemoveUserFromRole(newUser.Id, roleId, cancellationToken); await session.DeleteUser(newUser, cancellationToken);
Thilo Knötzele
Author: Thilo Knötzele
Creation date: 06.08.2021
Category: Modelling
back to overview