@@ -15,28 +15,45 @@ for var in [
1515]:
1616 agent .unset_env (var )
1717
18- if ldap_domain :
18+ # ------------------------------------------------
19+ # Get domain info or fallback
20+ # ------------------------------------------------
21+ try :
1922 odom = Ldapproxy ().get_domain (ldap_domain )
20- base_dn = odom ["base_dn" ]
23+ assert "host" in odom
24+ except Exception :
25+ # Fallback during restore / missing domain
26+ odom = {
27+ "host" : "127.0.0.1" ,
28+ "port" : 20000 ,
29+ "schema" : "rfc2307" ,
30+ "base_dn" : "dc=semaphore,dc=invalid" ,
31+ "bind_dn" : "cn=example,dc=semaphore,dc=invalid" ,
32+ "bind_password" : "invalid" ,
33+ }
2134
22- agent .set_env ("LDAP_HOSTNAME" , odom ["host" ])
23- agent .set_env ("LDAP_PORT" , str (odom ["port" ]))
24- agent .set_env ("LDAP_SEARCH_BIND_DN" , odom ["bind_dn" ])
25- agent .set_env ("LDAP_SEARCH_BIND_PASSWORD" , odom ["bind_password" ])
35+ base_dn = odom ["base_dn" ]
36+ agent .set_env ("LDAP_HOSTNAME" , odom ["host" ])
37+ agent .set_env ("LDAP_PORT" , str (odom ["port" ]))
38+ agent .set_env ("LDAP_SEARCH_BIND_DN" , odom ["bind_dn" ])
39+ agent .set_env ("LDAP_SEARCH_BIND_PASSWORD" , odom ["bind_password" ])
2640
27- if odom ["schema" ] == "rfc2307" :
28- agent .set_env ("LDAP_USER_BASE_DN" , f"ou=People,{ base_dn } " )
29- agent .set_env ("LDAP_GROUP_BASE_DN" , f"ou=Groups,{ base_dn } " )
30- agent .set_env ("LDAP_MEMBER_ATTRIBUTE" , "memberUid" )
31- agent .set_env ("LDAP_MEMBER_ATTRIBUTE_TYPE" , "uid" )
41+ # Compose host:port for Semaphore
42+ agent .set_env ("SEMAPHORE_LDAP_SERVER" , f"{ odom ['host' ]} :{ odom ['port' ]} " )
3243
33- elif odom ["schema" ] == "ad" :
34- agent .set_env ("LDAP_USER_BASE_DN" , f"cn=Users,{ base_dn } " )
35- agent .set_env ("LDAP_GROUP_BASE_DN" , f"cn=Users,{ base_dn } " )
36- agent .set_env ("LDAP_USERNAME_ATTRIBUTE" , "samaccountname" )
37- agent .set_env ("LDAP_USER_SEARCH_FILTER" ,
38- "(&(objectClass=top)(objectClass=user)(objectClass=person)(objectClass=organizationalPerson))" )
39- agent .set_env ("LDAP_GROUP_SEARCH_FILTER" ,
40- "(&(objectClass=top)(objectClass=group))" )
44+ # Schema-specific DN & search settings
45+ if odom ["schema" ] == "rfc2307" :
46+ agent .set_env ("LDAP_USER_BASE_DN" , f"ou=People,{ base_dn } " )
47+ agent .set_env ("LDAP_GROUP_BASE_DN" , f"ou=Groups,{ base_dn } " )
48+ agent .set_env ("LDAP_MEMBER_ATTRIBUTE" , "memberUid" )
49+ agent .set_env ("LDAP_MEMBER_ATTRIBUTE_TYPE" , "uid" )
50+ elif odom ["schema" ] == "ad" :
51+ agent .set_env ("LDAP_USER_BASE_DN" , f"cn=Users,{ base_dn } " )
52+ agent .set_env ("LDAP_GROUP_BASE_DN" , f"cn=Users,{ base_dn } " )
53+ agent .set_env ("LDAP_USERNAME_ATTRIBUTE" , "samaccountname" )
54+ agent .set_env ("LDAP_USER_SEARCH_FILTER" ,
55+ "(&(objectClass=top)(objectClass=user)(objectClass=person)(objectClass=organizationalPerson))" )
56+ agent .set_env ("LDAP_GROUP_SEARCH_FILTER" ,
57+ "(&(objectClass=top)(objectClass=group))" )
4158
4259agent .dump_env ()
0 commit comments