123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <!--
- ~ Copyright 2017 Red Hat, Inc. and/or its affiliates
- ~ and other contributors as indicated by the @author tags.
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
- <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>{{client.clientId}}</li>
- </ol>
- <kc-tabs-client></kc-tabs-client>
- <ul class="nav nav-tabs nav-tabs-pf">
- <li>
- <a href="#/realms/{{realm.realm}}/clients/{{client.id}}/client-scopes/setup-scopes">{{:: 'client-scopes.setup' | translate}}</a>
- <kc-tooltip>{{:: 'client-scopes.setup.tooltip' | translate}}</kc-tooltip>
- </li>
- <li class="active">
- <a href="#/realms/{{realm.realm}}/clients/{{client.id}}/client-scopes/evaluate-scopes">{{:: 'client-scopes.evaluate' | translate}}</a>
- <kc-tooltip>{{:: 'client-scopes.evaluate.tooltip' | translate}}</kc-tooltip>
- </li>
- </ul>
- <form class="form-horizontal" name="evaluateForm" novalidate kc-read-only="!access.viewClients">
- <fieldset>
- <div class="form-group clearfix" data-ng-show="client.protocol == 'openid-connect'">
- <label class="col-md-2 control-label" for="scopeParam">{{:: 'scope-parameter' | translate}}</label>
- <div class="col-md-6">
- <input class="form-control" id="scopeParam" type="text" value="{{scopeParam}}" readonly kc-select-action="click">
- </div>
- <kc-tooltip>{{:: 'scope-parameter.tooltip' | translate}}</kc-tooltip>
- </div>
- </fieldset>
- <div class="form-group">
- <label class="col-md-2 control-label" class="control-label">{{:: 'client-scopes.evaluate.scopes' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.scopes.tooltip' | translate}}</kc-tooltip>
- <div class="col-md-10">
- <div class="row">
- <div class="col-md-4">
- <label class="control-label" for="available">{{:: 'client-scopes.evaluate.scopes.available' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.scopes.available.tooltip' | translate}}</kc-tooltip>
- <select id="available" class="form-control overflow-select" multiple size="5"
- ng-multiple="true"
- ng-model="selectedClientScopes">
- <option ng-repeat="r in availableClientScopes | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- <button ng-disabled="selectedClientScopes.length == 0" class="btn btn-default" type="submit" ng-click="addAppliedClientScope()">
- {{:: 'add-selected' | translate}} <i class="fa fa-angle-double-right"></i>
- </button>
- </div>
- <div class="col-md-4">
- <label class="control-label" for="assigned">{{:: 'client-scopes.evaluate.scopes.assigned' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.scopes.assigned.tooltip' | translate}}</kc-tooltip>
- <select id="assigned" class="form-control overflow-select" multiple size=5
- ng-multiple="true"
- ng-model="selectedDefClientScopes">
- <option ng-repeat="r in assignedClientScopes | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- <button ng-disabled="selectedDefClientScopes.length == 0" class="btn btn-default" type="submit" ng-click="deleteAppliedClientScope()">
- <i class="fa fa-angle-double-left"></i> {{:: 'remove-selected' | translate}}
- </button>
- </div>
- <div class="col-md-4">
- <label class="control-label" for="assigned">{{:: 'client-scopes.evaluate.scopes.effective' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.scopes.effective.tooltip' | translate}}</kc-tooltip>
- <select id="effective" class="form-control overflow-select" multiple size=5
- disabled="true"
- ng-model="dummymodel">
- <option ng-repeat="r in effectiveClientScopes | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group clearfix" data-ng-show="access.viewUsers">
- <label class="col-md-2 control-label" for="users">{{:: 'user' | translate}}</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}}...">
- </input>
- </div>
- <kc-tooltip>{{:: 'client-scopes.evaluate.user.tooltip' | translate}}</kc-tooltip>
- </div>
- <div class="form-group clearfix">
- <div class="col-md-10 col-md-offset-1" data-ng-show="client.access.view">
- <button type="submit" data-ng-click="sendEvaluationRequest()" class="btn btn-primary" tooltip-trigger="mouseover mouseout" tooltip="{{:: 'send-evaluation-request.tooltip' | translate}}" tooltip-placement="bottom">{{:: 'send-evaluation-request' | translate}}</button>
- </div>
- </div>
- </form>
- <ul class="nav nav-tabs nav-tabs-pf" data-ng-show="isResponseAvailable()">
- <li class="{{tabCss.tab1}}" data-ng-click="showTab(1)">
- <a href="">{{:: 'evaluated-protocol-mappers' | translate}}</a>
- <kc-tooltip>{{:: 'evaluated-protocol-mappers.tooltip' | translate}}</kc-tooltip>
- </li>
- <li class="{{tabCss.tab2}}" data-ng-click="showTab(2)">
- <a href="">{{:: 'evaluated-roles' | translate}}</a>
- <kc-tooltip>{{:: 'evaluated-roles.tooltip' | translate}}</kc-tooltip>
- </li>
- <li class="{{tabCss.tab3}}" data-ng-click="showTab(3)" data-ng-show="isAccessTokenAvailable()">
- <a href="">{{:: 'generated-access-token' | translate}}</a>
- <kc-tooltip>{{:: 'generated-access-token.tooltip' | translate}}</kc-tooltip>
- </li>
- <li class="{{tabCss.tab4}}" data-ng-click="showTab(4)" data-ng-show="isIDTokenAvailable()">
- <a href="">{{:: 'generated-id-token' | translate}}</a>
- <kc-tooltip>{{:: 'generated-id-token.tooltip' | translate}}</kc-tooltip>
- </li>
- <li class="{{tabCss.tab5}}" data-ng-click="showTab(5)" data-ng-show="isUserInfoAvailable()">
- <a href="">{{:: 'generated-user-info' | translate}}</a>
- <kc-tooltip>{{:: 'generated-user-info.tooltip' | translate}}</kc-tooltip>
- </li>
- </ul>
- <!-- Effective protocol mappers -->
- <table class="table table-striped table-bordered" data-ng-show="protocolMappersShown()">
- <thead>
- <tr>
- <th class="kc-table-actions" colspan="4">
- <div class="form-inline">
- <div>
- <div class="input-group">
- <input type="text" placeholder="{{:: 'search.placeholder' | translate}}" data-ng-model="search.mapperName" class="form-control search" onkeyup="if(event.keyCode == 13){$(this).next('I').click();}">
- <div class="input-group-addon">
- <i class="fa fa-search" type="submit"></i>
- </div>
- </div>
- </div>
- </div>
- </th>
- </tr>
- <tr data-ng-hide="protocolMappers.length == 0">
- <th>{{:: 'name' | translate}}</th>
- <th>{{:: 'parent-client-scope' | translate}}</th>
- <th>{{:: 'category' | translate}}</th>
- <th>{{:: 'type' | translate}}</th>
- <th>{{:: 'priority-order' | translate}}</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="mapper in protocolMappers | filter:search | orderBy:sortMappersByPriority">
- <td><a href="#/realms/{{realm.realm}}/{{mapper.containerType}}s/{{mapper.containerId}}/mappers/{{mapper.mapperId}}">{{mapper.mapperName}}</a></td>
- <td><a href="#/realms/{{realm.realm}}/{{mapper.containerType}}s/{{mapper.containerId}}">{{mapper.containerName}}</a></td>
- <td>{{mapperTypes[mapper.protocolMapper].category}}</td>
- <td>{{mapperTypes[mapper.protocolMapper].name}}</td>
- <td>{{mapperTypes[mapper.protocolMapper].priority}}</td>
- </tr>
- <tr data-ng-show="mappers.length == 0">
- <td>{{:: 'no-mappers-available' | translate}}</td>
- </tr>
- </tbody>
- </table>
- <!-- Effective role scope mappings -->
- <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.viewClients">
- <div class="form-group" data-ng-show="rolesShown()">
- <label class="col-md-2 control-label" class="control-label">{{:: 'realm-roles' | translate}}</label>
- <div class="col-md-10">
- <div class="row">
- <div class="col-md-4">
- <label class="control-label" for="available-realm-roles">{{:: 'client-scopes.evaluate.not-granted-roles' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.not-granted-roles.tooltip' | translate}}</kc-tooltip>
- <select id="available-realm-roles" class="form-control overflow-select" multiple size="5"
- disabled="true"
- ng-model="dummymodel1">
- <option ng-repeat="r in notGrantedRealmRoles | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- </div>
- <div class="col-md-4">
- <label class="control-label" for="realm-composite">{{:: 'client-scopes.evaluate.granted-realm-effective-roles' | translate}} </label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.granted-realm-effective-roles.tooltip' | translate}}</kc-tooltip>
- <select id="realm-composite" class="form-control overflow-select" multiple size=5
- disabled="true"
- ng-model="dummymodel2">
- <option ng-repeat="r in grantedRealmRoles | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group" data-ng-show="rolesShown()">
- <label class="col-md-2 control-label" for="clients">{{:: 'client-roles' | translate}}</label>
- <div class="col-md-6">
- <input type="hidden" ui-select2="clientsUiSelect" id="clients" data-ng-model="selectedClient" data-ng-change="selectClient(selectedClient);" data-placeholder="{{:: 'authz-select-client' | translate}}...">
- </input>
- </div>
- <div class="col-md-10 col-md-offset-2">
- <div class="row" data-ng-show="selectedClient">
- <div class="col-md-4">
- <label class="control-label" for="available-client">{{:: 'client-scopes.evaluate.not-granted-roles' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.not-granted-roles.tooltip' | translate}}</kc-tooltip>
- <select id="available-client" class="form-control overflow-select" multiple size="5"
- disabled="true"
- ng-model="dummymodel">
- <option ng-repeat="r in notGrantedClientRoles | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- </div>
- <div class="col-md-4">
- <label class="control-label" for="client-composite">{{:: 'client-scopes.evaluate.granted-client-effective-roles' | translate}}</label>
- <kc-tooltip>{{:: 'client-scopes.evaluate.granted-realm-effective-roles.tooltip' | translate}}</kc-tooltip>
- <select id="client-composite" class="form-control overflow-select" multiple size=5
- disabled="true"
- ng-model="dummymodel">
- <option ng-repeat="r in grantedClientRoles | orderBy:'name'"
- value="{{r}}" title="{{r.name}}">
- {{r.name}}
- </option>
- </select>
- </div>
- </div>
- </div>
- </div>
- </form>
- <!-- Example content: One of Access token, ID token or User Info -->
- <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.viewClients" data-ng-show="exampleTabInfo().isShown">
- <div class="form-group">
- <div class="col-md-10 col-md-offset-1">
- <textarea class="form-control" rows="20" kc-select-action="click" readonly>{{exampleTabInfo().value}}</textarea>
- </div>
- </div>
- </form>
- </div>
- <kc-menu></kc-menu>
|