UNPKG

graphdb-workbench

Version:
2 lines 12.2 kB
export const __webpack_id__=86294;export const __webpack_ids__=[34684,47874,64358,84896,86294,87384];export const __webpack_modules__={34684:(e,t,s)=>{s.r(t),s(34483),s(47874),s(96e3);var r=s(64358),o=s(98980),l=s(79947),a=s(87384);function i(e,t,s,i,n,c,u,d,p){e.contextValue=void 0;const h=[];e.ruleData={},e.loading=!1,e.namespaces=[],e.rulesModel=void 0,e.rulesModelCopy=void 0,e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.editedRuleCopy=void 0,e.isNewRule=!1,e.modelIsDirty=!1,e.dirtyScope=new Set,e.activeTabScope=a.ACL_SCOPE.STATEMENT,e.ACL_SCOPE=a.ACL_SCOPE,e.DEFAULT_CONTEXT_VALUES=a.DEFAULT_CONTEXT_VALUES,e.DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES=a.DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES,e.DEFAULT_URI_VALUES=a.DEFAULT_URI_VALUES,e.rowHeights={},e.hasCustomPrefix=!1,e.isEditMode=()=>void 0===e.editedRuleIndex&&e.rulesModel&&e.modelIsDirty&&e.dirtyScope.size>0,e.addRule=(t,s)=>{e.rulesModel.addRule(t,s),e.showPrefixWarningIcon(!1),e.editedRuleIndex=s,e.editedRuleScope=t,e.isNewRule=!0,f(t)},e.editRule=(t,s)=>{e.editedRuleIndex=s,e.editedRuleScope=t,e.isNewRule=!1,e.editedRuleCopy=e.rulesModel.getRuleCopy(t,s),e.rulesModel.setPrefixWarningFlag(t,s),e.getRowHeight="height: "+e.rowHeights[e.editedRuleIndex],f(t)},e.deleteRule=(t,s)=>{u.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.delete_rule_confirmation",{index:s+1}),()=>{e.rulesModel.removeRule(t,s),f(t)})},e.saveRule=t=>{e.rulesModel.setPrefixWarningFlag(e.editedRuleScope,e.editedRuleIndex),e.rulesModel.isRuleDuplicated(e.editedRuleScope,e.editedRuleIndex)?S():(e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.isNewRule=!1,f(t))},e.cancelEditing=(t,s)=>{e.isNewRule?(e.rulesModel.removeRule(t,s),e.isNewRule=!1):(e.rulesModel.replaceRule(t,s,e.editedRuleCopy),e.editedRuleCopy=void 0),e.rulesModel.setPrefixWarningFlag(t,s),e.editedRuleIndex=void 0,e.editedRuleScope=void 0,f(t)},e.moveUp=(t,s)=>{e.rulesModel.moveUp(t,s),f(t),e.modelIsDirty?e.selectedRule=s-1:e.selectedRule=void 0},e.moveDown=(t,s)=>{e.rulesModel.moveDown(t,s),f(t),e.modelIsDirty?e.selectedRule=s+1:e.selectedRule=void 0},e.saveAcl=()=>{e.loading=!0,_().then(g).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.updating_rules"))}).finally(()=>{e.loading=!1})},e.cancelAclSave=()=>{u.openConfirmation(c.instant("common.confirm"),c.instant("acl_management.rulestable.messages.revert_acl_list"),()=>{R(),s.success(c.instant("acl_management.rulestable.messages.rules_reverted"))})},e.switchTab=(t,s)=>{void 0===e.editedRuleIndex?(e.selectedRule=void 0,e.activeTabScope=s,e.ruleKeys=e.rulesModel.getRuleKeysByScope(e.activeTabScope)):t.preventDefault()},e.setDirty=function(e){f(e)},e.showPrefixWarningIcon=function(t){e.hasCustomPrefix=t},e.performSearchActionOnEnter=function(t,s,r){13===t.keyCode&&(t.stopPropagation(),t.preventDefault(),e.triggerValidation(r),r.$valid&&e.saveRule(s))},e.triggerValidation=function(e){angular.forEach(e,function(e){"object"==typeof e&&e.hasOwnProperty("$modelValue")&&e.$setTouched()})};const g=()=>{const t=v();return i.getAcl(t).then(t=>{e.rulesModel=(0,r.mapAclRulesResponse)(t),e.rulesModelCopy=(0,r.mapAclRulesResponse)(t),m()}).catch(e=>{const t=getError(e);s.error(t,c.instant("acl_management.errors.loading_rules"))})},_=()=>{const t=v();return i.updateAcl(t,e.rulesModel.toJSON()).then(()=>{s.success(c.instant("acl_management.rulestable.messages.rules_updated"))})},R=()=>{v()&&(e.loading=!0,g().finally(()=>{e.loading=!1}))},m=()=>{e.selectedRule=void 0,e.editedRuleIndex=void 0,e.editedRuleScope=void 0,e.modelIsDirty=!1,e.editedRuleCopy=void 0,e.dirtyScope.clear()},f=t=>{(0,o.isEqual)(e.rulesModel.getRulesByScope(t),e.rulesModelCopy.getRulesByScope(t))?e.dirtyScope.delete(t):e.dirtyScope.add(t),e.modelIsDirty=e.dirtyScope.size>0},v=()=>n.getActiveRepository(),S=()=>{s.error(c.instant("acl_management.errors.duplicated_rules"))},A=t=>{e.modelIsDirty&&(t.returnValue=!0)},y=()=>{window.removeEventListener("beforeunload",A),h.forEach(e=>e())};n.getActiveRepository()&&d.getNamespaces(n.getActiveRepository()).then(l.mapNamespacesResponse).then(t=>{e.namespaces=t}).catch(e=>{const t=getError(e);s.error(t,c.instant("error.getting.namespaces.for.repo"))}),h.push(p.onAutocompleteEnabledUpdated(t=>{e.isAutocompleteEnabled=t})),h.push(e.$watch(v,()=>{m(),R()})),h.push(e.$on("$locationChangeStart",(s,r)=>{e.modelIsDirty&&(s.preventDefault(),u.openSimpleModal({title:c.instant("common.confirm"),message:c.instant("acl_management.rulestable.messages.unsaved_changes_confirmation"),warning:!0}).result.then(function(){y();const e=t.absUrl().length-t.url().length,s=r.substring(e);t.path(s)},function(){}))})),h.push(e.$on("$destroy",y)),window.addEventListener("beforeunload",A)}angular.module("graphdb.framework.aclmanagement.controllers",["graphdb.framework.rest.plugins.service","graphdb.framework.rest.aclmanagement.service","graphdb.core.services.workbench-context"]).controller("AclManagementCtrl",i),i.$inject=["$scope","$location","toastr","AclManagementRestService","$repositories","$translate","ModalService","RDF4JRepositoriesRestService","WorkbenchContextService"]},47874:()=>{angular.module("graphdb.framework.rest.aclmanagement.service",[]).factory("AclManagementRestService",t),t.$inject=["$http"];const e="rest/repositories";function t(t){return{getAcl:function(s){return t.get(`${e}/${s}/acl`)},updateAcl:function(s,r){return t.put(`${e}/${s}/acl`,r)}}}},64358:(e,t,s)=>{s.r(t),s.d(t,{mapAclRulesResponse:()=>o});var r=s(87384);const o=e=>{const t=new r.ACListModel;return e&&e.data&&e.data.forEach(e=>{t.appendNewRule(e.scope,e.policy,e.role,e.operation,e.subject,e.predicate,e.object,e.context,e.plugin)}),t}},84896:()=>{angular.module("graphdb.framework.aclmanagement.directives",[]).directive("customRoleHandler",function(){return{restrict:"A",require:"ngModel",link:function(e,t,s,r){const o="CUSTOM_",l="!CUSTOM_",a=[];function i(e,t){if(!e||"*"===e)return e;const s=e.startsWith("!"),r=s?l:o;return t?r+e.replace(/^!/,""):s?"!"+e.replace(r,""):e.replace(r,"")}r.$parsers.push(function(e){var t;return r.$warning=!!(e&&(t=e,t.toUpperCase().startsWith(o)||t.toUpperCase().startsWith(l))),e}),r.$formatters.push(function(e){return i(e,!1)}),r.$parsers.push(function(e){return i(e,!0)}),r.$validators.customRoleValidator=function(e){if(!e)return!0;const t=e.replace(/^(!CUSTOM_|CUSTOM_)/,"");return"*"===t||t.length>=2},a.push(e.$on("$destroy",()=>{a.forEach(e=>e())}))}}})},86294:(e,t,s)=>{s.r(t),s(82493),s(5687),s(60116),s(46591),s(34684),s(76933),s(84896),angular.module("graphdb.framework.aclmanagement",["ui.bootstrap","toastr","ngCookies","ngRoute","graphdb.framework.aclmanagement.directives","graphdb.framework.aclmanagement.controllers","graphdb.framework.core.services.repositories","graphdb.framework.core.directives","graphdb.framework.core.controllers"])},87384:(e,t,s)=>{s.r(t),s.d(t,{ACL_OPERATION:()=>p,ACL_POLICY:()=>d,ACL_SCOPE:()=>h,ACListModel:()=>o,ACRuleModel:()=>l,ClearGraphACRuleModel:()=>n,DEFAULT_CLEAR_GRAPH_CONTEXT_VALUES:()=>_,DEFAULT_CONTEXT_VALUES:()=>g,DEFAULT_URI_VALUES:()=>R,PluginACRuleModel:()=>i,StatementACRuleModel:()=>a,SystemACRuleModel:()=>c});var r=s(98980);class o{constructor(e=[]){this._aclRules=new Map,e.forEach(e=>{const t=e.scope;this._aclRules.has(t)||this._aclRules.set(t,[]),this._aclRules.get(t).push(e)})}size(e){return this._aclRules.get(e)&&this._aclRules.get(e).length}appendNewRule(e,t,s,r,o,l,a,i,n){const c=u.createRule(e,t,s,r,o,l,a,i,n);this._aclRules.has(e)||this._aclRules.set(e,[]),c.checkCustomOrNegatedPrefix(),this._aclRules.get(e).push(c)}addRule(e,t){const s=this._aclRules.get(e);s?s.splice(t,0,u.createRule(e)):this._aclRules.set(e,[u.createRule(e)])}removeRule(e,t){const s=this._aclRules.get(e);s&&s.splice(t,1)}replaceRule(e,t,s){const r=this._aclRules.get(e);r&&r.splice(t,1,s)}getRule(e,t){const s=this._aclRules.get(e);return s?s[t]:null}isRuleDuplicated(e,t){const s=this.getRule(e,t);return!!s&&this._aclRules.get(e).some((e,o)=>o!==t&&(0,r.isEqual)(s,e))}setPrefixWarningFlag(e,t){const s=this.getRule(e,t);s&&s.checkCustomOrNegatedPrefix()}getRuleCopy(e,t){const s=this.getRule(e,t);return u.createRule(s.scope,s.policy,s.role,s.operation,s.subject,s.predicate,s.object,s.context,s.plugin)}moveUp(e,t){const s=this._aclRules.get(e),r=s[t-1];s[t-1]=s[t],s[t]=r}moveDown(e,t){const s=this._aclRules.get(e),r=s[t+1];s[t+1]=s[t],s[t]=r}toJSON(){const e=[];return this._aclRules.forEach(t=>{t.forEach(t=>e.push(t.toJSON()))}),e}get aclRules(){return this._aclRules}set aclRules(e){this._aclRules=e}getRulesByScope(e){return this._aclRules.get(e)||[]}getRuleKeysByScope(e){return Object.keys(this.getRulesByScope(e)[0]||{})}}class l{constructor(e,t,s=d.ALLOW){this._scope=e,this._role=t,this._policy=s}get scope(){return this._scope}set scope(e){this._scope=e}get roleWithoutCustomPrefix(){return this._role.startsWith("!")?this._role.replace("CUSTOM_"," "):this._role.replace("CUSTOM_","")}get role(){return this._role}set role(e){this._role=e}get policy(){return this._policy}set policy(e){this._policy=e}get warnForPrefix(){return this._warnForPrefix}checkCustomOrNegatedPrefix(){this._warnForPrefix=this.role.startsWith("CUSTOM_CUSTOM_")||this.role.startsWith("!CUSTOM_CUSTOM_")}toJSON(){}}class a extends l{constructor(e,t,s,r,o,l,a){super(h.STATEMENT,e,t),this._subject=s||"*",this._predicate=r||"*",this._object=o||"*",this._context=l||"*",this._operation=a||p.ALL}get subject(){return this._subject}set subject(e){this._subject=e}get predicate(){return this._predicate}set predicate(e){this._predicate=e}get object(){return this._object}set object(e){this._object=e}get context(){return this._context}set context(e){this._context=e}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,subject:this.subject,predicate:this.predicate,object:this.object,context:this.context,warnForPrefix:this.warnForPrefix}}}class i extends l{constructor(e,t,s,r){super(h.PLUGIN,e,t),this._plugin=s||"*",this._operation=r||p.ALL}get plugin(){return this._plugin}set plugin(e){this._plugin=e}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,plugin:this.plugin,warnForPrefix:this.warnForPrefix}}}class n extends l{constructor(e,t,s,r){super(h.CLEAR_GRAPH,e,t),this._context=s||"*",this._defaultResults=r||["*","default","custom"]}get context(){return this._context}set context(e){this._context=e}get defaultResults(){return this._defaultResults}set defaultResults(e){this._defaultResults=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,context:this.context,warnForPrefix:this.warnForPrefix}}}class c extends l{constructor(e,t,s){super(h.SYSTEM,e,t),this._operation=s||p.ALL}get operation(){return this._operation}set operation(e){this._operation=e}toJSON(){return{scope:this.scope,policy:this.policy,role:this.role,operation:this.operation,warnForPrefix:this.warnForPrefix}}}class u{static createRule(e,t,s,r,o,l,u,d,p){switch(e){case h.STATEMENT:return new a(s,t,o,l,u,d,r);case h.PLUGIN:return new i(s,t,p,r);case h.CLEAR_GRAPH:return new n(s,t,d);case h.SYSTEM:return new c(s,t,r);default:throw new Error("Invalid scope: "+e+" provided")}}}const d={ALLOW:"allow",DENY:"deny"},p={READ:"read",WRITE:"write",ALL:"*"},h={STATEMENT:"statement",CLEAR_GRAPH:"clear_graph",PLUGIN:"plugin",SYSTEM:"system"},g=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"},{type:"default",value:"default",description:"acl_management.defaults.default"},{type:"default",value:"named",description:"acl_management.defaults.named"}],_=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"},{type:"default",value:"all",description:"acl_management.defaults.all"},{type:"default",value:"default",description:"acl_management.defaults.default"},{type:"default",value:"named",description:"acl_management.defaults.named"}],R=[{type:"default",value:"*",description:"acl_management.defaults.asterisk"}]}}; //# sourceMappingURL=86294.87364a55523b53de169b.bundle.js.map