docs: protected void checkRoleForUserModification(CmsDbContext dbc, String username, CmsRole role)
      throws CmsDataAccessException, CmsRoleViolationException {
  
          CmsUser userToModify = m_driverManager.readUser(dbc, CmsOrganizationalUnit.removeLeadingSeparator(username));
          if (dbc.currentUser().equals(userToModify)) {
              // a user is allowed to write his own data
              return;
          }
          if (hasRole(dbc, dbc.currentUser(), CmsRole.ROOT_ADMIN)) {
              // a user with the ROOT_ADMIN role may change any other user
              return;
          }
          if (hasRole(dbc, userToModify, CmsRole.ADMINISTRATOR)) {
              // check the user that is going to do the modification is administrator
              checkRole(dbc, CmsRole.ADMINISTRATOR);
          } else {
              // check the user that is going to do the modification has the given role
              checkRole(dbc, role);
          }
  
      }