2015-10-12 3 views
1

Printscreen additional fields useradminAEM 6.1 расширить свойства пользователя

Как я могу добавить несколько новых свойств пользователя в CQ пользователей?

Я нашел решение, но оно не работает ->http://experience-aem.blogspot.ch/2014/01/aem-cq-56-extend-useradmin-add-new-user.html

Я пытался манипулировать CRX в UserProperties.js с новыми свойствами, я вижу их в UserAdmin, но если я пытаюсь добавить новые СВОЙСТВА в Java-коде (не через useradmin) я могу сохранить его без ошибок, но значение пусто в useradmin. И если я попытаюсь добавить какое-то значение через useradmin для нового свойства, все пользователи получат одинаковое значение.

Как добавить новые свойства пользователя, чтобы установить значение через код Java, как и стандартные свойства.

user = userManager.createUser(username, password); 
       ValueFactory valueFactory = session.getValueFactory(); 
       emailValue = valueFactory.createValue(email); 
       givennameValue = valueFactory.createValue(givenname); 
       nameValue = valueFactory.createValue(name); 

       //User class just accepts Value Object 
       user.setProperty("profile/" + UserProperties.EMAIL, emailValue); 
       user.setProperty("profile/" + UserProperties.FAMILY_NAME, nameValue); 
       user.setProperty("profile/" + UserProperties.GIVEN_NAME, givennameValue); 
+0

вам нужен администратор userManager для сохранения пользователя в издателе ||||||||| Session adminSession = repositroy.loginAdministrative (null); UserManager usermanager = AccessControlUtil.getUserManager (adminSession); –

ответ

1

Я нашел решение. Перейти к CRX /libs/cq/security/widgets/source/widgets/security/UserProperties.js

  1. добавить поля, необходимые в элементах массива пользователя (Внимание - есть элементы для пользователя и элементы для групп в том же месте)

  2. в методе loadRecord ваших JS, вы должны добавить каждое новое поле в «записи» объект

     "items":[{ 
    
          "xtype":"textfield", 
          "fieldLabel":CQ.I18n.getMessage("Mail"), 
          "anchor":"100%", 
          "vtype":"email", 
          "msgTarget":"under", 
          "name":"email" 
         },{ 
          "xtype":"textfield", 
          "fieldLabel":CQ.I18n.getMessage("My Field"), 
          "anchor":"100%", 
          "msgTarget":"under", 
          "name":"myfield" 
         },{ 
          "xtype":"textarea", 
          "fieldLabel":CQ.I18n.getMessage("About"), 
          "anchor":"100% -155", 
          "name":"aboutMe" 
    
    
        }], 
    
    
    loadRecord: function(rec) { 
    this.enableUserSaveButton(false); 
    this.enableGroupSaveButton(false); 
    
    var type = rec.get("type"); 
    if (type=="user") { 
        this.activeForm = this.userForm; 
        this.hiddenForm = this.groupForm; 
        if (rec.id==CQ.security.UserProperties.ADMIN_ID) { 
         this.pwdButtons.each(function(bt) {bt.hide(); return true;}) 
        } else { 
    
         this.pwdButtons.each(function(bt) {bt.show(); return true;}) 
        } 
    
    } else { 
        this.activeForm = this.groupForm; 
        this.hiddenForm = this.userForm; 
    } 
    //is loading additional property from json and show it in formular 
    rec.data["myfield"] = rec.json["myfield"]; 
    
    this.activeForm.getForm().loadRecord(rec); 
    

в коде Java вы может затем добавить новые свойства через объект «пользователь» к новым свойствам. Обратите внимание, что свойства помещаются в подкаталог «profile».

user.setProperty("profile/" + "myfield", myFieldValue); 
0

я надеюсь, что это может, помогает вам файл существует на http://[host имя]: [порт] /crx/de/index.jsp#/libs/cq/security/widgets/source/widgets/security/UserProperties. js

и у вас будет два основных свойства, первый из которых для пользователя this.userForm другой - this.groupForm для групп.

+0

Вы делитесь URL-адресом локального хоста, совершенно бесполезным. – Nrzonline

Смежные вопросы