267 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
 | 
						|
 | 
						|
    <ol class="breadcrumb">
 | 
						|
        <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/evaluate">{{:: 'authz-policy-evaluation' | translate}}</a></li>
 | 
						|
    </ol>
 | 
						|
 | 
						|
    <kc-tabs-resource-server></kc-tabs-resource-server>
 | 
						|
 | 
						|
    <div data-ng-show="showResult">
 | 
						|
        <br>
 | 
						|
        <a href="" data-ng-click="showRequestTab()">{{:: 'back' | translate}}</a>
 | 
						|
        |
 | 
						|
        <a href="" data-ng-click="reevaluate()">{{:: 'authz-evaluation-re-evaluate' | translate}}</a>
 | 
						|
        |
 | 
						|
        <a href="" data-ng-click="showAuthzData()">{{:: 'authz-show-authorization-data' | translate}}</a>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div data-ng-show="evaluationResult && !showResult">
 | 
						|
        <br>
 | 
						|
        <a href="" data-ng-click="showResultTab()">{{:: 'authz-evaluation-previous' | translate}}</a>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div data-ng-show="showRpt">
 | 
						|
        <div class="form-group">
 | 
						|
            <label class="col-sm-1 control-label" for="rpt">{{:: 'authz-evaluation-authorization-data' | translate}}</label>
 | 
						|
            <div class="col-md-6">
 | 
						|
                <textarea id="rpt" class="form-control" rows="20">{{evaluationResult.rpt | json}}</textarea>
 | 
						|
            </div>
 | 
						|
            <kc-tooltip>{{:: 'authz-evaluation-authorization-data.tooltip' | translate}}</kc-tooltip>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div data-ng-hide="showResult">
 | 
						|
        <form class="form-horizontal" name="clientForm" novalidate>
 | 
						|
            <fieldset>
 | 
						|
                <fieldset class="border-top">
 | 
						|
                    <legend><span class="text">{{:: 'authz-evaluation-identity-information' | translate}}</span>
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-identity-information.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </legend>
 | 
						|
                    <div class="form-group">
 | 
						|
                        <label class="col-md-2 control-label" for="client">{{:: 'client' | translate}}</label>
 | 
						|
 | 
						|
                        <div class="col-sm-2">
 | 
						|
                            <div>
 | 
						|
                                <select class="form-control" id="client"
 | 
						|
                                        ng-model="authzRequest.clientId"
 | 
						|
                                        ng-options="client.id as client.clientId for client in clients track by client.id">
 | 
						|
                                    <option value="">{{:: 'authz-select-client' | translate}}...</option>
 | 
						|
                                </select>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-client.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix">
 | 
						|
                        <label class="col-md-2 control-label" for="users">{{:: 'user' | translate}} <span class="required"
 | 
						|
                                                                                     data-ng-show="!authzRequest.roleIds || authzRequest.roleIds.length == 0">*</span></label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <input type="hidden" ui-select2="usersUiSelect" id="users" data-ng-model="selectedUser" data-ng-change="selectUser(selectedUser);" data-placeholder="{{:: 'authz-select-user' | translate}}..."
 | 
						|
                                   data-ng-required="!authzRequest.roleIds || authzRequest.roleIds.length == 0">
 | 
						|
                            </input>
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-user.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
 | 
						|
                    <div class="form-group clearfix">
 | 
						|
                        <label class="col-md-2 control-label" for="reqActions">{{:: 'roles' | translate}} <span class="required"
 | 
						|
                                                                                           data-ng-show="!authzRequest.userId || authzRequest.userId == null">*</span></label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <select ui-select2="{ minimumInputLength: 1}"
 | 
						|
                                    data-ng-model="authzRequest.roleIds"
 | 
						|
                                    data-placeholder="{{:: 'authz-any-role' | translate}}..." multiple
 | 
						|
                                    data-ng-required="!authzRequest.userId || authzRequest.userId == null">
 | 
						|
                                <option ng-repeat="role in roles track by role.id" value="{{role.name}}">{{role.name}}
 | 
						|
                                </option>
 | 
						|
                            </select>
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-role.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                </fieldset>
 | 
						|
                <fieldset>
 | 
						|
                    <legend collapsed><span class="text">{{:: 'authz-evaluation-contextual-info' | translate}}</span>
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-contextual-info.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </legend>
 | 
						|
                    <div class="form-group clearfix block">
 | 
						|
                        <label class="col-md-2 control-label" for="newRedirectUri">{{:: 'authz-evaluation-contextual-attributes' | translate}}</label>
 | 
						|
 | 
						|
                        <div class="col-sm-6">
 | 
						|
                            <table class="table table-striped table-bordered">
 | 
						|
                                <thead>
 | 
						|
                                    <tr>
 | 
						|
                                        <th>{{:: 'key' | translate}}</th>
 | 
						|
                                        <th>{{:: 'value' | translate}}</th>
 | 
						|
                                        <th>{{:: 'actions' | translate}}</th>
 | 
						|
                                    </tr>
 | 
						|
                                </thead>
 | 
						|
                                <tbody>
 | 
						|
                                    <tr ng-repeat="(key, value) in (authzRequest.context.attributes)">
 | 
						|
                                        <td>{{getContextAttributeName(key)}}</td>
 | 
						|
                                        <td>
 | 
						|
                                            <select class="form-control" id="attribute-{{key}}"
 | 
						|
                                                    data-ng-model="authzRequest.context.attributes[key]"
 | 
						|
                                                    data-ng-show="getContextAttribute(key).values"
 | 
						|
                                                    ng-options="value1.key as value1.name for value1 in getContextAttribute(key).values">
 | 
						|
                                            </select>
 | 
						|
                                            <input ng-model="authzRequest.context.attributes[key]" class="form-control"
 | 
						|
                                                   type="text" name="{{key}}" id="attribute-{{key}}"
 | 
						|
                                                   data-ng-hide="getContextAttribute(key).values"/>
 | 
						|
                                        </td>
 | 
						|
                                        <td class="kc-action-cell">
 | 
						|
                                            <button class="btn btn-default btn-block btn-sm"
 | 
						|
                                                    data-ng-click="removeContextAttribute(key)">{{:: 'delete' | translate}}
 | 
						|
                                            </button>
 | 
						|
                                        </td>
 | 
						|
                                    </tr>
 | 
						|
                                    <tr>
 | 
						|
                                        <td>
 | 
						|
                                            <select class="form-control" id="newContextAttribute.key"
 | 
						|
                                                    data-ng-model="newContextAttribute"
 | 
						|
                                                    ng-change="selectDefaultContextAttribute()"
 | 
						|
                                                    data-ng-hide="!isDefaultContextAttribute()"
 | 
						|
                                                    ng-options="attribute as attribute.name for attribute in defaultContextAttributes track by attribute.key">
 | 
						|
                                            </select>
 | 
						|
                                            <input ng-model="newContextAttribute.key" class="form-control" type="text"
 | 
						|
                                                   id="newAttributeKey" data-ng-hide="isDefaultContextAttribute()"/>
 | 
						|
                                        </td>
 | 
						|
                                        <td>
 | 
						|
                                            <select class="form-control" id="newContextAttribute.value"
 | 
						|
                                                    data-ng-model="newContextAttribute.value"
 | 
						|
                                                    data-ng-show="newContextAttribute.values"
 | 
						|
                                                    ng-options="value.key as value.name for value in newContextAttribute.values track by value.key">
 | 
						|
                                            </select>
 | 
						|
                                            <input ng-model="newContextAttribute.value" class="form-control" type="text"
 | 
						|
                                                   id="newAttributeValue" data-ng-show="!newContextAttribute.values"/>
 | 
						|
                                        </td>
 | 
						|
                                        <td class="kc-action-cell">
 | 
						|
                                            <button class="btn btn-default btn-block btn-sm"
 | 
						|
                                                    data-ng-click="addContextAttribute()"
 | 
						|
                                                    data-ng-disabled="!newContextAttribute.key || newContextAttribute.key == ''">
 | 
						|
                                                {{:: 'add' | translate}}
 | 
						|
                                            </button>
 | 
						|
                                        </td>
 | 
						|
                                    </tr>
 | 
						|
                                </tbody>
 | 
						|
                            </table>
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-contextual-attributes.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                </fieldset>
 | 
						|
                <fieldset>
 | 
						|
                    <legend><span class="text">{{:: 'authz-permissions' | translate}}</span>
 | 
						|
                        <kc-tooltip>{{:: 'authz-evaluation-permissions.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </legend>
 | 
						|
                    <div class="form-group">
 | 
						|
                        <label class="col-md-2 control-label" for="applyResourceType">{{:: 'authz-permission-resource-apply-to-resource-type' | translate}}</label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <input ng-model="applyResourceType" id="applyResourceType" onoffswitch
 | 
						|
                                   data-ng-click="setApplyToResourceType()"/>
 | 
						|
                        </div>
 | 
						|
                        <kc-tooltip>{{:: 'authz-permission-resource-apply-to-resource-type.tooltip' | translate}}
 | 
						|
                        </kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix" data-ng-hide="applyResourceType">
 | 
						|
                        <label class="col-md-2 control-label" for="reqActions">{{:: 'authz-resources' | translate}} <span class="required">*</span></label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <input type="hidden" ui-select2="resourcesUiSelect" id="reqActions3" data-ng-change="resolveScopes()" data-ng-model="newResource" data-placeholder="{{:: 'authz-select-resource' | translate}}..." data-ng-required="!applyResourceType && authzRequest.resources.length == 0 && !authzRequest.entitlements" />
 | 
						|
                        </div>
 | 
						|
                        <kc-tooltip>{{:: 'authz-permission-resource-resource.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix" data-ng-show="applyResourceType">
 | 
						|
                        <label class="col-md-2 control-label" for="newResource.type">{{:: 'authz-resource-type' | translate}} <span
 | 
						|
                                class="required">*</span></label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <input class="form-control" type="text" id="newResource.type" name="newResource.type"
 | 
						|
                                   data-ng-model="authzRequest.resources[0].type"
 | 
						|
                                   data-ng-required="applyResourceType && !authzRequest.resources[0].type && !authzRequest.entitlements">
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-permission-resource-type.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix" data-ng-show="applyResourceType || newResource._id == null">
 | 
						|
                        <label class="col-md-2 control-label" for="newResource.scopes">{{:: 'authz-scopes' | translate}}</label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <input type="hidden" ui-select2="scopesUiSelect" id="reqActions" data-ng-model="newScopes" data-placeholder="{{:: 'authz-any-scope' | translate}}..." multiple />
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-permission-scope-scope.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix" data-ng-show="newResource._id != null">
 | 
						|
                        <label class="col-md-2 control-label" for="newResource.scopes">{{:: 'authz-scopes' | translate}}</label>
 | 
						|
 | 
						|
                        <div class="col-md-6">
 | 
						|
                            <select ui-select2
 | 
						|
                                    id="newResource.scopes"
 | 
						|
                                    data-ng-model="newScopes"
 | 
						|
                                    data-placeholder="{{:: 'authz-any-scope' | translate}}..." multiple>
 | 
						|
                                <option ng-repeat="scope in scopes" value="{{scope.name}}">{{scope.name}}</option>
 | 
						|
                            </select>
 | 
						|
                        </div>
 | 
						|
 | 
						|
                        <kc-tooltip>{{:: 'authz-permission-scope-scope.tooltip' | translate}}</kc-tooltip>
 | 
						|
                    </div>
 | 
						|
                    <div class="form-group clearfix block" data-ng-show="!applyResourceType">
 | 
						|
                        <label class="col-md-2 control-label" for="newRedirectUri"></label>
 | 
						|
 | 
						|
                        <div class="col-sm-6">
 | 
						|
                            <button data-ng-click="addResource()" class="btn btn-primary">Add</button>
 | 
						|
                            <table class="table table-striped table-bordered">
 | 
						|
                                <thead>
 | 
						|
                                    <tr>
 | 
						|
                                        <th>{{:: 'authz-resource' | translate}}</th>
 | 
						|
                                        <th>{{:: 'authz-scopes' | translate}}</th>
 | 
						|
                                        <th>{{:: 'actions' | translate}}</th>
 | 
						|
                                    </tr>
 | 
						|
                                </thead>
 | 
						|
                                <tbody>
 | 
						|
                                    <tr data-ng-show="!authzRequest.resources || authzRequest.resources.length == 0">
 | 
						|
                                        <td colspan="3">
 | 
						|
                                            {{:: 'authz-no-resources' | translate}}
 | 
						|
                                        </td>
 | 
						|
                                    </tr>
 | 
						|
                                    <tr ng-repeat="resource in authzRequest.resources">
 | 
						|
                                        <td>{{resource.name ? resource.name : 'authz-evaluation-any-resource-with-scopes' | translate}}</td>
 | 
						|
                                        <td>
 | 
						|
                                            <span data-ng-show="!resource.scopes.length">{{:: 'authz-any-scope' | translate}}.</span>
 | 
						|
                                            <span data-ng-show="resource.scopes.length > 0">
 | 
						|
                                                <span ng-repeat="scope in resource.scopes">
 | 
						|
                                                    {{scope.name ? scope.name : scope}} {{$last ? '' : ', '}}
 | 
						|
                                                </span>
 | 
						|
                                            </span>
 | 
						|
                                        </td>
 | 
						|
                                        <td class="kc-action-cell">
 | 
						|
                                            <button class="btn btn-default btn-block btn-sm"
 | 
						|
                                                    data-ng-click="removeResource($index)">{{:: 'delete' | translate}}
 | 
						|
                                            </button>
 | 
						|
                                        </td>
 | 
						|
                                    </tr>
 | 
						|
                                </tbody>
 | 
						|
                            </table>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                </fieldset>
 | 
						|
 | 
						|
                <div class="form-group">
 | 
						|
                    <div class="col-md-10 col-md-offset-2">
 | 
						|
                        <button kc-save data-ng-click="evaluate()">{{:: 'authz-evaluation-evaluate' | translate}}</button>
 | 
						|
                        <button kc-reset data-ng-disabled="!changed">{{:: 'reset' | translate}}</button>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
            </fieldset>
 | 
						|
        </form>
 | 
						|
    </div>
 | 
						|
    <div data-ng-include="resultUrl" data-ng-show="showResult && !showRpt"/>
 | 
						|
</div>
 | 
						|
 | 
						|
<kc-menu></kc-menu> |