我正在用Rails编写。这意味着我在本地ActiveDirectory上获取一些使用net的组,并希望将它们与列表进行比较并查找匹配项。我的NetLDAP搜索结果是这个散列:
[#<Net::LDAP::Entry:0x000000048cfdd0 @myhash={:dn=>["CN=Username,OU=Support,OU=mycompany ,OU=Organisation,DC=mycompany,DC=com"], :memberof=>["CN=My AWS Groupname,CN=Receiver,CN=Users,DC=mycompany,DC=com"]}>] 现在,我想解析这个散列,并在本地“group”表中查找匹配。看起来是这样:
Name AWS-Role
My AWS-Groupname Some Group
AWS-Othergroup Some Other-Group我有个集体模特。什么是最佳做法?我以前从没做过这样的事。我能用这里的Regex吗?我是否在所有表中循环分组?铁轨是怎么做到的?
编辑以获得更多信息
发布于 2014-12-16 10:49:27
我将在这里假设一些事情,因为我不知道从哪里得到LDAP搜索结果,但是假设您的散列如下所示:
编辑:基于其他信息:
// Example
require 'net-ldap'
entry = Net::LDAP::Entry.new
entry.dn = ["CN=Username,OU=Support,OU=mycompany ,OU=Organisation,DC=mycompany,DC=com"]
entry[:memberof] =["CN=My AWS Groupname,CN=Receiver,CN=Users,DC=mycompany,DC=com"]
name = entry.memberof.first.split(',').first.gsub('CN=', '')假设您有一个名为Group的模型,该模型映射到这个“组”表,您可以这样做:
Group.where(name: name).any?如果您发现任何结果,这意味着您有一个匹配的表。但这完全取决于表结构和哈希。要正确回答您的问题,我需要看看Rails中有哪些对象,以及Hash的结构是什么样子的。
编辑:根据收到的反馈更新了我的答案。使用代码是有风险的。
https://stackoverflow.com/questions/27502680
复制相似问题