File manager - Edit - /usr/local/cpanel/whostmgr/docroot/templates/mod_security/services/ruleService.min.js
Back
define(["angular","cjt/io/api","cjt/io/whm-v1-request","cjt/io/whm-v1","cjt/util/locale","cjt/util/parse","cjt/services/APIService"],(function(angular,API,APIREQUEST,APIDRIVER,LOCALE,PARSE){var NO_MODULE="";var app;try{app=angular.module("App")}catch(e){app=angular.module("App",["cjt2.services.api"])}var NUMBER_OF_DIRECTIVES_PER_BATCH=500;var NUMBER_OF_LINES_PER_BATCH=3*NUMBER_OF_DIRECTIVES_PER_BATCH;var LINE_REGEX=/\n/g;app.factory("ruleService",["$q","APIService",function($q,APIService){function normalizeRule(rule){rule.config_active=PARSE.parsePerlBoolean(rule.config_active);rule.disabled=PARSE.parsePerlBoolean(rule.disabled);rule.staged=PARSE.parsePerlBoolean(rule.staged);rule.vendor_active=PARSE.parsePerlBoolean(rule.vendor_active);return rule}function convertResponseToList(response){var items=[];if(response.status){var data=response.data.chunks;for(var i=0,length=data.length;i<length;i++){items.push(normalizeRule(data[i]))}var meta=response.meta;var totalItems=meta.paginate.total_records||data.length;var totalPages=meta.paginate.total_pages||1;return{items:items,stagedChanges:PARSE.parsePerlBoolean(response.data.staged_changes),totalItems:totalItems,totalPages:totalPages,status:response.status}}else{return{items:[],stagedChanges:false,totalItems:0,totalPages:0,status:response.status}}}var _disableRule=function(deferred,config,id,deploy,payload){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_disable_rule");apiCall.addArgument("config",config);apiCall.addArgument("id",id);this.deferred(apiCall,{context:this,done:function(response){deferred.notify(LOCALE.maketext("You have successfully disabled the rule."));response=response.parsedResponse;if(response.status){if(payload){payload.disabled=true}if(deploy){_deployRules.call(this,deferred,payload)}else{deferred.resolve(payload)}}else{deferred.reject(response.error)}}},deferred);return deferred.promise};var _enableRule=function(deferred,config,id,deploy,payload){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_undisable_rule");apiCall.addArgument("config",config);apiCall.addArgument("id",id);this.deferred(apiCall,{context:this,done:function(response){response=response.parsedResponse;if(response.status){deferred.notify(LOCALE.maketext("You have successfully enabled the rule."));if(payload){payload.disabled=false}if(deploy){_deployRules.call(this,deferred,payload)}else{deferred.resolve(payload)}}else{deferred.reject(response.error)}}},deferred);return deferred.promise};var _deployRules=function(deferred,payload){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_deploy_all_rule_changes");this.deferred(apiCall,{apiSuccess:function(response){deferred.notify(LOCALE.maketext("You have successfully deployed the staged rules to your custom [asis,ModSecurity™] configuration."));deferred.resolve(payload)}},deferred);return deferred.promise};var RulesService=function(){};RulesService.prototype=new APIService;angular.extend(RulesService.prototype,{fetchRulesList:function(vendorList,meta){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_get_rules");if(vendorList&&vendorList.length){apiCall.addArgument("vendor_id",vendorList.join(","))}if((!vendorList||!vendorList.length)&&meta&&meta.advanced&&!angular.isDefined(meta.advanced.includeUserRules)){throw new Error("No vendor selected and user-defined rules were not requested. There is nothing to fetch.")}apiCall.addArgument("exclude_other_directives",1);apiCall.addArgument("exclude_bare_comments",1);if(!angular.isDefined(meta.advanced.includeUserRules)){apiCall.addFilter("vendor_active","eq",1);apiCall.addFilter("config_active","eq",1)}if(meta&&meta.advanced){if(meta.advanced.showStagedDeployed==="staged"){apiCall.addFilter("staged","eq",1)}if(meta.advanced.showStagedDeployed==="deployed"){apiCall.addFilter("staged","eq",0)}if(meta.advanced.showEnabledDisabled==="enabled"){apiCall.addFilter("disabled","eq",0)}if(meta.advanced.showEnabledDisabled==="disabled"){apiCall.addFilter("disabled","eq",1)}if(meta.advanced.includeUserRules){apiCall.addArgument("config","modsec2.user.conf")}}if(meta){if(meta.sortBy&&meta.sortDirection){apiCall.addSorting(meta.sortBy,meta.sortDirection,meta.sortType)}if(meta.pageNumber){apiCall.addPaging(meta.pageNumber,meta.pageSize||10)}if(meta.filterBy&&meta.filterCompare&&meta.filterValue){apiCall.addFilter(meta.filterBy,meta.filterCompare,meta.filterValue)}}var deferred=this.deferred(apiCall,{transformAPISuccess:convertResponseToList});return deferred.promise},fetchRulesById:function(ruleId,vendorId){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_get_rules");apiCall.addArgument("exclude_other_directives",1);apiCall.addArgument("exclude_bare_comments",1);apiCall.addFilter("id","==",ruleId);if(typeof vendorId==="string"){apiCall.addArgument("vendor_id",vendorId)}else{apiCall.addArgument("config","modsec2.user.conf")}var deferred=this.deferred(apiCall,{apiSuccess:function(response,deferred){response=convertResponseToList(response);var length=response.items.length;if(length===1){deferred.resolve(response)}else{deferred.reject({count:length})}},transformAPIFailure:function(response){return{message:response.error}}});return deferred.promise},getCustomConfigText:function(){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_get_config_text");apiCall.addArgument("config","modsec2.user.conf");apiCall.addArgument("pagable",1);apiCall.addPaging(1,NUMBER_OF_DIRECTIVES_PER_BATCH);var that=this;var deferred=this.deferred(apiCall,{context:this,apiSuccess:function(response,deferred){deferred.notify({text:response.data,type:"page",page:1});var meta=response.meta;var totalPages=meta.paginate.total_pages||1;if(totalPages>1){var promise=$q.all({});var pageRequestFactory=function(page){return function(){apiCall.addPaging(page,NUMBER_OF_DIRECTIVES_PER_BATCH);return that.deferred(apiCall,{apiSuccess:function(response){deferred.notify({text:response.data,type:"page",page:page,totalPages:totalPages})},apiFailure:function(response){deferred.notify({type:"error",error:response.error})}},deferred)}};for(var page=2;page<=totalPages;page++){promise=promise.then(pageRequestFactory(page))}promise.finally((function(){deferred.resolve()}))}else{deferred.notify({text:response.data.text,type:"page",page:1,totalPages:1,done:true});deferred.resolve()}},apiFailure:function(response){deferred.notify({type:"error",error:response.error});deferred.reject()}});return deferred.promise},setCustomConfigText:function(text,deploy){var lines=text.split(LINE_REGEX);var lineCount=lines.length;var sections=[];for(var i=0;i<lineCount;i+=NUMBER_OF_LINES_PER_BATCH){sections.push(lines.slice(i,i+NUMBER_OF_LINES_PER_BATCH).join("\n"))}var pages=sections.length;var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_assemble_config_text");apiCall.addArgument("config","modsec2.user.conf");apiCall.addArgument("text",sections[0]);apiCall.addArgument("init",1);if(pages===1){apiCall.addArgument("final",1);if(deploy){apiCall.addArgument("deploy",1)}}var that=this;var deferred=this.deferred(apiCall,{context:this,apiSuccess:function(response,deferred){if(pages>1){apiCall.removeArgument("init");var promise=$q.all({});var pagePostFactory=function(page,done,deploy){return function(){apiCall.addArgument("text",sections[page]);if(done){apiCall.addArgument("final",1);if(deploy){apiCall.addArgument("deploy",1)}}return that.deferred(apiCall,{apiSuccess:function(response){deferred.notify({text:response.data,type:"post",page:page,totalPages:pages})},apiFailure:function(response){deferred.notify({type:"error",error:response.error});deferred.reject()}},deferred)}};for(var page=1;page<pages;page++){var done=page===pages-1;promise=promise.then(pagePostFactory(page,done,deploy))}promise.finally((function(){deferred.resolve()}))}else{deferred.resolve()}},apiFailure:function(response,deferred){if(response.data?PARSE.parsePerlBoolean(response.data.duplicate):false){if(deploy){_deployRules.call(this,deferred)}else{deferred.resolve()}}else{deferred.notify({type:"error",error:response.error});deferred.reject()}}});return deferred.promise},addRule:function(ruleText,enabled,deploy){var deferred=$q.defer();var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_add_rule");apiCall.addArgument("config","modsec2.user.conf");apiCall.addArgument("rule",ruleText);this.deferred(apiCall,{context:this,apiSuccess:function(response){var rule=normalizeRule(response.data.rule);deferred.notify(LOCALE.maketext("You have successfully added the rule to the staged configuration file."));if(!enabled){_disableRule.call(this,deferred,rule.config,rule.id,deploy,rule)}else if(deploy){_deployRules.call(this,deferred,rule)}else{deferred.resolve(rule)}},apiFailure:function(response){var error={message:response.error,duplicate:response.data?PARSE.parsePerlBoolean(response.data.duplicate):false};deferred.reject(error)}},deferred);return deferred.promise},cloneRule:function(id,config){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_clone_rule");apiCall.addArgument("id",id);apiCall.addArgument("config",config);var deferred=this.deferred(apiCall,{transformAPISuccess:function(response){return normalizeRule(response.data.rule)},transformAPIFailure:function(response){return{message:response.error,duplicate:response.data?PARSE.parsePerlBoolean(response.data.duplicate):false}}});return deferred.promise},deleteRule:function(ruleId){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_remove_rule");apiCall.addArgument("config","modsec2.user.conf");apiCall.addArgument("id",ruleId);var deferred=this.deferred(apiCall);return deferred.promise},updateRule:function(configFile,ruleId,ruleText,enabled,enabledChanged,deploy){var deferred=$q.defer();var apiCall=new APIREQUEST.Class;var _toggleAndDeploy=function _toggleAndDeploy(deploy,rule){if(enabledChanged){if(enabled){_enableRule.call(this,deferred,configFile,rule.id,deploy,rule)}else{_disableRule.call(this,deferred,configFile,rule.id,deploy,rule)}}else if(deploy){_deployRules.call(this,deferred,rule)}else{deferred.resolve(rule)}}.bind(this);if(configFile.match(/modsec2.user.conf$/)){apiCall.initialize(NO_MODULE,"modsec_edit_rule");apiCall.addArgument("config",configFile);apiCall.addArgument("id",ruleId);apiCall.addArgument("rule",ruleText);this.deferred(apiCall,{context:this,apiSuccess:function(response){var rule=normalizeRule(response.data.rule);deferred.notify(LOCALE.maketext("You have successfully updated the rule in the staged configuration file."));_toggleAndDeploy(deploy,rule)},apiFailure:function(response){var error={message:response.error,duplicate:response.data?PARSE.parsePerlBoolean(response.data.duplicate):false};deferred.reject(error)}},deferred)}else{_toggleAndDeploy(deploy,{id:ruleId,config:configFile,rule:ruleText})}return deferred.promise},disableRule:function(config,id,deploy){var deferred=$q.defer();return _disableRule.call(this,deferred,config,id,deploy)},enableRule:function(config,id,deploy){var deferred=$q.defer();return _enableRule.call(this,deferred,config,id,deploy)},deployQueuedRules:function(){var deferred=$q.defer();return _deployRules.call(this,deferred)},discardQueuedRules:function(){var apiCall=new APIREQUEST.Class;apiCall.initialize(NO_MODULE,"modsec_discard_all_rule_changes");var deferred=this.deferred(apiCall);return deferred.promise},prepareList:function(response){response=APIDRIVER.parse_response(response).parsedResponse;return convertResponseToList(response)}});return new RulesService}])}));
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings