keycloak-memoizeit
Changes
themes/src/main/resources/theme/base/admin/resources/partials/authz/permission/resource-server-permission-list.html 7(+5 -2)
themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/resource-server-policy-list.html 7(+5 -2)
themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-detail.html 23(+0 -23)
themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-export-settings.html 57(+3 -54)
themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-resource-list.html 7(+5 -2)
Details
diff --git a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js
index ecb008d..7c5e7fa 100644
--- a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-app.js
@@ -59,6 +59,23 @@ module.config(['$routeProvider', function ($routeProvider) {
}
},
controller: 'ResourceServerDetailCtrl'
+ }).when('/realms/:realm/clients/:client/authz/resource-server/export-settings', {
+ templateUrl: resourceUrl + '/partials/authz/resource-server-export-settings.html',
+ resolve: {
+ realm: function (RealmLoader) {
+ return RealmLoader();
+ },
+ client : function(ClientLoader) {
+ return ClientLoader();
+ },
+ clients: function (ClientListLoader) {
+ return ClientListLoader();
+ },
+ serverInfo: function (ServerInfoLoader) {
+ return ServerInfoLoader();
+ }
+ },
+ controller: 'ResourceServerDetailCtrl'
}).when('/realms/:realm/clients/:client/authz/resource-server/evaluate', {
templateUrl: resourceUrl + '/partials/authz/policy/resource-server-policy-evaluate.html',
resolve: {
diff --git a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js
index 5d8d462..e58a1b7 100644
--- a/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/authz/authz-controller.js
@@ -79,7 +79,72 @@ module.controller('ResourceServerDetailCtrl', function($scope, $http, $route, $l
});
});
-module.controller('ResourceServerResourceCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerResource, client) {
+var Resources = {
+ delete: function(ResourceServerResource, realm, client, $scope, AuthzDialog, $location, Notifications, $route) {
+ ResourceServerResource.permissions({
+ realm : realm,
+ client : client.id,
+ rsrid : $scope.resource._id
+ }, function (permissions) {
+ var msg = "";
+
+ if (permissions.length > 0 && !$scope.deleteConsent) {
+ msg = "<p>This resource is referenced in some permissions:</p>";
+ msg += "<ul>";
+ for (i = 0; i < permissions.length; i++) {
+ msg+= "<li><strong>" + permissions[i].name + "</strong></li>";
+ }
+ msg += "</ul>";
+ msg += "<p>If you remove this resource, the permissions above will be affected and will not be associated with this resource anymore.</p>";
+ }
+
+ AuthzDialog.confirmDeleteWithMsg($scope.resource.name, "Resource", msg, function() {
+ ResourceServerResource.delete({realm : realm, client : $scope.client.id, rsrid : $scope.resource._id}, null, function() {
+ $location.url("/realms/" + realm + "/clients/" + $scope.client.id + "/authz/resource-server/resource");
+ $route.reload();
+ Notifications.success("The resource has been deleted.");
+ });
+ });
+ });
+ }
+}
+
+var Policies = {
+ delete: function(service, realm, client, $scope, AuthzDialog, $location, Notifications, $route, isPermission) {
+ var msg = "";
+
+ service.dependentPolicies({
+ realm : realm,
+ client : client.id,
+ id : $scope.policy.id
+ }, function (dependentPolicies) {
+ if (dependentPolicies.length > 0 && !$scope.deleteConsent) {
+ msg = "<p>This policy is being used by other policies:</p>";
+ msg += "<ul>";
+ for (i = 0; i < dependentPolicies.length; i++) {
+ msg+= "<li><strong>" + dependentPolicies[i].name + "</strong></li>";
+ }
+ msg += "</ul>";
+ msg += "<p>If you remove this policy, the policies above will be affected and will not be associated with this policy anymore.</p>";
+ }
+
+ AuthzDialog.confirmDeleteWithMsg($scope.policy.name, isPermission ? "Permission" : "Policy", msg, function() {
+ service.delete({realm : realm, client : $scope.client.id, id : $scope.policy.id}, null, function() {
+ if (isPermission) {
+ $location.url("/realms/" + realm + "/clients/" + $scope.client.id + "/authz/resource-server/permission");
+ Notifications.success("The permission has been deleted.");
+ } else {
+ $location.url("/realms/" + realm + "/clients/" + $scope.client.id + "/authz/resource-server/policy");
+ Notifications.success("The policy has been deleted.");
+ }
+ $route.reload();
+ });
+ });
+ });
+ }
+}
+
+module.controller('ResourceServerResourceCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerResource, client, AuthzDialog, Notifications) {
$scope.realm = realm;
$scope.client = client;
@@ -171,6 +236,11 @@ module.controller('ResourceServerResourceCtrl', function($scope, $http, $route,
}
}
};
+
+ $scope.delete = function(resource) {
+ $scope.resource = resource;
+ Resources.delete(ResourceServerResource, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route);
+ };
});
module.controller('ResourceServerResourceDetailCtrl', function($scope, $http, $route, $location, realm, ResourceServer, client, ResourceServerResource, ResourceServerScope, AuthzDialog, Notifications) {
@@ -282,30 +352,7 @@ module.controller('ResourceServerResourceDetailCtrl', function($scope, $http, $r
}
$scope.remove = function() {
- ResourceServerResource.permissions({
- realm : $route.current.params.realm,
- client : client.id,
- rsrid : $scope.resource._id
- }, function (permissions) {
- var msg = "";
-
- if (permissions.length > 0 && !$scope.deleteConsent) {
- msg = "<p>This resource is referenced in some policies:</p>";
- msg += "<ul>";
- for (i = 0; i < permissions.length; i++) {
- msg+= "<li><strong>" + permissions[i].name + "</strong></li>";
- }
- msg += "</ul>";
- msg += "<p>If you remove this resource, the policies above will be affected and will not be associated with this resource anymore.</p>";
- }
-
- AuthzDialog.confirmDeleteWithMsg($scope.resource.name, "Resource", msg, function() {
- ResourceServerResource.delete({realm : realm.realm, client : $scope.client.id, rsrid : $scope.resource._id}, null, function() {
- $location.url("/realms/" + realm.realm + "/clients/" + $scope.client.id + "/authz/resource-server/resource");
- Notifications.success("The resource has been deleted.");
- });
- });
- });
+ Resources.delete(ResourceServerResource, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route);
}
$scope.reset = function() {
@@ -335,7 +382,37 @@ module.controller('ResourceServerResourceDetailCtrl', function($scope, $http, $r
}
});
-module.controller('ResourceServerScopeCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerScope, client) {
+var Scopes = {
+ delete: function(ResourceServerScope, realm, client, $scope, AuthzDialog, $location, Notifications, $route) {
+ ResourceServerScope.permissions({
+ realm : realm,
+ client : client.id,
+ id : $scope.scope.id
+ }, function (permissions) {
+ var msg = "";
+
+ if (permissions.length > 0 && !$scope.deleteConsent) {
+ msg = "<p>This scope is referenced in some permissions:</p>";
+ msg += "<ul>";
+ for (i = 0; i < permissions.length; i++) {
+ msg+= "<li><strong>" + permissions[i].name + "</strong></li>";
+ }
+ msg += "</ul>";
+ msg += "<p>If you remove this scope, the permissions above will be affected and will not be associated with this scope anymore.</p>";
+ }
+
+ AuthzDialog.confirmDeleteWithMsg($scope.scope.name, "Scope", msg, function() {
+ ResourceServerScope.delete({realm : realm, client : $scope.client.id, id : $scope.scope.id}, null, function() {
+ $location.url("/realms/" + realm + "/clients/" + $scope.client.id + "/authz/resource-server/scope");
+ $route.reload();
+ Notifications.success("The scope has been deleted.");
+ });
+ });
+ });
+ }
+}
+
+module.controller('ResourceServerScopeCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerScope,client, AuthzDialog, Notifications) {
$scope.realm = realm;
$scope.client = client;
@@ -427,6 +504,11 @@ module.controller('ResourceServerScopeCtrl', function($scope, $http, $route, $lo
}
}
};
+
+ $scope.delete = function(scope) {
+ $scope.scope = scope;
+ Scopes.delete(ResourceServerScope, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route);
+ };
});
module.controller('ResourceServerScopeDetailCtrl', function($scope, $http, $route, $location, realm, ResourceServer, client, ResourceServerScope, AuthzDialog, Notifications) {
@@ -496,30 +578,7 @@ module.controller('ResourceServerScopeDetailCtrl', function($scope, $http, $rout
}
$scope.remove = function() {
- ResourceServerScope.permissions({
- realm : $route.current.params.realm,
- client : client.id,
- id : $scope.scope.id
- }, function (permissions) {
- var msg = "";
-
- if (permissions.length > 0 && !$scope.deleteConsent) {
- msg = "<p>This scope is referenced in some policies:</p>";
- msg += "<ul>";
- for (i = 0; i < permissions.length; i++) {
- msg+= "<li><strong>" + permissions[i].name + "</strong></li>";
- }
- msg += "</ul>";
- msg += "<p>If you remove this scope, the policies above will be affected and will not be associated with this scope anymore.</p>";
- }
-
- AuthzDialog.confirmDeleteWithMsg($scope.scope.name, "Scope", msg, function() {
- ResourceServerScope.delete({realm : realm.realm, client : $scope.client.id, id : $scope.scope.id}, null, function() {
- $location.url("/realms/" + realm.realm + "/clients/" + client.id + "/authz/resource-server/scope");
- Notifications.success("The scope has been deleted.");
- });
- });
- });
+ Scopes.delete(ResourceServerScope, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route);
}
$scope.reset = function() {
@@ -548,7 +607,7 @@ module.controller('ResourceServerScopeDetailCtrl', function($scope, $http, $rout
}
});
-module.controller('ResourceServerPolicyCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerPolicy, PolicyProvider, client) {
+module.controller('ResourceServerPolicyCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerPolicy, PolicyProvider, client, AuthzDialog, Notifications) {
$scope.realm = realm;
$scope.client = client;
$scope.policyProviders = [];
@@ -644,9 +703,14 @@ module.controller('ResourceServerPolicyCtrl', function($scope, $http, $route, $l
}
}
};
+
+ $scope.delete = function(policy) {
+ $scope.policy = policy;
+ Policies.delete(ResourceServerPolicy, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route, false);
+ };
});
-module.controller('ResourceServerPermissionCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerPermission, PolicyProvider, client) {
+module.controller('ResourceServerPermissionCtrl', function($scope, $http, $route, $location, realm, ResourceServer, ResourceServerPermission, PolicyProvider, client, AuthzDialog, Notifications) {
$scope.realm = realm;
$scope.client = client;
$scope.policyProviders = [];
@@ -741,6 +805,11 @@ module.controller('ResourceServerPermissionCtrl', function($scope, $http, $route
}
}
};
+
+ $scope.delete = function(policy) {
+ $scope.policy = policy;
+ Policies.delete(ResourceServerPermission, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route, true);
+ };
});
module.controller('ResourceServerPolicyDroolsDetailCtrl', function($scope, $http, $route, realm, client, PolicyController) {
@@ -1979,35 +2048,7 @@ module.service("PolicyController", function($http, $route, $location, ResourceSe
});
$scope.remove = function() {
- var msg = "";
-
- service.dependentPolicies({
- realm : $route.current.params.realm,
- client : client.id,
- id : $scope.policy.id
- }, function (dependentPolicies) {
- if (dependentPolicies.length > 0 && !$scope.deleteConsent) {
- msg = "<p>This policy is being used by other policies:</p>";
- msg += "<ul>";
- for (i = 0; i < dependentPolicies.length; i++) {
- msg+= "<li><strong>" + dependentPolicies[i].name + "</strong></li>";
- }
- msg += "</ul>";
- msg += "<p>If you remove this policy, the policies above will be affected and will not be associated with this policy anymore.</p>";
- }
-
- AuthzDialog.confirmDeleteWithMsg($scope.policy.name, "Policy", msg, function() {
- service.delete({realm : $scope.realm.realm, client : $scope.client.id, id : $scope.policy.id}, null, function() {
- if (delegate.isPermission()) {
- $location.url("/realms/" + realm.realm + "/clients/" + client.id + "/authz/resource-server/permission");
- Notifications.success("The permission has been deleted.");
- } else {
- $location.url("/realms/" + realm.realm + "/clients/" + client.id + "/authz/resource-server/policy");
- Notifications.success("The policy has been deleted.");
- }
- });
- });
- });
+ Policies.delete(ResourceServerPolicy, $route.current.params.realm, client, $scope, AuthzDialog, $location, Notifications, $route, delegate.isPermission());
}
}
});
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/permission/resource-server-permission-list.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/permission/resource-server-permission-list.html
index 2101643..7480ae8 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/permission/resource-server-permission-list.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/permission/resource-server-permission-list.html
@@ -67,7 +67,7 @@
</thead>
<tfoot data-ng-show="policies && (policies.length >= query.max || query.first > 0)">
<tr>
- <td colspan="7">
+ <td colspan="8">
<div class="table-nav">
<button data-ng-click="firstPage()" class="first" ng-disabled="query.first == 0">{{:: 'first-page' | translate}}</button>
<button data-ng-click="previousPage()" class="prev" ng-disabled="query.first == 0">{{:: 'previous-page' | translate}}</button>
@@ -87,9 +87,12 @@
<td ng-if="policy.details.loaded" class="kc-action-cell" data-ng-click="showDetails(policy);">
{{:: 'authz-hide-details' | translate}}
</td>
+ <td class="kc-action-cell" ng-click="delete(policy);">
+ {{:: 'delete' | translate}}
+ </td>
</tr>
<tr ng-if="policy.details && policy.details.loaded" ng-repeat-end="">
- <td colspan="4">
+ <td colspan="5">
<div id="details">
<table class="table kc-authz-table-expanded table-striped">
<thead>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/resource-server-policy-list.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/resource-server-policy-list.html
index f4e0e89..be4c86d 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/resource-server-policy-list.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/policy/resource-server-policy-list.html
@@ -68,7 +68,7 @@
</thead>
<tfoot data-ng-show="policies && (policies.length >= query.max || query.first > 0)">
<tr>
- <td colspan="7">
+ <td colspan="8">
<div class="table-nav">
<button data-ng-click="firstPage()" class="first" ng-disabled="query.first == 0">{{:: 'first-page' | translate}}</button>
<button data-ng-click="previousPage()" class="prev" ng-disabled="query.first == 0">{{:: 'previous-page' | translate}}</button>
@@ -88,9 +88,12 @@
<td ng-if="policy.details.loaded" class="kc-action-cell" data-ng-click="showDetails(policy);">
{{:: 'authz-hide-details' | translate}}
</td>
+ <td class="kc-action-cell" ng-click="delete(policy);">
+ {{:: 'delete' | translate}}
+ </td>
</tr>
<tr ng-if="policy.details && policy.details.loaded" ng-repeat-end="">
- <td colspan="4">
+ <td colspan="5">
<div id="details">
<table class="table kc-authz-table-expanded table-striped">
<thead>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-detail.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-detail.html
index 3c28f6b..092280f 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-detail.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-detail.html
@@ -57,29 +57,6 @@
</div>
</div>
</fieldset>
-
- <fieldset class="border-top" data-ng-show="server.id">
- <legend><span class="text">{{:: 'authz-export-settings' | translate}}</span>
- <kc-tooltip>{{:: 'authz-export-settings.tooltip' | translate}}</kc-tooltip>
- </legend>
- <div class="form-group">
- <label class="col-md-2 control-label" for="server.allowRemoteResourceManagement">{{:: 'authz-export-settings' | translate}}</label>
- <div class="col-md-6">
- <button data-ng-click="export()" class="btn btn-primary" data-ng-hide="settings">{{:: 'export' | translate}}</button>
- <button data-ng-click="downloadSettings()" class="btn btn-primary" data-ng-show="settings">{{:: 'download' | translate}}</button>
- <button data-ng-click="cancelExport()" class="btn btn-primary" data-ng-show="settings">{{:: 'cancel' | translate}}</button>
- </div>
- <kc-tooltip>{{:: 'authz-export-settings.tooltip' | translate}}</kc-tooltip>
- </div>
- <fieldset class="margin-top">
- <div class="form-group" ng-show="settings">
- <div class="col-sm-12">
- <a class="btn btn-primary btn-lg" data-ng-click="download()" type="submit" ng-show="installation">{{:: 'download' | translate}}</a>
- <textarea class="form-control" rows="20" kc-select-action="click">{{settings}}</textarea>
- </div>
- </div>
- </fieldset>
- </fieldset>
</form>
</div>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-export-settings.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-export-settings.html
index 3c28f6b..86505db 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-export-settings.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-export-settings.html
@@ -4,66 +4,15 @@
<li><a href="#/realms/{{realm.realm}}/clients">{{:: 'clients' | translate}}</a></li>
<li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}">{{client.clientId}}</a></li>
<li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server">{{:: 'authz-authorization' | translate}}</a></li>
- <li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server">{{:: 'settings' | translate}}</a></li>
+ <li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server">{{:: 'export-settings' | translate}}</a></li>
</ol>
<kc-tabs-resource-server></kc-tabs-resource-server>
- <form class="form-horizontal" name="clientForm" novalidate>
+ <form class="form-horizontal" name="exportForm" novalidate>
<fieldset>
<div class="form-group">
- <label for="import-file" class="col-sm-2 control-label">{{:: 'import' | translate}}</label>
- <div class="col-md-6">
- <div class="controls kc-button-input-file" data-ng-show="!importing">
- <label for="import-file" class="btn btn-default">{{:: 'select-file' | translate}} <i class="pficon pficon-import"></i></label>
- <input id="import-file" type="file" class="hidden" kc-on-read-file="onFileSelect($fileContent)">
- </div>
- <div class="col-md-6" data-ng-show="importing">
- <input type="button" class="btn btn-default" data-ng-click="viewImportDetails()" value="{{:: 'view-details' | translate}}"/>
- </div>
- </div>
- <kc-tooltip>{{:: 'authz-import-config.tooltip' | translate}}</kc-tooltip>
- </div>
- <div class="form-group">
- <div class="col-md-10 col-md-offset-2" data-ng-show="importing">
- <button class="btn btn-default" data-ng-click="import()" data-ng-disabled="!changed">Import</button>
- <button kc-cancel data-ng-click="reset()">Cancel</button>
- </div>
- </div>
- </fieldset>
- <fieldset class="border-top" data-ng-hide="importing">
- <div class="form-group">
- <label class="col-md-2 control-label" for="server.policyEnforcementMode">{{:: 'authz-policy-enforcement-mode' | translate}}</label>
- <div class="col-md-2">
- <select class="form-control" id="server.policyEnforcementMode" data-ng-model="server.policyEnforcementMode">
- <option value="ENFORCING">{{:: 'authz-policy-enforcement-mode-enforcing' | translate}}</option>
- <option value="PERMISSIVE">{{:: 'authz-policy-enforcement-mode-permissive' | translate}}</option>
- <option value="DISABLED">{{:: 'authz-policy-enforcement-mode-disabled' | translate}}</option>
- </select>
- </div>
- <kc-tooltip>{{:: 'authz-policy-enforcement-mode.tooltip' | translate}}</kc-tooltip>
- </div>
- <div class="form-group">
- <label class="col-md-2 control-label" for="server.allowRemoteResourceManagement">{{:: 'authz-remote-resource-management' | translate}}</label>
- <div class="col-md-6">
- <input ng-model="server.allowRemoteResourceManagement" id="server.allowRemoteResourceManagement" onoffswitch />
- </div>
- <kc-tooltip>{{:: 'authz-remote-resource-management.tooltip' | translate}}</kc-tooltip>
- </div>
- <div class="form-group" data-ng-show="access.manageAuthorization">
- <div class="col-md-10 col-md-offset-2">
- <button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button>
- <button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button>
- </div>
- </div>
- </fieldset>
-
- <fieldset class="border-top" data-ng-show="server.id">
- <legend><span class="text">{{:: 'authz-export-settings' | translate}}</span>
- <kc-tooltip>{{:: 'authz-export-settings.tooltip' | translate}}</kc-tooltip>
- </legend>
- <div class="form-group">
- <label class="col-md-2 control-label" for="server.allowRemoteResourceManagement">{{:: 'authz-export-settings' | translate}}</label>
+ <label class="col-md-2 control-label">{{:: 'authz-export-settings' | translate}}</label>
<div class="col-md-6">
<button data-ng-click="export()" class="btn btn-primary" data-ng-hide="settings">{{:: 'export' | translate}}</button>
<button data-ng-click="downloadSettings()" class="btn btn-primary" data-ng-show="settings">{{:: 'download' | translate}}</button>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-resource-list.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-resource-list.html
index 3080ce1..924edbc 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-resource-list.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-resource-list.html
@@ -64,7 +64,7 @@
<th>{{:: 'type' | translate}}</th>
<th>{{:: 'authz-uri' | translate}}</th>
<th>{{:: 'authz-owner' | translate}}</th>
- <th colspan="2">{{:: 'actions' | translate}}</th>
+ <th colspan="3">{{:: 'actions' | translate}}</th>
</tr>
</thead>
<tfoot data-ng-show="resources && (resources.length >= query.max || query.first > 0)">
@@ -99,9 +99,12 @@
<td class="kc-action-cell" ng-click="createPolicy(resource);">
{{:: 'authz-create-permission' | translate}}
</td>
+ <td class="kc-action-cell" ng-click="delete(resource);">
+ {{:: 'delete' | translate}}
+ </td>
</tr>
<tr ng-if="resource.details && resource.details.loaded" ng-repeat-end="">
- <td colspan="6">
+ <td colspan="7">
<div id="details">
<table class="table kc-authz-table-expanded table-striped">
<thead>
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-scope-list.html b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-scope-list.html
index 8153935..519c9f5 100644
--- a/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-scope-list.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/authz/resource-server-scope-list.html
@@ -36,7 +36,7 @@
</tr>
<tr data-ng-hide="scopes.length == 0">
<th>{{:: 'name' | translate}}</th>
- <th colspan="2">{{:: 'actions' | translate}}</th>
+ <th colspan="3">{{:: 'actions' | translate}}</th>
</tr>
</thead>
<tfoot data-ng-show="scopes && (scopes.length >= query.max || query.first > 0)">
@@ -52,7 +52,7 @@
</tfoot>
<tbody>
<tr ng-repeat-start="scope in scopes | filter:search | orderBy:'name'">
- <td><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/scope/{{scope.id}}">{{scope.name}}</a></td>
+ <td width="70%"><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/scope/{{scope.id}}">{{scope.name}}</a></td>
<td ng-if="!scope.details.loaded" class="kc-action-cell" data-ng-click="showDetails(scope);">
{{:: 'authz-show-details' | translate}}
</td>
@@ -62,9 +62,12 @@
<td class="kc-action-cell" ng-click="createPolicy(scope);">
{{:: 'authz-create-permission' | translate}}
</td>
+ <td class="kc-action-cell" ng-click="delete(scope);">
+ {{:: 'delete' | translate}}
+ </td>
</tr>
<tr ng-if="scope.details && scope.details.loaded" ng-repeat-end="">
- <td colspan="3">
+ <td colspan="4">
<div id="details">
<table class="table kc-authz-table-expanded table-striped">
<thead>
diff --git a/themes/src/main/resources/theme/base/admin/resources/templates/authz/kc-tabs-resource-server.html b/themes/src/main/resources/theme/base/admin/resources/templates/authz/kc-tabs-resource-server.html
index 0491364..bd20270 100755
--- a/themes/src/main/resources/theme/base/admin/resources/templates/authz/kc-tabs-resource-server.html
+++ b/themes/src/main/resources/theme/base/admin/resources/templates/authz/kc-tabs-resource-server.html
@@ -9,5 +9,6 @@
<li ng-class="{active: path[6] == 'policy'}" data-ng-hide="create"><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/policy">{{:: 'authz-policies' | translate}}</a></li>
<li ng-class="{active: path[6] == 'permission'}" data-ng-hide="create"><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/permission">{{:: 'authz-permissions' | translate}}</a></li>
<li ng-class="{active: path[6] == 'evaluate'}" data-ng-hide="create"><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/evaluate">{{:: 'authz-evaluate' | translate}}</a></li>
+ <li ng-class="{active: path[6] == 'export-settings'}" data-ng-hide="create"><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/authz/resource-server/export-settings">{{:: 'authz-export-settings' | translate}}</a></li>
</ul>
</div>
\ No newline at end of file