- @Override
- public Authorization getAuthorization(User user) {
- return new LdifAuthorization((LdifUser) user,
- getAllRoles((LdifUser) user));
- }
-
- @Override
- public Role createRole(String name, int type) {
- try {
- LdapName dn = new LdapName(name);
- if (users.containsKey(dn) || groups.containsKey(dn))
- throw new ArgeoUserAdminException("Already a role " + name);
-
- BasicAttributes attrs = new BasicAttributes();
- attrs.put("dn", dn.toString());
- Rdn nameRdn = dn.getRdn(dn.size() - 1);
- // TODO deal with multiple attr RDN
- attrs.put(nameRdn.getType(), nameRdn.getValue());
- LdifUser newRole;
- if (type == Role.USER) {
- newRole = new LdifUser(dn, attrs);
- users.put(dn, newRole);
- } else if (type == Role.GROUP) {
- newRole = new LdifGroup(this, dn, attrs);
- groups.put(dn, (LdifGroup) newRole);
- } else
- throw new ArgeoUserAdminException("Unsupported type " + type);
- return newRole;
- } catch (InvalidNameException e) {
- throw new ArgeoUserAdminException("Cannot create role " + name, e);
- }