9.2.1. Managing users

Warning

You are looking at documentation for an older release. Not what you want? See the current release documentation.

This section shows you how to create, update, and remove users from the portal via two ways:

You can follow the snippet below to list users and some information of the users:

 try {

      ListAccess<User> users = userHandler.findAllUsers();
      for (User user : users.load(0, users.getSize())) {
        writer.append("<dl class='dl-horizontal'>");
        //Print username and email
        writer.append("<dt>Username:</dt>");
        writer.append("<dd>" + user.getUserName() + "</dd>");
        writer.append("<dt>Email:</dt>");
        writer.append("<dd>" + user.getEmail() + "</dd>");
        //Print user profile
        UserProfile profile = profileHandler.findUserProfileByName(user.getUserName());
        for (Iterator<Map.Entry<String, String>> i =profile.getUserInfoMap().entrySet().iterator(); i.hasNext(); ) {
          Map.Entry<String, String> entry = i.next();
          writer.append("<dt>" + entry.getKey() + "</dt>");
          writer.append("<dd>" + entry.getValue() + "</dd>");
        }
        //Print group and membership of user
        Collection<Group> groups = groupHandler.findGroupsOfUser(user.getUserName());
        writer.append("<dt>Roles:</dt>");
        for (Group group : groups) {
          Collection<Membership> memberships =  membershipHandler.findMembershipsByUserAndGroup(user.getUserName(), group.getId());
          StringBuilder sb = new StringBuilder();
          for (Iterator<Membership> i = memberships.iterator(); i.hasNext(); ) {
            sb.append(i.next().getMembershipType());
            if (i.hasNext()) sb.append(',');
          }
          writer.append("<dd>" + sb.toString() + " in group <i>" + group.getId() + "</i></dd>");
        }
        writer.append("</dl>");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }

The users list is displayed like this in your product:

Creating a user

Create a portlet action, then add the snippet below to it.

User newUser = userHandler.createUserInstance("newuser");

newUser.setPassword("exo");
newUser.setOrganizationId("/platform/users");
newUser.setDisplayName("New User");
newUser.setEmail("user@exoplatform.com");
userHandler.createUser(newUser, false);
Group group = groupHandler.findGroupById("/platform/users");
membershipHandler.linkMembership(newUser, group, membershipTypeHandler.findMembershipType("member"), false);
        

Executing the portlet action allows creating a user called newuser whose role is member:/platform/users.

Removing a user

Create a portlet action which executes the snippet below to remove an initialized user, for example, newuser.

userHandler.removeUser("newuser", false);

Removing a membership

Create a portlet action which executes the snippet below to remove a membership of the custom user:

Membership membership = membershipHandler.findMembershipByUserGroupAndType("custom", "/organization/custom", "custom-membership");

    membershipHandler.removeMembership(membership.getId(), false);
Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus