package com.collabnet.ce.webservices; import com.collabnet.ce.soap50.webservices.cemain.UserSoapList; import com.collabnet.ce.soap50.webservices.cemain.UserSoapRow; import com.collabnet.ce.soap50.webservices.rbac.RoleSoapDO; import com.collabnet.ce.soap50.webservices.rbac.RoleSoapRow; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.Collection; /** * A role in CTF belongs to a project. * * @author Kohsuke Kawaguchi */ public class CTFRole extends CTFObject implements ObjectWithTitle { private final String title, description; public CTFRole(CTFProject parent, RoleSoapDO data) { super(parent, data.getId()); this.title = data.getTitle(); this.description = data.getDescription(); } public CTFRole(CTFProject parent, RoleSoapRow data) { super(parent, data.getId()); this.title = data.getTitle(); this.description = data.getDescription(); } public String getTitle() { return title; } public String getDescription() { return description; } /** * Gets the users who has this role (in the project that the role belongs to.) */ public CTFList<CTFUser> getMembers() throws RemoteException { CTFList<CTFUser> r = new CTFList<CTFUser>(); for (UserSoapRow row : app.getRbacAppSoap().getRoleMemberList(app.getSessionId(),getId()).getDataRows()) { r.add(new CTFUser(app,row)); } return r; } /** * Grants this role to the given user. */ public void grant(String username) throws RemoteException { app.getRbacAppSoap().addUser(app.getSessionId(), getId(), username); } public void grant(CTFUser u) throws RemoteException { grant(u.getUserName()); } }