创建所有用户的电子邮件列表

马克·汤普金斯

有时我需要向所有Jenkins用户发送电子邮件,例如警告他们Jenkins将离线进行维护。下面的脚本为我提供了詹金斯认识的所有人的电子邮件地址,但其中包括没有帐户的人,这些人所做的更改已触发构建。我想将其从电子邮件列表中删除,即该列表应仅包含您在securityRealm页面上看到的用户。我正在寻找修改脚本的帮助。谢谢。

import hudson.model.User
import hudson.tasks.Mailer

def users = User.getAll()
for (User u : users) {
    def mailAddress = u.getProperty(Mailer.UserProperty.class).getAddress()
    print(mailAddress + "; ")
}
维塔利(Vitalii Elenhaupt)

首先,您应该知道,詹金斯并不总是能够告诉您用户是否存在。詹金斯的javadoc

例如,当安全领域位于Servlet实现之上时,甚至无法知道给定名称的用户是否存在。

我找到了两种解决方案。

解决方案1

HudsonPrivateSecurityRealm.html#getAllUsers()返回所有可以登录系统的用户。这对我有用:

import hudson.model.User
import hudson.tasks.Mailer
import jenkins.model.Jenkins

def realm = Jenkins.getInstance().getSecurityRealm()
def users = realm.getAllUsers()
for (User u : users) {
    def mailAddress = u.getProperty(Mailer.UserProperty.class).getAddress()
    print(mailAddress + "; ")
}

注意:这取决于Jenkins配置,可能无法在使用另一个(不是a HudsonPrivateSecurityRealm)安全领域的系统上工作

解决方案2

SecurityRealm#loadUserByUsername如果用户存在,则返回用户详细信息,UsernameNotFoundException否则抛出

import hudson.model.User
import hudson.tasks.Mailer
import jenkins.model.Jenkins
import org.acegisecurity.userdetails.UsernameNotFoundException

def realm = Jenkins.getInstance().getSecurityRealm()
def users = User.getAll()
for (User u : users) {
    try {
        realm.loadUserByUsername(u.getId()) // throws UsernameNotFoundException
        def mailAddress = u.getProperty(Mailer.UserProperty.class).getAddress()
        print(mailAddress + "; ")
    } catch (UsernameNotFoundException e) { }
 }

这是一个棘手的问题,但是当我们使用顶级抽象类(SecurityRealm中存在的方法时,它应该可以在所有安全领域使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

验证 Firebase 中所有用户的电子邮件

来自分类Dev

用户注销时通过电子邮件发送所有用户命令

来自分类Dev

Firebase:通过电子邮件搜索而不让用户看到所有用户

来自分类Dev

如何在asp.net c#Web窗体应用程序的Active Directory OU中创建所有电子邮件地址的数组列表?

来自分类Dev

Django 查询:具有给定电子邮件的所有用户

来自分类Dev

创建电子邮件用户列表?

来自分类Dev

使用重复的电子邮件地址获取所有用户

来自分类Dev

导出安全组中所有用户的电子邮件地址

来自分类Dev

ionic,firebase:如何从firebase身份验证中获取所有用户电子邮件

来自分类Dev

流星帐户密码,显示所有用户的电子邮件

来自分类Dev

我需要向数组中的所有用户发送电子邮件

来自分类Dev

显示每个uid中的所有用户信息(电子邮件,名称等)并在回收者视图中显示

来自分类Dev

使用C#需要当前组织中的所有用户详细信息(姓名,电子邮件,指定,部门)

来自分类Dev

Laravel eloquent 从电子邮件和电话号码数组中选择所有用户

来自分类Dev

Rails邮件程序:在没有用户模型的情况下生成电子邮件

来自分类Dev

如何在没有用户注册电子邮件的情况下发送通知

来自分类Dev

在没有用户交互的情况下发送电子邮件-Android Studio

来自分类Dev

在没有用户交互的情况下发送电子邮件

来自分类Dev

如何在Android中向现有用户添加电子邮件

来自分类Dev

带有用户名和电子邮件的 PDO 登录系统

来自分类Dev

使用没有用户名和密码的 SMTP 发送电子邮件

来自分类Dev

如何在 ruby on rails 中访问现有用户电子邮件

来自分类Dev

Shopify 创建用户激活电子邮件

来自分类Dev

同时拥有用户名和电子邮件,但在django-rest-auth中使用电子邮件对用户进行身份验证

来自分类Dev

使用MeteorJS堆栈,如何从用户发布的帖子中检索带有用户ID的用户电子邮件

来自分类Dev

新的网络服务器:我应该创建所有用户帐户以及提供哪些权限

来自分类Dev

发送邮件给所有用户

来自分类Dev

尝试创建电子邮件脚本,但并非所有收件人都收到电子邮件

来自分类Dev

django allauth当检索到的电子邮件与现有用户的电子邮件匹配时,facebook重定向到注册吗?

Related 相关文章

  1. 1

    验证 Firebase 中所有用户的电子邮件

  2. 2

    用户注销时通过电子邮件发送所有用户命令

  3. 3

    Firebase:通过电子邮件搜索而不让用户看到所有用户

  4. 4

    如何在asp.net c#Web窗体应用程序的Active Directory OU中创建所有电子邮件地址的数组列表?

  5. 5

    Django 查询:具有给定电子邮件的所有用户

  6. 6

    创建电子邮件用户列表?

  7. 7

    使用重复的电子邮件地址获取所有用户

  8. 8

    导出安全组中所有用户的电子邮件地址

  9. 9

    ionic,firebase:如何从firebase身份验证中获取所有用户电子邮件

  10. 10

    流星帐户密码,显示所有用户的电子邮件

  11. 11

    我需要向数组中的所有用户发送电子邮件

  12. 12

    显示每个uid中的所有用户信息(电子邮件,名称等)并在回收者视图中显示

  13. 13

    使用C#需要当前组织中的所有用户详细信息(姓名,电子邮件,指定,部门)

  14. 14

    Laravel eloquent 从电子邮件和电话号码数组中选择所有用户

  15. 15

    Rails邮件程序:在没有用户模型的情况下生成电子邮件

  16. 16

    如何在没有用户注册电子邮件的情况下发送通知

  17. 17

    在没有用户交互的情况下发送电子邮件-Android Studio

  18. 18

    在没有用户交互的情况下发送电子邮件

  19. 19

    如何在Android中向现有用户添加电子邮件

  20. 20

    带有用户名和电子邮件的 PDO 登录系统

  21. 21

    使用没有用户名和密码的 SMTP 发送电子邮件

  22. 22

    如何在 ruby on rails 中访问现有用户电子邮件

  23. 23

    Shopify 创建用户激活电子邮件

  24. 24

    同时拥有用户名和电子邮件,但在django-rest-auth中使用电子邮件对用户进行身份验证

  25. 25

    使用MeteorJS堆栈,如何从用户发布的帖子中检索带有用户ID的用户电子邮件

  26. 26

    新的网络服务器:我应该创建所有用户帐户以及提供哪些权限

  27. 27

    发送邮件给所有用户

  28. 28

    尝试创建电子邮件脚本,但并非所有收件人都收到电子邮件

  29. 29

    django allauth当检索到的电子邮件与现有用户的电子邮件匹配时,facebook重定向到注册吗?

热门标签

归档