瀏覽代碼

feat(minor): Add Custom Group Search for custom LDAP servers

version-14
Benedict Allerberger 3 年之前
committed by GitHub
父節點
當前提交
c775ca1d1d
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: 4AEE18F83AFDEB23
共有 2 個檔案被更改,包括 15 行新增1 行删除
  1. +7
    -0
      frappe/integrations/doctype/ldap_settings/ldap_settings.json
  2. +8
    -1
      frappe/integrations/doctype/ldap_settings/ldap_settings.py

+ 7
- 0
frappe/integrations/doctype/ldap_settings/ldap_settings.json 查看文件

@@ -38,6 +38,7 @@
"local_ca_certs_file", "local_ca_certs_file",
"ldap_custom_settings_section", "ldap_custom_settings_section",
"ldap_group_objectclass", "ldap_group_objectclass",
"ldap_custom_group_search",
"column_break_33", "column_break_33",
"ldap_group_member_attribute", "ldap_group_member_attribute",
"ldap_group_mappings_section", "ldap_group_mappings_section",
@@ -247,6 +248,12 @@
"fieldtype": "Data", "fieldtype": "Data",
"label": "Group Object Class" "label": "Group Object Class"
}, },
{
"description": "string value, i.e. {0} or uid={0},ou=users,dc=example,dc=com",
"fieldname": "ldap_custom_group_search",
"fieldtype": "Data",
"label": "Custom Group Search"
},
{ {
"description": "Requires any valid fdn path. i.e. ou=users,dc=example,dc=com", "description": "Requires any valid fdn path. i.e. ou=users,dc=example,dc=com",
"fieldname": "ldap_search_path_user", "fieldname": "ldap_search_path_user",


+ 8
- 1
frappe/integrations/doctype/ldap_settings/ldap_settings.py 查看文件

@@ -49,6 +49,10 @@ class LDAPSettings(Document):
frappe.throw(_("Custom LDAP Directoy Selected, please ensure 'LDAP Group Member attribute' and 'Group Object Class' are entered"), frappe.throw(_("Custom LDAP Directoy Selected, please ensure 'LDAP Group Member attribute' and 'Group Object Class' are entered"),
title=_("Misconfigured")) title=_("Misconfigured"))


if self.ldap_custom_group_search and "{0}" not in self.ldap_custom_group_search:
frappe.throw(_("Custom Group Search if filled needs to contain the user placeholder {0}, eg uid={0},ou=users,dc=example,dc=com"),
title=_("Misconfigured"))

else: else:
frappe.throw(_("LDAP Search String must be enclosed in '()' and needs to contian the user placeholder {0}, eg sAMAccountName={0}")) frappe.throw(_("LDAP Search String must be enclosed in '()' and needs to contian the user placeholder {0}, eg sAMAccountName={0}"))


@@ -209,7 +213,10 @@ class LDAPSettings(Document):


ldap_object_class = self.ldap_group_objectclass ldap_object_class = self.ldap_group_objectclass
ldap_group_members_attribute = self.ldap_group_member_attribute ldap_group_members_attribute = self.ldap_group_member_attribute
user_search_str = getattr(user, self.ldap_username_field).value
ldap_custom_group_search = "{0}"
if self.ldap_custom_group_search:
ldap_custom_group_search = self.ldap_custom_group_search
user_search_str = ldap_custom_group_search.format(getattr(user, self.ldap_username_field).value)


else: else:
# NOTE: depreciate this else path # NOTE: depreciate this else path


Loading…
取消
儲存