diff --git a/config/authorization/config.ex b/config/authorization/config.ex index 836879d..21894db 100644 --- a/config/authorization/config.ex +++ b/config/authorization/config.ex @@ -7,45 +7,8 @@ alias Acl.GroupSpec, as: GroupSpec alias Acl.GroupSpec.GraphCleanup, as: GraphCleanup defmodule Acl.UserGroups.Config do - defp access_by_role( group_string ) do - %AccessByQuery{ - vars: ["session_group","session_role"], - query: sparql_query_for_access_role( group_string ) } - end - - defp sparql_query_for_access_role( group_string ) do - "PREFIX ext: - PREFIX mu: - SELECT ?session_group ?session_role WHERE { - ext:sessionGroup/mu:uuid ?session_group; - ext:sessionRole ?session_role. - FILTER( ?session_role = \"#{group_string}\" ) - }" - end - - def user_groups do - [ - %GroupSpec{ - name: "acmidm", - useage: [:read, :write, :read_for_write], - access: %AccessByQuery{ - query: "PREFIX ext: - PREFIX mu: - PREFIX musession: - SELECT ?s WHERE { - ?s ?p ?o. - FILTER NOT EXISTS { - ext:hasAccount ?account. - } - } LIMIT 1", - vars: [] - }, - graphs: [ - %GraphSpec{ - graph: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin", - constraint: %ResourceConstraint{ - resource_types: [ - "http://www.w3.org/ns/org#Organization", + @protected_resource_type [ + "http://www.w3.org/ns/org#Organization", "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid", "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst", "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan", @@ -93,7 +56,45 @@ defmodule Acl.UserGroups.Config do "http://www.w3.org/2004/02/skos/core#Concept", "http://xmlns.com/foaf/0.1/Image", "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject" - ] + ] + defp access_by_role( group_string ) do + %AccessByQuery{ + vars: ["session_group","session_role"], + query: sparql_query_for_access_role( group_string ) } + end + + defp sparql_query_for_access_role( group_string ) do + "PREFIX ext: + PREFIX mu: + SELECT ?session_group ?session_role WHERE { + ext:sessionGroup/mu:uuid ?session_group; + ext:sessionRole ?session_role. + FILTER( ?session_role = \"#{group_string}\" ) + }" + end + + def user_groups do + [ + %GroupSpec{ + name: "acmidm", + useage: [:read, :write, :read_for_write], + access: %AccessByQuery{ + query: "PREFIX ext: + PREFIX mu: + PREFIX musession: + SELECT ?s WHERE { + ?s ?p ?o. + FILTER NOT EXISTS { + ext:hasAccount ?account. + } + } LIMIT 1", + vars: [] + }, + graphs: [ + %GraphSpec{ + graph: "http://mu.semte.ch/graphs/contacthub/141d9d6b-54af-4d17-b313-8d1c30bc3f5b/ChAdmin", + constraint: %ResourceConstraint{ + resource_types: @protected_resource_type } } ] @@ -105,56 +106,7 @@ defmodule Acl.UserGroups.Config do graphs: [ %GraphSpec{ graph: "http://mu.semte.ch/graphs/contacthub/", constraint: %ResourceConstraint{ - resource_types: [ - "http://www.w3.org/ns/org#Organization", - "http://data.vlaanderen.be/ns/besluit#Bestuurseenheid", - "http://data.lblod.info/vocabularies/erediensten/BestuurVanDeEredienst", - "http://data.vlaanderen.be/ns/besluit#Bestuursorgaan", - "http://data.lblod.info/vocabularies/erediensten/RolBedienaar", - "http://data.lblod.info/vocabularies/erediensten/VoorwaardenBedienaar", - "https://data.vlaanderen.be/ns/persoon#Geboorte", - "https://data.vlaanderen.be/ns/persoon#Nationaliteit", - "http://mu.semte.ch/vocabularies/ext/GeslachtCode", - "http://data.lblod.info/vocabularies/erediensten/PositieBedienaar", - "http://www.w3.org/ns/adms#Identifier", - "https://data.vlaanderen.be/ns/generiek#GestructureerdeIdentificator", - "http://www.w3.org/ns/org#ChangeEvent", - "http://data.lblod.info/vocabularies/erediensten/BetrokkenLokaleBesturen", - "http://data.lblod.info/vocabularies/erediensten/VerbondenJuridischeStructuren", - "http://www.w3.org/ns/prov#Location", - "http://www.w3.org/ns/org#Site", - "http://www.w3.org/ns/locn#Address", - "http://www.w3.org/ns/person#Person", - "http://data.vlaanderen.be/ns/mandaat#Mandaat", - "http://data.vlaanderen.be/ns/mandaat#Mandataris", - "http://data.lblod.info/vocabularies/erediensten/EredienstMandataris", - "http://schema.org/ContactPoint", - "http://data.lblod.info/vocabularies/leidinggevenden/Bestuursfunctie", - "http://data.lblod.info/vocabularies/erediensten/CentraalBestuurVanDeEredienst", - "http://data.lblod.info/vocabularies/erediensten/CentraleBestuursorgaan", - "http://data.lblod.info/vocabularies/erediensten/RepresentatiefOrgaan", - "http://www.w3.org/ns/org#Role", - "http://www.w3.org/ns/org#Post", - "http://data.lblod.info/vocabularies/contacthub/AgentInPositie", - "http://lblod.data.gift/vocabularies/organisatie/OrganisatieStatusCode", - "http://lblod.data.gift/vocabularies/organisatie/BestuursfunctieCode", - "http://lblod.data.gift/vocabularies/organisatie/BestuursorgaanClassificatieCode", - "http://lblod.data.gift/vocabularies/organisatie/TypeEredienst", - "http://lblod.data.gift/vocabularies/organisatie/HelftVerkiezing", - "http://lblod.data.gift/vocabularies/organisatie/Veranderingsgebeurtenis", - "http://lblod.data.gift/vocabularies/organisatie/MandatarisStatusCode", - "http://lblod.data.gift/vocabularies/organisatie/BestuurseenheidClassificatieCode", - "http://lblod.data.gift/vocabularies/organisatie/TypeBetrokkenheid", - "http://lblod.data.gift/vocabularies/organisatie/VoorwaardenBedienaarCriterium", - "http://lblod.data.gift/vocabularies/organisatie/BedienaarCriteriumBewijsstuk", - "http://lblod.data.gift/vocabularies/organisatie/EredienstBeroepen", - "http://lblod.data.gift/vocabularies/organisatie/BedienaarFinanceringCode", - "http://lblod.data.gift/vocabularies/organisatie/TypeVestiging", - "http://lblod.data.gift/vocabularies/organisatie/Rechtsvormtype", - "http://www.w3.org/2004/02/skos/core#ConceptScheme", - "http://www.w3.org/2004/02/skos/core#Concept", - "http://xmlns.com/foaf/0.1/Image", - "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#FileDataObject" ] } } ] }, + resource_types: @protected_resource_type } } ] }, %GroupSpec{ name: "public", useage: [:read],