modernize group_created and deleted
This commit is contained in:
parent
584b3ef940
commit
d775a774f9
|
@ -1,18 +1,18 @@
|
|||
---
|
||||
workflows:
|
||||
# - create-user-add-to-vre
|
||||
# - group_deleted
|
||||
- group_deleted
|
||||
# - user-group_created
|
||||
# - user-group-role_created
|
||||
# - group_created
|
||||
- group_created
|
||||
# - invitation-accepted
|
||||
# - user-group_deleted
|
||||
# - user-group-role_deleted
|
||||
- delete-user-account
|
||||
# - delete-user-account
|
||||
# - role_deleted
|
||||
# - role_created
|
||||
# - add_role_policy_permission
|
||||
- add_all_member_roles
|
||||
# - add_all_member_roles
|
||||
# - create_system_service
|
||||
# - delete_system_service
|
||||
# - add_all_system_services_to_vre
|
||||
|
|
|
@ -8,15 +8,16 @@
|
|||
"inputParameters" : ["user", "group"],
|
||||
"tasks" : [
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "init",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"root_vo": "{{ root_vo }}",
|
||||
"keycloak": "{{ keycloak }}/{{ keycloak_realm }}",
|
||||
"keycloak_admin" : "{{ keycloak_admin }}/{{ keycloak_realm }}",
|
||||
"group" : "${workflow.input.group}",
|
||||
"scriptExpression": "function e(v){ return (v == null || (v.trim && v.trim() === ''))}; if(e($.group)) throw('Group must not be empty'); var tree = $.group.startsWith('%2F') ? $.group.split('%2F') : [$.group]; return { 'tree' : tree, 'child': tree[tree.length-1], 'append' : tree.slice(0,-1).join('/'), 'name' : tree.join('/'), encoded_root_vo : encodeURI($.root_vo)}"
|
||||
"evaluatorType" : "javascript",
|
||||
"expression": "function e(v){ return (v == null || (v.trim && v.trim() === ''))}; if(e($.group)) throw('Group must not be empty'); var tree = $.group.startsWith('%2F') ? $.group.split('%2F') : [$.group]; return { 'tree' : tree, 'child': tree[tree.length-1], 'append' : tree.slice(0,-1).join('/'), 'name' : tree.join('/'), encoded_root_vo : encodeURI($.root_vo)}"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -39,11 +40,12 @@
|
|||
{
|
||||
"name" : "check_is_gateway",
|
||||
"taskReferenceName" : "check_is_gateway",
|
||||
"type" : "DECISION",
|
||||
"type" : "SWITCH",
|
||||
"evaluatorType" : "javascript",
|
||||
"inputParameters" :{
|
||||
"group" : "${workflow.input.group}"
|
||||
},
|
||||
"caseExpression": "$.group.toLowerCase().endsWith('gateway') ? 'gateway' : ''",
|
||||
"expression": "$.group.toLowerCase().endsWith('gateway') ? 'gateway' : ''",
|
||||
"decisionCases" : {
|
||||
"gateway" : [
|
||||
{
|
||||
|
@ -106,12 +108,13 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "extract_client_id",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"client_location" : "${create_client.output.headers.location}",
|
||||
"scriptExpression": "var client_id = $.client_location.split('/').pop(); return {'client_id' : client_id}"
|
||||
"client_location" : "${create_client.output.headers.location}",
|
||||
"evaluatorType" : "javascript",
|
||||
"expression": "function f(){var client_id = $.client_location.split('/').pop(); return {'client_id' : client_id}} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -128,13 +131,14 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "prepare",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "jaascript",
|
||||
"append": "${init.output.result.append}",
|
||||
"groups": "${list_kc_groups.output.body}",
|
||||
"scriptExpression": "function recurse(inp){for(var i=0;i<inp.length;i++){if(inp[i]['path'] === $.append) return inp[i]; else{var subr = recurse(inp[i].subGroups); if(subr != null) return subr;}} return null}; return {'group' : $.append == '' ? '' : recurse($.groups)}"
|
||||
"expression": "function recurse(inp){for(var i=0;i<inp.length;i++){if(inp[i]['path'] === $.append) return inp[i]; else{var subr = recurse(inp[i].subGroups); if(subr != null) return subr;}} return null}; function f(){return {'group' : $.append == '' ? '' : recurse($.groups)}} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -143,16 +147,18 @@
|
|||
"inputParameters": {
|
||||
"groupid": "${prepare.output.result.group}"
|
||||
},
|
||||
"type": "DECISION",
|
||||
"caseValueParam": "groupid",
|
||||
"type": "SWITCH",
|
||||
"evaluatorType" : "value-param",
|
||||
"expression": "groupid",
|
||||
"decisionCases": {
|
||||
"": [
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "dummy",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"scriptExpression": "1"
|
||||
"evaluatorType" :"javascript",
|
||||
"expression": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -175,15 +181,16 @@
|
|||
"type": "SIMPLE"
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "prepare2",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"location": "${create_kc_group.output.headers.location}",
|
||||
"client_location": "${create_client.output.headers.location}",
|
||||
|
||||
"scriptExpression": "var newid=$.location.split('/').pop(); var client_id = $.client_location.split('/').pop(); return {'newid' : newid, 'client_id' : client_id}"
|
||||
"epression": "function f(){var newid=$.location.split('/').pop(); var client_id = $.client_location.split('/').pop(); return {'newid' : newid, 'client_id' : client_id}} f()"
|
||||
},
|
||||
"type": "LAMBDA"
|
||||
"type": "INLINE"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -400,16 +407,18 @@
|
|||
"inputParameters": {
|
||||
"groupid": "${prepare.output.result.group}"
|
||||
},
|
||||
"type": "DECISION",
|
||||
"caseValueParam": "groupid",
|
||||
"type": "SWITCH",
|
||||
"evaluatorType" : "javascript",
|
||||
"expression": "groupid",
|
||||
"decisionCases": {
|
||||
"": [
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "dummy2",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"scriptExpression": "1"
|
||||
"evaluatorType" : "javascript",
|
||||
"expression": "1"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -450,12 +459,13 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "build_add_role_tasks",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"roles" : "${get_rootvo_roles.output.body}",
|
||||
"scriptExpression": "inputs={},tasks=[];function add(r, k){ if(r.name != 'uma_protection' && r.name != 'Member'){ tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'create_'+k}); inputs['create_'+k]={url:'${create_client.output.headers.location}/roles',body:{clientRole:true,name:r.name,description:r.description},method:'POST',headers:{Authorization:'Bearer ${authorize2.output.body.access_token}','Content-Type':'application/json'}}}};for(var i=0;i<$.roles.length;i++)r=$.roles[i],k='add-'+r.name, add(r, k);return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};"
|
||||
"expression": "inputs={},tasks=[];function add(r, k){ if(r.name != 'uma_protection' && r.name != 'Member'){ tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'create_'+k}); inputs['create_'+k]={url:'${create_client.output.headers.location}/roles',body:{clientRole:true,name:r.name,description:r.description},method:'POST',headers:{Authorization:'Bearer ${authorize2.output.body.access_token}','Content-Type':'application/json'}}}};for(var i=0;i<$.roles.length;i++)r=$.roles[i],k='add-'+r.name, add(r, k); function f(){return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -492,12 +502,13 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "build_get_back_role_tasks",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"roleurls" : "${join_parallel_role_addition.output[*]..location}",
|
||||
"scriptExpression": "inputs={},tasks=[];for(var i=0;i<$.roleurls.length;i++)u=$.roleurls[i],k='add-'+i,tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'get_back_'+k}),inputs['get_back_'+k]={url:u,method:'GET',headers:{Authorization:'Bearer ${authorize3.output.body.access_token}',Accept:'application/json'}};return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};"
|
||||
"expression": "inputs={},tasks=[];function f(){for(var i=0;i<$.roleurls.length;i++)u=$.roleurls[i],k='add-'+i,tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'get_back_'+k}),inputs['get_back_'+k]={url:u,method:'GET',headers:{Authorization:'Bearer ${authorize3.output.body.access_token}',Accept:'application/json'}};return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -534,12 +545,13 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "build_add_policy_tasks",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"roles" : "${join_parallel_getting_back.output[*].body}",
|
||||
"scriptExpression": "inputs={},tasks=[];for(var i=0;i<$.roles.length;i++)r=$.roles[i],k='add-'+r.name,tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'create_role_policy_'+k}),inputs['create_role_policy_'+k]={url:'${init.input.keycloak_admin}/clients/${extract_client_id.output.result.client_id}/authz/resource-server/policy/role',body:{name:r.name+'_policy',description:'',type:'role',logic:'POSITIVE',decisionStrategy:'UNANIMOUS',roles:Java.to([{id:r.id,required:true}], 'java.util.Map[]')},method:'POST',headers:{Authorization:'Bearer ${authorize4.output.body.access_token}', Accept: 'application/json', 'Content-Type':'application/json'}};return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};"
|
||||
"expression": "inputs={},tasks=[];function f(){for(var i=0;i<$.roles.length;i++)r=$.roles[i],k='add-'+r.name,tasks.push({name:'pyrest',type:'SIMPLE',taskReferenceName:'create_role_policy_'+k}),inputs['create_role_policy_'+k]={url:'${init.input.keycloak_admin}/clients/${extract_client_id.output.result.client_id}/authz/resource-server/policy/role',body:{name:r.name+'_policy',description:'',type:'role',logic:'POSITIVE',decisionStrategy:'UNANIMOUS',roles:Java.to([{id:r.id,required:true}], 'java.util.Map[]')},method:'POST',headers:{Authorization:'Bearer ${authorize4.output.body.access_token}', Accept: 'application/json', 'Content-Type':'application/json'}};return {tasks:Java.to(tasks,'java.util.Map[]'),inputs:inputs};} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -559,13 +571,14 @@
|
|||
"taskReferenceName" : "join_parallel_policy_addition"
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "policy_list",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"memberpolicy" : "${create_role_policy_member.output.body.id}",
|
||||
"otherpolicies" : "${join_parallel_policy_addition.output[*].body.id}",
|
||||
"scriptExpression": "return Java.to(Java.from($.otherpolicies).concat($.memberpolicy), 'java.lang.String[]')"
|
||||
"expression": "function f(){return Java.to(Java.from($.otherpolicies).concat($.memberpolicy), 'java.lang.String[]')} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -8,14 +8,15 @@
|
|||
"inputParameters" : ["user", "group"],
|
||||
"tasks" : [
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "init",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"keycloak": "{{ keycloak }}/{{ keycloak_realm }}",
|
||||
"keycloak_admin" : "{{ keycloak_admin }}/{{ keycloak_realm }}",
|
||||
"group" : "${workflow.input.group}",
|
||||
"scriptExpression" : "return $.group.split('%2F').join('/')"
|
||||
"evaluatorType" : "javascript",
|
||||
"expression" : "function f(){return $.group.split('%2F').join('/')} f()"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -75,13 +76,14 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "LAMBDA_TASK",
|
||||
"name": "INLINE_TASK",
|
||||
"taskReferenceName": "find_group_by_path",
|
||||
"type": "LAMBDA",
|
||||
"type": "INLINE",
|
||||
"inputParameters": {
|
||||
"evaluatorType" : "javascript",
|
||||
"path" : "${init.output.result}",
|
||||
"groups" : "${list_kc_groups.output.body}",
|
||||
"scriptExpression": "function recurse(inp){for(var i=0;i<inp.length;i++){if(inp[i]['path'] === $.path) return inp[i]; else{var subr = recurse(inp[i].subGroups); if(subr != null) return subr;}} return null}; return recurse($.groups)"
|
||||
"expression": "function recurse(inp){for(var i=0;i<inp.length;i++){if(inp[i]['path'] === $.path) return inp[i]; else{var subr = recurse(inp[i].subGroups); if(subr != null) return subr;}} return null}; recurse($.groups)"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue