user-federation.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
  2. <h1>
  3. <span>{{:: 'user-federation' | translate}}</span>
  4. </h1>
  5. <div class="blank-slate-pf" data-ng-hide="!instancesLoaded || (instances && instances.length > 0)">
  6. <div class="blank-slate-pf-icon">
  7. <span class="fa fa-database"></span>
  8. </div>
  9. <h1>
  10. {{:: 'user-federation' | translate}}
  11. </h1>
  12. <p>Keycloak can federate external user databases. Out of the box we have support for LDAP and Active Directory.</p>
  13. <p>To get started select a provider from the dropdown below:</p>
  14. <div class="blank-slate-pf-main-action">
  15. <div class="row" data-ng-show="access.manageRealm">
  16. <div class="col-sm-4 col-sm-offset-4">
  17. <div class="form-group">
  18. <select class="form-control" ng-model="selectedProvider"
  19. ng-options="p.id for p in providers"
  20. data-ng-change="addProvider(selectedProvider); selectedProvider = null">
  21. <option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
  22. </select>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <table class="table table-striped table-bordered" data-ng-show="instances && instances.length > 0">
  29. <thead>
  30. <tr ng-show="providers.length > 0 && access.manageRealm">
  31. <th colspan="6" class="kc-table-actions">
  32. <div class="pull-right">
  33. <div>
  34. <select class="form-control" ng-model="selectedProvider"
  35. ng-options="p.id for p in providers"
  36. data-ng-change="addProvider(selectedProvider); selectedProvider = null">
  37. <option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
  38. </select>
  39. </div>
  40. </div>
  41. </th>
  42. </tr>
  43. <tr data-ng-show="instances && instances.length > 0">
  44. <th>{{:: 'id' | translate}}</th>
  45. <th>{{:: 'enabled' | translate}}</th>
  46. <th>{{:: 'provider-name' | translate}}</th>
  47. <th>{{:: 'priority' | translate}}</th>
  48. <th colspan="2">{{:: 'actions' | translate}}</th>
  49. </tr>
  50. </thead>
  51. <tbody>
  52. <tr ng-repeat="instance in instances | orderBy:[getInstancePriority, getInstanceName]">
  53. <td><a href="#{{getInstanceLink(instance)}}">{{getInstanceName(instance)}}</a></td>
  54. <td>{{isProviderEnabled(instance)}}</td>
  55. <td>{{getInstanceProvider(instance) | capitalize}}</td>
  56. <td>{{getInstancePriority(instance)}}</td>
  57. <td class="kc-action-cell" kc-open="{{getInstanceLink(instance)}}">{{:: 'edit' | translate}}</td>
  58. <td class="kc-action-cell" data-ng-click="removeInstance(instance)">{{:: 'delete' | translate}}</td>
  59. </tr>
  60. <tr data-ng-show="!instances || instances.length == 0">
  61. <td class="text-muted">{{:: 'no-user-federation-providers-configured' | translate}}</td>
  62. </tr>
  63. </tbody>
  64. </table>
  65. </div>
  66. <kc-menu></kc-menu>