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:
Directly inline, via the UI of eXo Platform.
To create a user, see the Adding a user section for more details.
To update and remove a user from the portal, see the Managing users section for more details.
In your extension, via the configuration file as below:
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:
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);