我曾使用此代码自动生成邮件。现在问题是邮件中显示的密码是脚本生成的密码。我希望从露天的新用户页面中获取密码,其中管理员为新用户创建了密码而不是任何随机字符串。 下面是我为自动邮件生成生成的脚本。
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);
}
}
请指导我如何进一步。
答案 0 :(得分:1)
您无法从其哈希中解码密码。您只能encode new password and match it with hash。
您可以修改Alfresco Share以在自定义用户方面存储原始密码,但这是非常糟糕的做法。管理员不应该知道用户密码。
答案 1 :(得分:0)
最终答案已发布在自动生成电子邮件中,用户名和随机密码创建新用户 - @Imagine