如何从Alfresco UI页面中获取密码,该页面已由admin为新用户创建

How to fetch password from Alfresco UI page which has been created by admin for the new user?

本文关键字:新用户 admin 创建 用户 Alfresco UI 密码 获取      更新时间:2023-09-26

我使用这段代码自动生成邮件。现在的问题是邮件中显示的密码是脚本生成的密码。我希望密码从alfresco新用户页面获取,其中管理员已经为新用户创建了密码,而不是任何随机字符串。下面是我为自动邮件生成而生成的脚本。

if (document.isContainer && document.displayPath == "/Company Home/User Homes") {
var owner = document.properties["cm:owner"];
var pNode = people.getPerson(owner);
if (pNode!=null && pNode.exists()){
    var userName = pNode.properties.userName;
    var email = pNode.properties.email;
    var randPassword = Math.random().toString(36).substr(2, 30)+"-"+(Date.now());
    people.setPassword(userName, randPassword);
    logger.debug("Invitation mail: User "+userName+" password has been changed.");
    var mail = actions.create("mail");
    //mail.parameters.from = "noreply@customdomain";
    mail.parameters.to = email; 
    mail.parameters.subject = "Welcome to the site, login: "+userName+", password: "+randPassword;
    mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/Invite Email Templates/invite_user_email.ftl");
    var templateModel = new Array();
    templateModel['newPassword'] = randPassword; // use ${newPassword} expression inside template
    mail.parameters.template_model = templateModel;
    mail.executeAsynchronously(document);
    logger.debug("Invitation mail has been sent to "+email);
} else {
    logger.warn("Invitation mail: User not found: "+owner);
}
} 

您无法从其散列解码密码。您只能对新密码进行编码并与散列匹配。

您可以修改Alfresco Share以在自定义用户方面存储原始密码,但这是非常糟糕的做法。管理员不应该知道用户密码

最终答案已在创建新用户时自动生成带有用户名和随机密码的电子邮件中发布——由@Imagine