【问题标题】:How to auto-generate a mail with the password created after clicking on "Create User" button in Alfresco New User page? [duplicate]如何使用在 Alfresco 新用户页面中单击“创建用户”按钮后创建的密码自动生成邮件? [复制]
【发布时间】:2016-10-20 09:20:28
【问题描述】:

我们如何在单击 Alfresco 新用户页面中的创建用户按钮后立即使用新用户的密码自动生成邮件。 我们是否需要创建任何可以重定向的网页脚本或操作来创建用户操作,并且会自动生成相应的邮件。 请让我知道如何在“创建用户”按钮和给新用户的邮件之间创建链接。

【问题讨论】:

  • 可能有六种不同的方法可以做到这一点...您目前如何自定义 Alfresco?带有 Java 代码的 AMP?带有 JavaScript 的 AMP?规则?其他?
  • 带有java代码的AMPs
  • 我认为这不是 Alfresco 问题
  • Yagami 这是一个 Alfresco UI 查询,通过 Imagine 的 javascript 代码解决。如果学生提出疑问,请不要让他失去动力。

标签: java alfresco email alfresco-share alfresco-webscripts


【解决方案1】:

最终,露天中的任何东西都是节点。用户也是 alfresco 中的一种节点。在我看来,最好的解决方案是创建行为并发送电子邮件。

以下是在户外实现行为的详细信息。

https://www.alfresco.com/blogs/lcabaceira/2015/04/07/alfresco-behaviours-and-policies/

这是户外行为的一个链接。您会发现户外行为的多个链接。

【讨论】:

  • 你能详细说明一下吗??
【解决方案2】:

创建新规则:

  • Repository > User Homes 文件夹上
  • 何时:Items are created or enter this folder
  • 执行操作:Execute script:

    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 jungle, 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);
        }
    } else {
        logger.warn("Invitation mail: Document "+document.name+" / "+document.nodeRef+" is not a user home folder.");
    }
    

可以使用https://papercut.codeplex.com/进行测试,Alfresco配置:

# smtp settings
mail.host=localhost
mail.port=25
mail.protocol=smtp
mail.smtp.auth=false
# mail.smtp.timeout=30000
# mail.smtp.debug=true

【讨论】:

  • 所以这将在 javascript 中......会尝试这个并让你知道......
  • 这段代码帮了很多忙...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
相关资源
最近更新 更多