All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.activitystream.model.security.SecurityScope Maven / Gradle / Ivy

Go to download

AS-SDK is a java library to allow easy interoperability with Activity Stream.

There is a newer version: 0.1.25
Show newest version
package com.activitystream.model.security;

import com.activitystream.model.relations.Relation;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class SecurityScope {

    Map entityTypeTranslations = new LinkedHashMap<>();
    List blockedEntityTypes = new LinkedList<>();
    List simplifiedEntityTypes = new LinkedList<>();
    List accessControlPrivileges = new LinkedList<>();

    public SecurityScope() {

    }

    public SecurityScope(Map entityTypeTranslations, List blockedEntityTypes, List accessControlPrivileges,
                         List simplifiedEntityTypes) {
        this.entityTypeTranslations = entityTypeTranslations;
        this.blockedEntityTypes = blockedEntityTypes;
        this.accessControlPrivileges = accessControlPrivileges;
        this.simplifiedEntityTypes = simplifiedEntityTypes;
    }

    public Map getEntityTypeTranslations() {
        return entityTypeTranslations;
    }

    public void setEntityTypeTranslations(Map entityTypeTranslations) {
        this.entityTypeTranslations = entityTypeTranslations;
    }

    public List getBlockedEntityTypes() {
        return blockedEntityTypes;
    }

    public void setBlockedEntityTypes(List blockedEntityTypes) {
        this.blockedEntityTypes = blockedEntityTypes;
    }

    public List getAccessControlPrivileges() {
        return accessControlPrivileges;
    }

    public void setAccessControlPrivileges(List accessControlPrivileges) {
        this.accessControlPrivileges = accessControlPrivileges;
    }

    public List getSimplifiedEntityTypes() {
        return simplifiedEntityTypes;
    }

    public void setSimplifiedEntityTypes(List simplifiedEntityTypes) {
        this.simplifiedEntityTypes = simplifiedEntityTypes;
    }

    public boolean filterRelation(Relation relation) {
        return relation.getRelatedBusinessEntity() != null &&
                blockedEntityTypes.contains(relation.getRelatedBusinessEntity().getEntityReference().getEntityTypeString());
    }

    public Relation simplifyRelation(Relation relation) {
        if (simplifiedEntityTypes != null && relation.getRelatedBusinessEntity() != null &&
                simplifiedEntityTypes.contains(relation.getRelatedBusinessEntity().getEntityReference().getEntityTypeString())) {
            return new Relation(relation.getRelationsType().getRelationsType(), relation.getRelatedBusinessEntity().getEntityReference().getEntityReference());
        } else {
            return relation;
        }
    }

    public String getAdjustedEntityReference(String type, String id) {
        return this.entityTypeTranslations.getOrDefault(type, type) + "/" + id.toLowerCase();
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy