我有一位拥有以下内容的用户:
'cn=example_user, ou=Person, dc=example, dc=com'
使用ActiveLdap,我想将容器更改为:
'cn=example_user, ou=Inactive, dc=example, dc=com'
我错过了一些东西......我已经搜索并查看了源代码,可能性似乎存在,但我没看到它是如何完成的。谢谢!
答案 0 :(得分:1)
为此目的使用MODIFY DN操作。另见:
答案 1 :(得分:0)
终于弄明白了。这是我做的:
运行setup_connection
ActiveLdap::Base.setup_connection(host: host, port: port, etc.)
在modify_rdn
connection
方法
ActiveLdap::Base.connection.modify_rdn(dn, new_rdn, remove_old_rdn, new_superior, options={})
我使用change_ou(new_ou)
在模型上创建了ldap_mapping
实例方法,所以我通过了:
dn
dn
{li> "cn=#{cn}"
new_rdn
{li> true
remove_old_rdn
{li> "ou=#{new_ou},dc=example,dc=com"
new_superior
变量new_ou
当然是新容器的名称(在我上面的示例中将是“非活动”)。我没有传递任何选项,因为它默认为任何空哈希。
以下是modify_rdn
方法源代码的链接。我很难搞清楚它需要从ActiveLdap::Base.connection
调用:
https://github.com/activeldap/activeldap/blob/master/lib/active_ldap/adapter/base.rb#L236