Show TOC

Detecting the User RoleLocate this document in the navigation structure

Use

The API provides a possibility to implement different behavior depending on the current user's role and permissions in a workspace.

The following example illustrates how to detect the role to which the user belongs.

private void detectUserRole(IPortalComponentRequest request)
{
// Get the workspace in which this module is running
IModuleContext moduleContext = ModuleHelper.getModuleContext(request);
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory) RuntimeFactory.getWorkspacesRuntime().getService(IWorkspaceFactory.class);		
IIdentifier workspaceIdentifier = moduleContext.getModuleID().getWorkspaceID();
IWorkspace workspace = workspaceFactory.getWorkspace(moduleContext.getUser() ,workspaceIdentifier);

// Check if the user is manager in this workspace
boolean isManager = workspace.getMemberList().isManager(request.getUser());		

// Get owner
IUser ownerUser = (IUser) workspace.getMemberList().getOwner();

// Check if the user is member in this workspace
IUser memberToCheck = null;
try {
    memberToCheck = UMFactory.getUserFactory().getUser("userToCheck");
} 
catch (UMException e) {
 // handle exception;
}     
boolean isMember = workspace.getMemberList().getRole(WorkspaceRole.MEMBER).isUserInRole(memberToCheck);

}

Package

The relevant APIs are contained in the com.sap.workspaces.workspace package.