use of org.osgi.service.useradmin.Role in project felix by apache.
the class WebConsolePlugin method doPost.
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// $NON-NLS-1$
resp.setContentType("application/json");
// $NON-NLS-1$
resp.setCharacterEncoding("UTF-8");
final PrintWriter out = resp.getWriter();
final JSONWriter jw = new JSONWriter(out);
// $NON-NLS-1$
final String action = req.getParameter("action");
// $NON-NLS-1$
final String role = req.getParameter("role");
// $NON-NLS-1$
final String group = req.getParameter("group");
try {
if ("addMember".equals(action)) {
// $NON-NLS-1$
final Role xrole = userAdmin.getRole(role);
final Group xgroup = (Group) userAdmin.getRole(group);
xgroup.addMember(xrole);
toJSON(jw, xgroup, false);
} else if ("addRequiredMember".equals(action)) {
// $NON-NLS-1$
final Role xrole = userAdmin.getRole(role);
final Group xgroup = (Group) userAdmin.getRole(group);
xgroup.addRequiredMember(xrole);
toJSON(jw, xgroup, false);
} else if ("removeMember".equals(action)) {
// $NON-NLS-1$
final Role xrole = userAdmin.getRole(role);
final Group xgroup = (Group) userAdmin.getRole(group);
xgroup.removeMember(xrole);
toJSON(jw, xgroup, false);
} else if ("toggleMembership".equals(action)) {
// $NON-NLS-1$
final Role xrole = userAdmin.getRole(role);
final Group xgroup = (Group) userAdmin.getRole(group);
if (// if required
contains(xgroup.getRequiredMembers(), xrole)) {
xgroup.removeMember(xrole);
// add as basic
xgroup.addMember(xrole);
} else {
xgroup.removeMember(xrole);
// add as required
xgroup.addRequiredMember(xrole);
}
toJSON(jw, xgroup, false);
} else if ("getDigestAlgorithms".equals(action)) {
// $NON-NLS-1$
getMessageDigestAlgorithms(jw);
} else if ("digest".equals(action)) {
// $NON-NLS-1$
// $NON-NLS-1$
final String dataRaw = req.getParameter("data");
// $NON-NLS-1$
final String algorithm = req.getParameter("algorithm");
final MessageDigest digest = MessageDigest.getInstance(algorithm);
final byte[] encoded = digest.digest(dataRaw.getBytes());
jw.object();
// $NON-NLS-1$
jw.key("encoded");
jw.value(encoded);
jw.endObject();
} else if ("del".equals(action)) {
// $NON-NLS-1$
out.print(userAdmin.removeRole(role));
} else if ("get".equals(action)) {
// $NON-NLS-1$
final Role xrole = userAdmin.getRole(role);
toJSON(jw, xrole, true);
} else if ("set".equals(action)) {
// $NON-NLS-1$
// $NON-NLS-1$
final String dataRaw = req.getParameter("data");
JSONParser parser = new JSONParser(dataRaw);
final Map<String, Object> data = parser.getParsed();
// $NON-NLS-1$
Role xrole = userAdmin.getRole((String) data.get("name"));
if (null == xrole) {
xrole = //
userAdmin.createRole(// $NON-NLS-1$
(String) data.get("name"), // $NON-NLS-1$
(int) (long) (Long) data.get("type"));
}
doSetData(xrole, data);
out.print(true);
} else // list all roles without details
{
Role[] roles = userAdmin.getRoles(null);
toJSON(jw, roles, false);
}
jw.flush();
} catch (Exception e) {
throw new ServletException(e);
}
}
use of org.osgi.service.useradmin.Role in project felix by apache.
the class UserManager method addMember.
public boolean addMember(String groupname, String rolename) {
try {
Role group = ac.getUserAdmin().getRole(groupname);
Role role = ac.getUserAdmin().getRole(rolename);
if (!(group.getType() == Role.GROUP))
return false;
return ((Group) group).addMember(role);
} catch (NullPointerException npe) {
ac.debug("UserAdmin not available. ");
return false;
}
}
use of org.osgi.service.useradmin.Role in project felix by apache.
the class UserManager method getGroups.
public String[] getGroups() throws Exception {
try {
Role[] roles = ac.getUserAdmin().getRoles(null);
Vector tmp = new Vector();
int j = 0;
for (int i = 0; i < roles.length; i++) {
if (roles[i].getType() == Role.GROUP) {
j++;
tmp.add(roles[i].getName());
}
}
if (j == 0)
return new String[0];
else {
String[] result = new String[j];
tmp.copyInto(result);
return result;
}
} catch (NullPointerException npe) {
ac.debug("UserAdmin not available. ");
return null;
}
}
use of org.osgi.service.useradmin.Role in project felix by apache.
the class UserManager method addRequiredMember.
public boolean addRequiredMember(String groupname, String rolename) {
try {
Role group = ac.getUserAdmin().getRole(groupname);
Role role = ac.getUserAdmin().getRole(rolename);
if (!(group.getType() == Role.GROUP))
return false;
return ((Group) group).addRequiredMember(role);
} catch (NullPointerException npe) {
ac.debug("UserAdmin not available. ");
return false;
}
}
use of org.osgi.service.useradmin.Role in project felix by apache.
the class UserManager method getUsers.
public String[] getUsers() throws Exception {
try {
Role[] roles = ac.getUserAdmin().getRoles(null);
Vector tmp = new Vector();
int j = 0;
for (int i = 0; i < roles.length; i++) {
if (roles[i].getType() == Role.USER) {
j++;
tmp.add(roles[i].getName());
}
}
if (j == 0)
return new String[0];
else {
String[] result = new String[j];
tmp.copyInto(result);
return result;
}
} catch (NullPointerException npe) {
ac.debug("UserAdmin not available. ");
return null;
}
}
Aggregations