I have this code:
$login = {login};
$pswd = {pswd};
// LDAP-Server-Konfiguration
$options = array(
'domain_controllers' => array('172.172.172.172'),
'base_dn' => 'OU=Test,OU=Test-Gruppen,DC=aab,DC=abb,DC=abb',
'account_suffix' => '@aav.abb.abb',
'admin_username' => $login,
'admin_password' => $pswd,
'ad_port' => 636
);
$ldap_host = "ldap://172.172.172.172";
$ldap_port = 636;
$base_dn = "DC=aab,DC=abb,DC=abb";
// Verbindung zum LDAP-Server herstellen
$ldap_conn = ldap_connect($ldap_host, $ldap_port);
if (!$ldap_conn) {
echo "FEHLER: Verbindung zum LDAP-Server konnte nicht hergestellt werden.\n";
exit;
}
// LDAP-Optionen setzen
ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0);
// Anmeldung am LDAP-Server
if (!@ldap_bind($ldap_conn, $login . "@aav.abb.abb", $pswd)) {
echo "FEHLER: Anmeldung am LDAP-Server fehlgeschlagen. Überprüfen Sie Ihre Zugangsdaten.\n";
exit;
}
// Debug: Bind erfolgreich
echo "DEBUG: LDAP-Anmeldung erfolgreich.\n";
// Kombinierter Benutzer-Filter für beide Gruppen
$user_filter = "(&(objectClass=user)(sAMAccountName=" . $login . ")
(| (memberof=CN=TEST,OU=Test,OU=Test-Gruppen,DC=aab,DC=abb,DC=abb)
(memberof=CN=TEST_B,OU=Test,OU=Test-Gruppen,DC=aab,DC=abb,DC=abb)))";
// Benutzer im LDAP suchen
$search_result = ldap_search($ldap_conn, $base_dn, $user_filter, array('mail', 'displayname', 'memberof'));
// Überprüfung der Suche
if (!$search_result) {
echo "FEHLER: LDAP-Suche fehlgeschlagen.\n";
exit;
}
// Suchergebnisse abrufen
$result = ldap_get_entries($ldap_conn, $search_result);
if ($result['count'] > 0) {
echo "DEBUG: Benutzer gefunden.\n";
// Globale Variablen setzen
$usr_login = $login;
// Anzeigename prüfen und setzen
if (isset($result[0]['displayname'][0])) {
$usr_name = $result[0]['displayname'][0];
echo "DEBUG: Anzeigename: " . $usr_name . "\n";
} else {
$usr_name = $login;
echo "DEBUG: Anzeigename (Standardwert): " . $usr_name . "\n";
}
// E-Mail prüfen und setzen
if (isset($result[0]['mail'][0])) {
$usr_email = $result[0]['mail'][0];
echo "DEBUG: E-Mail: " . $usr_email . "\n";
} else {
$usr_email = '';
echo "DEBUG: E-Mail (nicht vorhanden).\n";
}
// Berechtigungen initialisieren
$can_edit_test= false;
$can_edit_test_b= false;
// Gruppen prüfen
foreach ($result[0]['memberof'] as $group) {
if (strpos($group, "CN=TEST") !== false) {
$can_edit_test= true;
}
if (strpos($group, "CN=TEST_B") !== false) {
$can_edit_test_b= true;
}
}
// Debugging der Berechtigungen
if ($can_edit_test) {
echo "DEBUG: Benutzer darf test bearbeiten.\n";
}
if ($can_edit_test_b) {
echo "DEBUG: Benutzer darf test_b bearbeiten.\n";
}
} else {
echo "Sie verfügen hierfür nicht über die erforderliche Berechtigung.\n";
sc_redir('app_testmarcelLogin');
}
// Verbindung schließen
ldap_unbind($ldap_conn);
And I want to make it so that Group Test can only change things in Application A and Group Test_B can also change as an extra in Application B. How do I do that?
Thank you in Advance