Skip to content

Commit 9c7708f

Browse files
authored
Merge pull request #208 from kbss-cvut/202-fine-grained
fine grained access
2 parents 2657800 + 2dd743e commit 9c7708f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+504
-134
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
@prefix : <http://onto.fel.cvut.cz/ontologies/record-manager/> .
2+
@prefix rm: <http://onto.fel.cvut.cz/ontologies/record-manager/> .
3+
@prefix doc: <http://onto.fel.cvut.cz/ontologies/documentation/> .
4+
@prefix owl: <http://www.w3.org/2002/07/owl#> .
5+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
6+
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
7+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
8+
@prefix form: <http://onto.fel.cvut.cz/ontologies/form/> .
9+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
10+
@prefix ufo: <http://onto.fel.cvut.cz/ontologies/ufo/> .
11+
12+
<http://onto.fel.cvut.cz/ontologies/record-manager/role-groups> {
13+
rm:admin-role-group rdf:type owl:NamedIndividual, rm:role-group;
14+
rm:has-role rm:RM_ADMIN,
15+
rm:RM_USER,
16+
rm:complete-records-role,
17+
rm:delete-organization-records-role,
18+
rm:edit-organization-records-role,
19+
rm:view-organization-records-role,
20+
rm:edit-users-role,
21+
rm:import-codelists-role,
22+
rm:reject-records-role,
23+
rm:delete-all-records-role,
24+
rm:edit-all-records-role,
25+
rm:publish-records-role,
26+
rm:view-all-records-role;
27+
rdfs:label "admin-role-group"@en .
28+
29+
rm:user-role-group rdf:type owl:NamedIndividual, rm:role-group;
30+
rm:has-role rm:RM_USER;
31+
rdfs:label "user-role-group"@en .
32+
}

deploy/internal-auth/docker-compose.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ services:
8383
- "7200"
8484
restart: always
8585
volumes:
86-
- ../shared/db-server/import:/root/graphdb-import:ro
86+
- ../shared/db-server/import:/root/graphdb-import
8787
- db-server:/opt/graphdb/home
88+
- ./db-server/import/record-manager-app/role-groups.trig:/root/graphdb-import/record-manager-app/role-groups.trig:ro
8889

8990
volumes:
9091
db-server:
File renamed without changes.

deploy/keycloak-auth/docker-compose.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,10 +148,28 @@ services:
148148
- "8080"
149149
volumes:
150150
- auth-server:/opt/keycloak/data
151-
- ./keycloak:/opt/keycloak/data/import
151+
- ./auth-server:/opt/keycloak/data/import
152152
depends_on:
153153
- auth-server-db
154154

155+
keycloak-config:
156+
image: hashicorp/terraform:light
157+
working_dir: /workspace
158+
volumes:
159+
- ./keycloak-config:/workspace
160+
depends_on:
161+
- auth-server
162+
entrypoint: ["/bin/sh", "-c"]
163+
environment:
164+
- TF_VAR_kc_admin_user=${KC_ADMIN_USER}
165+
- TF_VAR_kc_admin_password=${KC_ADMIN_PASSWORD}
166+
- TF_VAR_kc_realm=record-manager
167+
- TF_VAR_kc_url=http://auth-server:8080/
168+
command: >
169+
"until nc -z auth-server 8080; do sleep 1; done &&
170+
terraform init &&
171+
terraform apply -auto-approve"
172+
155173
volumes:
156174
db-server:
157175
auth-server:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
3+
variable "groups" {
4+
type = list(string)
5+
6+
default = ["AdminGroup", "UserGroup"]
7+
}
8+
9+
resource "keycloak_group" "realm_groups" {
10+
for_each = toset(var.groups)
11+
12+
realm_id = var.kc_realm
13+
name = each.value
14+
}
15+
16+
resource "keycloak_group_roles" "admin_group_roles" {
17+
realm_id = var.kc_realm
18+
group_id = keycloak_group.realm_groups["AdminGroup"].id
19+
20+
role_ids = [for role in keycloak_role.realm_roles : role.id]
21+
}
22+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
terraform {
2+
required_providers {
3+
keycloak = {
4+
source = "keycloak/keycloak"
5+
version = ">= 5.0.0"
6+
}
7+
}
8+
}
9+
10+
provider "keycloak" {
11+
client_id = "admin-cli"
12+
username = var.kc_admin_user
13+
password = var.kc_admin_password
14+
url = var.kc_url
15+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
variable "roles" {
2+
type = map(string)
3+
default = {
4+
rm-delete-all-records = ""
5+
rm-edit-users = ""
6+
rm-impersonate = ""
7+
rm-edit-all-records = ""
8+
rm-view-organization-records = ""
9+
rm-complete-records = ""
10+
rm-edit-organization-records = ""
11+
rm-view-all-records = ""
12+
rm-delete-organization-records = ""
13+
rm-publish-records = ""
14+
rm-import-codelists = ""
15+
rm-reject-records = ""
16+
}
17+
}
18+
19+
resource "keycloak_role" "realm_roles" {
20+
for_each = var.roles
21+
22+
realm_id = var.kc_realm
23+
name = each.key
24+
description = length(each.value) > 0 ? each.value : null
25+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
variable "kc_admin_user" {
2+
description = "Keycloak username"
3+
type = string
4+
}
5+
6+
variable "kc_admin_password" {
7+
description = "Keycloak password"
8+
type = string
9+
sensitive = true
10+
}
11+
12+
variable "kc_url" {
13+
description = "Keycloak server URL"
14+
type = string
15+
default = "http://localhost:8080"
16+
}
17+
18+
variable "kc_realm" {
19+
description = "Keycloak realm name"
20+
type = string
21+
}

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"react-promise-tracker": "^2.1.1",
3232
"react-redux": "^7.2.4",
3333
"react-router-dom": "^5.2.0",
34+
"react-select": "^5.8.0",
3435
"redux": "^4.1.0",
3536
"redux-devtools-extension": "^2.13.9",
3637
"redux-thunk": "^2.3.0",

0 commit comments

Comments
 (0)