Quantcast
Channel: Experiencing Adobe Experience Manager (AEM, CQ)
Viewing all articles
Browse latest Browse all 525

AEM CQ 56 - Extend UserAdmin, add new User Properties

$
0
0

Goal


Extend UserAdmin console and add new user properties. Here we add a new property Second Email, stored in CRX as secondEmail

From the Product



Customized console




In CRX



Solution - 1


1) Create a cq:ClientLibraryFolder /apps/myclientlib and add property categories cq.security of type String

2) Create /apps/myclientlib/js.txt of type nt:file and add the following

                  UserProperties.js

3) Create /apps/myclientlib/UserProperties.js of type nt:file and add the following code

CQ.Ext.ns("MyClientLib");

MyClientLib.UserAdmin = {
addSecondEmail: function(propPanel){
var userForm = propPanel.userForm;
var emailComp = userForm.find('name', 'email');

var secondEmailComp = {
"xtype":"textfield",
"fieldLabel": "Second Email",
"anchor":"100%",
"name":"secondEmail"
};

userForm.insert(userForm.items.indexOf(emailComp[0]) + 1, secondEmailComp);
userForm.doLayout();
}
};

(function(){
if(window.location.pathname == "/useradmin"){
var fields = CQ.security.data.AuthRecord.FIELDS;
fields.push({"name": "secondEmail"});

var UA_INTERVAL = setInterval(function(){
var userAdmin = CQ.Ext.getCmp("cq-useradmin");

if(userAdmin && userAdmin.userProperties){
clearInterval(UA_INTERVAL);
MyClientLib.UserAdmin.addSecondEmail(userAdmin.userProperties);
}
}, 250);
}
})();


Solution - 2


Not preferred; Login to CRXDE Lite (http://localhost:4502/crx/de), Overlay file /libs/cq/security/widgets/source/widgets/security/UserProperties.js by creating /apps/cq/security/widgets/source/widgets/security/UserProperties.js and add the following code

CQ.Ext.ns("MyClientLib");

MyClientLib.UserAdmin = {
addSecondEmail: function(propPanel){
var userForm = propPanel.userForm;
var emailComp = userForm.find('name', 'email');

var secondEmailComp = {
"xtype":"textfield",
"fieldLabel": "Second Email",
"anchor":"100%",
"name":"secondEmail"
};

userForm.insert(userForm.items.indexOf(emailComp[0]) + 1, secondEmailComp);
userForm.doLayout();
}
};

CQ.shared.HTTP.get("/libs/cq/security/widgets/source/widgets/security/UserProperties.js");

(function(){
if(window.location.pathname == "/useradmin"){
var fields = CQ.security.data.AuthRecord.FIELDS;
fields.push({"name": "secondEmail"});

var UA_INTERVAL = setInterval(function(){
var userAdmin = CQ.Ext.getCmp("cq-useradmin");

if(userAdmin && userAdmin.userProperties){
clearInterval(UA_INTERVAL);
MyClientLib.UserAdmin.addSecondEmail(userAdmin.userProperties);
}
}, 250);
}
})();


Viewing all articles
Browse latest Browse all 525

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>