diff --git a/themes/src/main/resources/theme/base/admin/resources/js/app.js b/themes/src/main/resources/theme/base/admin/resources/js/app.js
index e5cd7c1..1f6f5a8 100755
--- a/themes/src/main/resources/theme/base/admin/resources/js/app.js
+++ b/themes/src/main/resources/theme/base/admin/resources/js/app.js
@@ -2126,18 +2126,22 @@ module.directive('kcReadOnly', function() {
}
}
+ var filterIgnored = function(i, e){
+ return !e.attributes['kc-read-only-ignore'];
+ }
+
scope.$watch(attrs.kcReadOnly, function(readOnly) {
if (readOnly) {
- element.find('input').each(disable);
- element.find('button').each(disable);
- element.find('select').each(disable);
- element.find('textarea').each(disable);
+ element.find('input').filter(filterIgnored).each(disable);
+ element.find('button').filter(filterIgnored).each(disable);
+ element.find('select').filter(filterIgnored).each(disable);
+ element.find('textarea').filter(filterIgnored).each(disable);
} else {
- element.find('input').each(enable);
- element.find('input').each(enable);
- element.find('button').each(enable);
- element.find('select').each(enable);
- element.find('textarea').each(enable);
+ element.find('input').filter(filterIgnored).each(enable);
+ element.find('input').filter(filterIgnored).each(enable);
+ element.find('button').filter(filterIgnored).each(enable);
+ element.find('select').filter(filterIgnored).each(enable);
+ element.find('textarea').filter(filterIgnored).each(enable);
}
});
}
diff --git a/themes/src/main/resources/theme/base/admin/resources/partials/user-detail.html b/themes/src/main/resources/theme/base/admin/resources/partials/user-detail.html
index fb00666..c06e5b5 100755
--- a/themes/src/main/resources/theme/base/admin/resources/partials/user-detail.html
+++ b/themes/src/main/resources/theme/base/admin/resources/partials/user-detail.html
@@ -117,7 +117,7 @@
<label class="col-md-2 control-label" for="impersonate">{{:: 'impersonate-user' | translate}}</label>
<div class="col-md-6">
- <button id="impersonate" data-ng-show="access.impersonation" class="btn btn-default" data-ng-click="impersonate()">{{:: 'impersonate' | translate}}</button>
+ <button id="impersonate" data-ng-show="access.impersonation" kc-read-only-ignore class="btn btn-default" data-ng-click="impersonate()">{{:: 'impersonate' | translate}}</button>
</div>
<kc-tooltip>{{:: 'impersonate-user.tooltip' | translate}}</kc-tooltip>
</div>