示例#1
0
  public Entity getEntity(IGroupMember member) {

    // get the type of this member entity
    EntityEnum entityEnum = getEntityType(member);

    // construct a new entity bean for this entity
    Entity entity;
    if (entityEnum.isGroup()) {
      entity = EntityFactory.createEntity((IEntityGroup) member, entityEnum);
    } else {
      entity = EntityFactory.createEntity(member, entityEnum);
    }

    // if the name hasn't been set yet, look up the entity name
    if (entity.getName() == null) {
      entity.setName(lookupEntityName(entity));
    }

    if (EntityEnum.GROUP.toString().equals(entity.getEntityType())
        || EntityEnum.PERSON.toString().equals(entity.getEntityType())) {
      IAuthorizationPrincipal authP = getPrincipalForEntity(entity);
      Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString());
      entity.setPrincipal(principal);
    }
    return entity;
  }
示例#2
0
  public IAuthorizationPrincipal getPrincipalForEntity(Entity entity) {

    // attempt to determine the entity type class for this principal
    Class entityType;
    if (entity.getEntityType().equals(EntityEnum.GROUP.toString())) {
      entityType = IEntityGroup.class;
    } else {
      entityType = EntityEnum.getEntityEnum(entity.getEntityType()).getClazz();
    }

    // construct an authorization principal for this JsonEntityBean
    AuthorizationService authService = AuthorizationService.instance();
    IAuthorizationPrincipal p = authService.newPrincipal(entity.getId(), entityType);
    return p;
  }
示例#3
0
  public Entity getEntity(String entityType, String entityId, boolean populateChildren) {

    // get the EntityEnum for the specified entity type
    EntityEnum entityEnum = EntityEnum.getEntityEnum(entityType);

    // if the entity type is a group, use the group service's findGroup method
    // to locate it
    if (entityEnum.isGroup()) {
      // attempt to find the entity
      IEntityGroup entityGroup = GroupService.findGroup(entityId);
      if (entityGroup == null) {
        return null;
      } else {
        Entity entity = EntityFactory.createEntity(entityGroup, entityEnum);
        if (populateChildren) {
          @SuppressWarnings("unchecked")
          Iterator<IGroupMember> members = (Iterator<IGroupMember>) entityGroup.getMembers();
          entity = populateChildren(entity, members);
        }
        IAuthorizationPrincipal authP = getPrincipalForEntity(entity);
        Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString());

        entity.setPrincipal(principal);
        return entity;
      }
    }

    // otherwise use the getGroupMember method
    else {
      IGroupMember groupMember = GroupService.getGroupMember(entityId, entityEnum.getClazz());
      if (groupMember == null || groupMember instanceof IEntityGroup) {
        return null;
      }
      Entity entity = EntityFactory.createEntity(groupMember, entityEnum);

      // the group member interface doesn't include the entity name, so
      // we'll need to look that up manually
      entity.setName(lookupEntityName(entity));
      if (EntityEnum.GROUP.toString().equals(entity.getEntityType())
          || EntityEnum.PERSON.toString().equals(entity.getEntityType())) {
        IAuthorizationPrincipal authP = getPrincipalForEntity(entity);
        Principal principal = new PrincipalImpl(authP.getKey(), authP.getPrincipalString());
        entity.setPrincipal(principal);
      }
      return entity;
    }
  }