public function execute(Request $request, Response $response)
 {
     $view = new TemplateView('lookUp');
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     $view->assign('groupList', $registry->get('ldapAccess')->getGroupsDN());
     // Benutzeraktion:
     if ($request->issetParameter('lookUp')) {
         $groupname = $request->getParameter('directSelect');
         $groupDN = $registry->get('ldapAccess')->getGroupDN_2($groupname);
         $user = $sessionRegistry->get('uid');
         $userPW = $sessionRegistry->get('userPW');
         // sTeam
         $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
         if (!$steamConnector->get_login_status()) {
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Verbindung zum sTeam-Server konnte nicht erstellt werden!');
         } else {
             $ldapModule = $steamConnector->get_server_module('persistence:ldap');
             $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
             $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
             $steamGroup->get_members(0);
             // Rückmeldung
             $view->assign('status', 'ok');
             $view->assign('statusMsg', 'LookUp wurde durchgeführt!');
         }
     }
     // Ausgabe erzeugen.
     $view->render($request, $response);
 }
 public function execute(Request $request, Response $response)
 {
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view = new TemplateView('changeOwnPassword');
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     // Benutzeraktion: eigenes Passwort ändern
     if ($request->issetParameter('changePW')) {
         // Eingabedaten auf Korrektheit prüfen
         $datacorrectness = true;
         if (!$request->issetParameter('passwordOld') or !$request->issetParameter('passwordNew') or !$request->issetParameter('passwordRetype')) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Bitte alle Felder ausfüllen!');
         } elseif ($request->getParameter('passwordOld') == '' or $request->getParameter('passwordNew') == '' or $request->getParameter('passwordRetype') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Bitte alle Felder ausfüllen!');
         } elseif ($request->getParameter('passwordOld') != $sessionRegistry->get('userPW')) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Das alte Passwort war falsch!');
         } elseif ($request->getParameter('passwordNew') != $request->getParameter('passwordRetype')) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Das neue Passwort und die Bestätigung stimmen nicht überein!');
         }
         if ($datacorrectness) {
             $done = $registry->get('ldapAccess')->replaceUserData($sessionRegistry->get('uid'), 'userPassword', $request->getParameter('passwordNew'));
             if ($done) {
                 $sessionRegistry->set('userPW', $request->getParameter('passwordNew'));
                 $view->assign('status', 'ok');
                 $view->assign('statusMsg', 'Das Passwort wurde geändert!');
                 // passwort auf steam ändern
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 $ldap_module = $steamConnector->get_server_module("ldap");
                 $steamConnector->predefined_command($ldap_module, "uncache_user", array($sessionRegistry->get('uid')), 0);
             } else {
                 $view->assign('status', 'warning');
                 $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
             }
         }
     }
     // Ausgabe erzeugen
     $view->render($request, $response);
 }
 public function execute(Request $request, Response $response)
 {
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view = new TemplateView('ultimateMembershipOrganisation');
     $maxParameterIndex = $sessionRegistry->get('maxParameterIndex');
     // Benutzeraktion: neue Gruppe gewählt
     if ($request->issetParameter('chooseGroup') and $request->issetParameter('groupSelect')) {
         $sessionRegistry->set('activeGroup', $request->getParameter('groupSelect'));
     }
     // Benutzeraktion: Benutzer hinzufügen.
     if ($request->issetParameter('addUser')) {
         // eingegebenen Daten auf Korrektheit überprüfen.
         $datacorrectness = true;
         if (!$registry->get('ldapAccess')->ultimate_userExists($request->getParameter('username'))) {
             $datacorrectness = false;
         }
         if ($datacorrectness) {
             $done = $registry->get('ldapAccess')->ultimate_addUser($request->getParameter('username'), $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup')));
             if ($done === true) {
                 $view->assign('status', 'ok_2');
                 $view->assign('statusMsg', 'Der Benutzer wurde hinzugefügt!');
                 // LookUp durchführen
                 $groupDN = $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup'));
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                 $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
                 $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
                 $user = steam_factory::get_user($steamConnector, $request->getParameter('username'));
                 $steamGroup->add_member($user, 0);
                 $steamConnector->disconnect();
             } else {
                 $view->assign('status', 'warning_2');
                 $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
             }
         } else {
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Dieser Benutzer existiert nicht!');
         }
     }
     // Benutzeraktion: Benutzer aus Gruppe entfernen.
     if ($request->getParameter('remove') == 'true') {
         $unremovedUser = array();
         for ($i = 1; $i <= $maxParameterIndex; $i++) {
             if ($request->issetParameter('name' . $i)) {
                 $done = $registry->get('ldapAccess')->ultimate_removeUser($request->getParameter('name' . $i), $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup')));
                 if ($done == false) {
                     $unremovedUser[] = $request->getParameter('name' . $i);
                 } else {
                     // LookUp durchführen
                     $groupDN = $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup'));
                     $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                     $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                     $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
                     $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
                     $user = steam_factory::get_user($steamConnector, $request->getParameter('name' . $i));
                     $steamGroup->remove_member($user, 0);
                     $steamConnector->disconnect();
                 }
             }
         }
         if (count($unremovedUser) === 0) {
             $view->assign('status', 'ok');
             $view->assign('statusMsg', 'Alle markierten Benutzer wurden aus dieser Gruppe entfernt!');
         } else {
             $statusMsg = 'Folgende Benutzer konnten nicht aus der Gruppe entfernt werden:<ul>';
             foreach ($unremovedUser as $uid) {
                 $statusMsg .= '<li>' . $uid;
             }
             $statusMsg .= '</ul>Die &uuml;brigen der markierten Benutzer wurden aus dieser Gruppe entfernt!';
             $view->assign('status', 'warning');
             $view->assign('statusMsg', $statusMsg);
         }
     }
     // Template-Variablen Werte zuweisen.
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     $view->assign('groupList', $registry->get('ldapAccess')->getGroupsDN());
     if ($request->issetParameter('groupSelect')) {
         $view->assign('groupSelect', $request->getParameter('groupSelect'));
     }
     if ($sessionRegistry->get('activeGroup') != null and $sessionRegistry->get('activeGroup') != '') {
         $memberlist = array();
         $memberlist = $registry->get('ldapAccess')->ultimate_getGroupMembers($sessionRegistry->get('activeGroup'));
         $sessionRegistry->set('maxParameterIndex', count($memberlist) + 1);
         $view->assign('memberlist', $memberlist);
         if (!$request->issetParameter('chooseGroup')) {
             $view->assign('groupSelect', $sessionRegistry->get('activeGroup'));
         }
     }
     // Ausgabe erzeugen
     $view->render($request, $response);
 }
 public function execute(Request $request, Response $response)
 {
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view = new TemplateView('createGroup');
     // Benutzeraktion: neue Gruppe erstellen.
     if ($request->issetParameter('createGroup')) {
         $datacorrectness = true;
         if (!$request->issetParameter('name') or !$request->issetParameter('owner')) {
             $datacorrectness = false;
         } elseif ($request->getParameter('name') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Bitte geben Sie einen Gruppennamen an!');
         } elseif ($this->checkGroupname($request->getParameter('name')) == false) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Dieser Gruppenname kann nicht verwendet werden. Bitte verwenden Sie keine der genannten Sonderzeichen!');
         } elseif ($request->getParameter('owner') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Sie haben keinen Besitzer angegeben!');
         } elseif ($request->getParameter('owner') != '' and $registry->get('ldapAccess')->ultimate_userExists($request->getParameter('owner')) == false) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Der angegebene Benutzer existiert nicht!');
         } elseif ($request->getParameter('name') != '' and $registry->get('ldapAccess')->groupExists($request->getParameter('name'), $sessionRegistry->get('school'), $sessionRegistry->get('district')) == true) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Dieser Gruppenname existiert bereits. Bitte w&auml;hlen Sie einen anderen Namen!');
         }
         if ($datacorrectness) {
             $done = false;
             // Fall: Zu erstellende Gruppe ist eine Hauptgruppe
             if ($request->getParameter('groupType') == 'maingroup') {
                 $done = $registry->get('ldapAccess')->createGroup($request->getParameter('name'), $request->getParameter('owner'), $request->getParameter('description'));
                 if ($done != false) {
                     $view->assign('status', 'ok');
                     $view->assign('statusMsg', 'Die Gruppe wurde erfolgreich angelegt!');
                 } else {
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
                 }
             } elseif ($request->getParameter('groupType') == 'subgroup') {
                 $done = $registry->get('ldapAccess')->createGroup($request->getParameter('name'), $request->getParameter('owner'), $request->getParameter('description'), $request->getParameter('parent'));
                 if ($done !== false) {
                     $view->assign('status', 'ok');
                     $view->assign('statusMsg', 'Die Gruppe wurde erfolgreich angelegt!');
                 } else {
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
                 }
             }
             // falls gruppe erfolgreich angelegt wurde, lookUp durchführen
             if ($done) {
                 $groupDN = $registry->get('ldapAccess')->getGroupDN_2($request->getParameter('name'));
                 // sTeam
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 if (!$steamConnector->get_login_status()) {
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', 'Verbindung zum sTeam-Server konnte nicht erstellt werden.<br>Die Gruppe wurde zwar angelegt, der  LookUp jedoch nicht durchgef&uuml;hrt!');
                 } else {
                     $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                     $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
                     $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
                     $steamGroup->get_members(0);
                 }
             }
         }
     }
     // Werte den Template-Variablen zuweisen.
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     $view->assign('standardOwner', $sessionRegistry->get('uid'));
     $view->assign('groupList', $registry->get('ldapAccess')->getGroupsDN());
     // Ausgabe erzeugen.
     $view->render($request, $response);
 }
 function move_group_on_steam($groupDN, $parentDN)
 {
     // verbindung zu steam aufbauen
     $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
     // referenz auf die steam-gruppe holen
     $ldap_module = $steamConnector->get_server_module('persistence:ldap');
     $steam_groupname = $steamConnector->predefined_command($ldap_module, 'dn_to_group_name', $groupDN, 0);
     $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
     // referenz auf die neue parent-group holen
     $steam_groupname_parent_new = $steamConnector->predefined_command($ldap_module, 'dn_to_group_name', $parentDN, 0);
     $steamGroup_parent_new = steam_factory::get_group($steamConnector, $steam_groupname_parent_new, 0);
     // parent-group bestimmen
     $steamGroup_parent = $steamGroup->get_parent_group();
     // gruppe aus der alten parent-group entfernen
     $steamGroup_parent->remove_member($steamGroup);
     // gruppe der neuen parent-group hinzufügen
     $steamGroup_parent_new->add_member($steamGroup);
 }
 public function execute(Request $request, Response $response)
 {
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view = new TemplateView('changeGroupdata');
     $maxParameterIndex = $sessionRegistry->get('maxParameterIndex');
     // Benutzeraktion: neue Gruppe gewählt
     if ($request->issetParameter('chooseGroup') and $request->issetParameter('groupSelect')) {
         $sessionRegistry->set('activeGroup', $request->getParameter('groupSelect'));
     }
     // Benutzeraktion: Gruppendaten bearbeiten.
     if ($request->issetParameter('changeData')) {
         // eingegebenen Daten auf Korrektheit überprüfen.
         $datacorrectness = true;
         if ($request->issetParameter('groupname') == false or $request->issetParameter('owner') == false) {
             $datacorrectness = false;
         } elseif ($request->getParameter('groupname') == '' or $request->getParameter('owner') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Bitte geben Sie alle benötigten Daten ein!');
         } elseif ($request->getParameter('groupname') != '' and $request->getParameter('groupname') != $sessionRegistry->get('activeGroup') and $registry->get('ldapAccess')->groupExists($request->getParameter('groupname'), $sessionRegistry->get('school'), $sessionRegistry->get('district')) == true) {
             $datacorrectness = false;
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Dieser Gruppenname existiert bereits. Bitte w&auml;hlen Sie einen anderen Namen!');
         } elseif ($request->getParameter('owner') != '' and $registry->get('ldapAccess')->ultimate_userExists($request->getParameter('owner')) == false) {
             $datacorrectness = false;
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Der als Besitzer angegebene Benutzername existiert nicht!');
         } elseif ($request->getParameter('parent') == $sessionRegistry->get('activeGroup')) {
             $datacorrectness = false;
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Eine Gruppe kann nicht sich selbst als Elterngruppe haben!');
         } elseif ($request->getParameter('parent') != $registry->get('ldapAccess')->getParentGroupname($sessionRegistry->get('activeGroup')) and $registry->get('ldapAccess')->hasSubgroups($sessionRegistry->get('activeGroup'))) {
             $datacorrectness = false;
             $view->assign('status', 'warning_2');
             $view->assign('statusMsg', 'Diese Gruppe besitzt noch Untergruppen, und kann daher keiner neuen Elterngruppe zugeordnet werden!');
         }
         /*
         // falls die gruppe umbenannt wurde, auf steam-seite aktualisieren
         if($datacorrectness AND $request->getParameter('groupname') != $sessionRegistry->get('activeGroup')){
         	
         	$groupDN_new = str_replace('cn='.$sessionRegistry->get('activeGroup'), 'cn='.$request->getParameter('groupname') ,$registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup')));
         	$groupDN_old = $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup'));
         	
         	// verbindung zu steam aufbauen
         	$steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
         	
         	// neuen steam-namen der gruppe ermitteln
         	$ldap_module = $steamConnector->get_server_module('persistence:ldap');					
         	$steam_groupname_new = $steamConnector->predefined_command($ldap_module, 'dn_to_group_name', $groupDN_new, 0);
         	$steam_groupname_old = $steamConnector->predefined_command($ldap_module, 'dn_to_group_name', $groupDN_old, 0);
         	
         	echo 'alter steam_name: '.$steam_groupname_old.'<br>';
         	echo 'neuer steam_name: '.$request->getParameter('groupname').'<br>';
         	
         	$steamGroup = steam_factory::get_group($steamConnector, $steam_groupname_old, 0);
         	echo $steamGroup->set_name($request->getParameter('groupname'), 0);
         }
         */
         if ($datacorrectness) {
             $data = array();
             $data['groupname'] = $request->getParameter('groupname');
             $data['owner'] = $request->getParameter('owner');
             $data['description'] = $request->getParameter('description');
             $data['parent'] = $request->getParameter('parent');
             $done = $registry->get('ldapAccess')->setGroupInformation($sessionRegistry->get('activeGroup'), $data);
             if ($done === true) {
                 $view->assign('status', 'ok_2');
                 $view->assign('statusMsg', 'Die Daten wurden ge&auml;ndert!');
             } else {
                 $view->assign('status', 'warning_2');
                 $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
             }
         }
     }
     if ($request->issetParameter('performAction')) {
         if ($request->issetParameter('actionSelect')) {
             // Benutzeraktion: Benutzer aus Gruppe entfernen.
             if ($request->getParameter('actionSelect') == 'remove') {
                 $unremovedUser = array();
                 $groupDN = $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup'));
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                 $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
                 $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
                 for ($i = 1; $i <= $maxParameterIndex; $i++) {
                     if ($request->issetParameter('name' . $i)) {
                         $done = $registry->get('ldapAccess')->unsetUserData($request->getParameter('name' . $i), 'membership', $sessionRegistry->get('activeGroup'));
                         if ($done == false) {
                             $unremovedUser[] = $request->getParameter('name' . $i);
                         } else {
                             $user = steam_factory::get_user($steamConnector, $request->getParameter('name' . $i));
                             $steamGroup->remove_member($user, 0);
                         }
                     }
                 }
                 $steamConnector->disconnect();
                 if (count($unremovedUser) === 0) {
                     $view->assign('status', 'ok');
                     $view->assign('statusMsg', 'Alle markierten Benutzer wurden aus dieser Gruppe entfernt!');
                 } else {
                     $statusMsg = 'Folgende Benutzer konnten nicht aus der Gruppe entfernt werden:<ul>';
                     foreach ($unremovedUser as $uid) {
                         $statusMsg .= '<li>' . $uid;
                     }
                     $statusMsg .= '</ul>Die &uuml;brigen der markierten Benutzer wurden aus dieser Gruppe entfernt!';
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', $statusMsg);
                 }
             } elseif ($request->getParameter('actionSelect') == 'add') {
                 $unaddedUser = array();
                 $groupDN = $registry->get('ldapAccess')->getGroupDN_2($request->getParameter('targetGroup'));
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                 $steam_groupname = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN, 0);
                 $steamGroup = steam_factory::get_group($steamConnector, $steam_groupname, 0);
                 for ($i = 1; $i <= $maxParameterIndex; $i++) {
                     if ($request->issetParameter('name' . $i)) {
                         if ($request->issetParameter('targetGroup')) {
                             $done = $registry->get('ldapAccess')->setUserData($request->getParameter('name' . $i), 'membership', $request->getParameter('targetGroup'));
                             if ($done == false) {
                                 $unaddedUser[] = $request->getParameter('name' . $i);
                             } else {
                                 $user = steam_factory::get_user($steamConnector, $request->getParameter('name' . $i));
                                 $steamGroup->add_member($user, 0);
                             }
                         }
                     }
                 }
                 $steamConnector->disconnect();
                 if (count($unaddedUser) === 0) {
                     $view->assign('status', 'ok');
                     $view->assign('statusMsg', 'Alle markierten Benutzer wurden der Gruppe "' . $request->getParameter('targetGroup') . '" hinzugef&uuml;gt!');
                 } else {
                     $statusMsg = 'Folgende Benutzer konnten der Gruppe "' . $request->getParameter('targetGroup') . '" nicht hinzugef&uuml;gt werden:<ul>';
                     foreach ($unaddedUser as $uid) {
                         $statusMsg .= '<li>' . $uid;
                     }
                     $statusMsg .= '</ul>';
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', $statusMsg);
                 }
             } elseif ($request->getParameter('actionSelect') == 'move') {
                 $unmovedUser = array();
                 $groupDN_old = $registry->get('ldapAccess')->getGroupDN_2($sessionRegistry->get('activeGroup'));
                 $groupDN_new = $registry->get('ldapAccess')->getGroupDN_2($request->getParameter('targetGroup'));
                 $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                 $ldapModule = $steamConnector->get_server_module('persistence:ldap');
                 $steam_groupname_old = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN_old, 0);
                 $steam_groupname_new = $steamConnector->predefined_command($ldapModule, 'dn_to_group_name', $groupDN_new, 0);
                 $steamGroup_old = steam_factory::get_group($steamConnector, $steam_groupname_old, 0);
                 $steamGroup_new = steam_factory::get_group($steamConnector, $steam_groupname_new, 0);
                 for ($i = 1; $i <= $maxParameterIndex; $i++) {
                     if ($request->issetParameter('name' . $i)) {
                         if ($sessionRegistry->get('activeGroup') != 'Gruppenlos') {
                             $done = $registry->get('ldapAccess')->unsetUserData($request->getParameter('name' . $i), 'membership', $sessionRegistry->get('activeGroup'));
                         }
                         $done2 = $registry->get('ldapAccess')->setUserData($request->getParameter('name' . $i), 'membership', $request->getParameter('targetGroup'));
                         if ($done == false or $done2 == false) {
                             $unremovedUser[] = $request->getParameter('name' . $i);
                         } else {
                             $user = steam_factory::get_user($steamConnector, $request->getParameter('name' . $i));
                             $steamGroup_old->remove_member($user, 0);
                             $steamGroup_new->add_member($user, 0);
                         }
                     }
                 }
                 if (count($unmovedUser) === 0) {
                     $view->assign('status', 'ok');
                     $view->assign('statusMsg', 'Alle markierten Benutzer wurden in die Gruppe "' . $request->getParameter('targetGroup') . '" verschoben!');
                 } else {
                     $statusMsg = 'Folgende Benutzer konnten nicht in die Gruppe verschoben werden:<ul>';
                     foreach ($unremovedUser as $uid) {
                         $statusMsg .= '<li>' . $uid;
                     }
                     $statusMsg .= '</ul>Die &uuml;brigen der markierten Benutzer wurden verschoben!';
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', $statusMsg);
                 }
             }
         }
     }
     // Template-Variablen Werte zuweisen.
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     $view->assign('groupList', $registry->get('ldapAccess')->getGroupsDN());
     $view->assign('groupList2', $registry->get('ldapAccess')->getGroupsDN());
     $view->assign('targetGroupList', $registry->get('ldapAccess')->getGroupsDN());
     if ($request->issetParameter('groupSelect')) {
         $view->assign('groupSelect', $request->getParameter('groupSelect'));
     }
     if ($sessionRegistry->get('activeGroup') != null and $sessionRegistry->get('activeGroup') != '') {
         $view->assign('groupdata', $registry->get('ldapAccess')->getGroupInformation($sessionRegistry->get('activeGroup')));
         if ($sessionRegistry->get('activeGroup') == 'Gruppenlos') {
             $memberlist = array();
             //$memberlist = $registry->get('ldapAccess')->search('', $sessionRegistry->get('activeGroup'));
             $memberlist = $registry->get('ldapAccess')->getGroupMembers('Gruppenlos');
             $sessionRegistry->set('maxParameterIndex', count($memberlist) + 1);
             $view->assign('memberlist', $memberlist);
         } else {
             $memberlist = array();
             $memberlist = $registry->get('ldapAccess')->getGroupMembers($sessionRegistry->get('activeGroup'));
             $sessionRegistry->set('maxParameterIndex', count($memberlist) + 1);
             $view->assign('memberlist', $memberlist);
         }
         if (!$request->issetParameter('chooseGroup')) {
             $view->assign('groupSelect', $sessionRegistry->get('activeGroup'));
         }
     }
     // Ausgabe erzeugen
     $view->render($request, $response);
 }
 public function execute(Request $request, Response $response)
 {
     $sessionRegistry = SessionRegistry::getInstance();
     $registry = Registry::getInstance();
     $view = new TemplateView('changePassword');
     // Variablen der Template-Dateien Wrte zuweisen.
     $view->assign('accessLevel', $sessionRegistry->get('accessLevel'));
     $view->assign('groupList', $registry->get('ldapAccess')->getGroupsDN());
     // Benutzeraktion: fremdes Passwort ändern
     if ($request->issetParameter('changePW')) {
         // Eingabedaten auf Korrektheit prüfen
         $datacorrectness = true;
         if (!$request->issetParameter('name') or $request->getParameter('name') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Sie haben keinen Benutzernamen angegeben!');
         } elseif (!$registry->get('ldapAccess')->userExists($request->getParameter('name'))) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Der angegebene Benutzer existiert nicht an dieser Schule!');
         } elseif (!$request->issetParameter('passwordNew') or !$request->issetParameter('passwordRetype') or $request->getParameter('passwordNew') == '' or $request->getParameter('passwordRetype') == '') {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Sie haben kein neues Passwort angegeben!');
         } elseif ($request->getParameter('passwordNew') != $request->getParameter('passwordRetype')) {
             $datacorrectness = false;
             $view->assign('status', 'warning');
             $view->assign('statusMsg', 'Das neue Passwort und die Best&auml;tigung stimmen nicht &uuml;berein!');
         }
         if ($datacorrectness) {
             // Email-Adresse des Benutzers ermitteln
             $data = array();
             $data = $registry->get('ldapAccess')->getUserInformation($request->getParameter('name'));
             if (isset($data['email'])) {
                 $email = $data['email'];
             } else {
                 $email = '';
             }
             // Fall: Es wurde eine Email-Adresse ermittelt und ein zufälliges Passwort generiert.
             if ($request->issetParameter('randomPW') and $email != '') {
                 $newPW = $this->randomPW();
                 $done = $registry->get('ldapAccess')->replaceUserData($request->getParameter('name'), 'userPassword', $newPW);
                 if ($done != false) {
                     $status = $this->mailPW($email, $newPW);
                     if ($status) {
                         $view->assign('status', 'ok');
                         $view->assign('statusMsg', 'Das Passwort wurde ge&auml;ndert!');
                     } else {
                         $view->assign('status', 'warning');
                         $view->assign('statusMsg', 'Das Passwort wurde ge&auml;ndert, allerdings konnte die Email nicht versendet werden.');
                     }
                     // passwort auf steam ändern
                     $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                     $ldap_module = $steamConnector->get_server_module("ldap");
                     $steamConnector->predefined_command($ldap_module, "uncache_user", array($request->getParameter('name')), 0);
                 } else {
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
                 }
             } elseif ($request->issetParameter('randomPW') and $email == '') {
                 $view->assign('status', 'warning');
                 $view->assign('statusMsg', 'Dieser Benutzer hat keine Email-Adresse angegeben. Deswegen kann kein zuf&auml;lliges Passwort generiert werden!');
             } elseif (!$request->issetParameter('randomPW')) {
                 $done = $registry->get('ldapAccess')->replaceUserData($request->getParameter('name'), 'userPassword', $request->getParameter('passwordNew'));
                 if ($done != false) {
                     if ($request->issetParameter('mail')) {
                         $mailStatus = $this->mailPW($request->getParameter('name'), $request->getParameter('passwordNew'));
                     }
                     if ($request->issetParameter('mail') and $mailStatus == true) {
                         $view->assign('status', 'ok');
                         $view->assign('statusMsg', 'Das Passwort wurde ge&auml;ndert und per Mail an den Benutzer gesendet!');
                     } elseif ($request->issetParameter('mail') and $mailStatus == false) {
                         $view->assign('status', 'warning');
                         $view->assign('statusMsg', 'Das Passwort wurde ge&auml;ndert jedoch hatte der Benutzer keine Email-Adresse angegeben!');
                     } elseif (!$request->issetParameter('mail')) {
                         $view->assign('status', 'ok');
                         $view->assign('statusMsg', 'Das Passwort wurde ge&auml;ndert!');
                     }
                     // passwort auf steam ändern
                     $steamConnector = new steam_connector('localhost', 1900, 'root', 'h6518_W#');
                     $ldap_module = $steamConnector->get_server_module("ldap");
                     $steamConnector->predefined_command($ldap_module, "uncache_user", array($request->getParameter('name')), 0);
                 } else {
                     $view->assign('status', 'warning');
                     $view->assign('statusMsg', 'Systemfehler: LDAP-Kommando fehlgeschlagen!');
                 }
             }
         }
     }
     // Benutzeraktion: Suche nach Benutzernamen
     if ($request->issetParameter('userSearch')) {
         // Daten der SessionRegistry aktualisieren.
         if ($request->issetParameter('namefilter') and $request->issetParameter('namefilter') != '') {
             $sessionRegistry->set('activeNamefilter', $request->getParameter('namefilter'));
         } else {
             $sessionRegistry->set('activeNamefilter', '*');
         }
         $sessionRegistry->set('activeGroup', $request->getParameter('groupSelect'));
     }
     if ($sessionRegistry->get('activeGroup') != null) {
         $view->assign('namefilter', $sessionRegistry->get('activeNamefilter'));
         $view->assign('groupSelect', $sessionRegistry->get('activeGroup'));
         $view->assign('results', $registry->get('ldapAccess')->search($sessionRegistry->get('activeNamefilter'), $sessionRegistry->get('activeGroup')));
     }
     // Ausgabe erzeugen
     $view->render($request, $response);
 }
Ejemplo n.º 8
0
function get_document_data($login, $password, $identifier, $identifier_type, $width = false, $height = false)
{
    $STEAM = new steam_connector(STEAM_SERVER, STEAM_PORT, $login, $password);
    if ($identifier_type === "name") {
        $document = $STEAM->predefined_command($STEAM->get_module("icons"), "get_icon_by_name", array((string) $identifier), 0);
    } else {
        if ($identifier_type === "id") {
            $document = steam_factory::get_object($STEAM->get_id(), (int) $identifier);
        }
    }
    // If user is not logged in, open login dialog. If user is logged in
    // and not guest, then display "Access denied" message.
    if (!$document->check_access_read($STEAM->get_current_steam_user())) {
        if ($login == 'guest') {
            throw new Exception("Access denied. Please login.", E_USER_AUTHORIZATION);
        } else {
            throw new Exception("Access denied.", E_USER_RIGHTS);
        }
    }
    if (!is_object($document)) {
        return array("content" => array());
    }
    // array is considered to be an error
    $document->get_attributes(array("OBJ_NAME", "DOC_MIME_TYPE", "DOC_LAST_MODIFIED"), TRUE);
    if (!$width && !$height) {
        //$tnr_content = $document->get_content(TRUE);  // workaround: get data from sTeam webinterface
        $tnr_contentsize = $document->get_content_size(TRUE);
    } else {
        $tnr_imagecontent = $document->get_thumbnail_data($width, $height, 0, TRUE);
    }
    $result = $STEAM->buffer_flush();
    if (isset($tnr_imagecontent)) {
        // handle thumbnail data
        $data["mimetype"] = $result[$tnr_imagecontent]["mimetype"];
        $data["lastmodified"] = $result[$tnr_imagecontent]["timestamp"];
        $data["name"] = $result[$tnr_imagecontent]["name"];
        $data["content"] = $result[$tnr_imagecontent]["content"];
        $data["contentsize"] = $result[$tnr_imagecontent]["contentsize"];
    } else {
        if ($identifier_type === "id") {
            $data["mimetype"] = $document->get_attribute("DOC_MIME_TYPE");
            $data["lastmodified"] = $document->get_attribute("DOC_LAST_MODIFIED");
            $data["name"] = $document->get_name();
            $data["contentsize"] = $result[$tnr_contentsize];
            //$data["content"]     = $result[$tnr_content];  // workaround: get data from sTeam webinterface
            // workaround: get content from sTeam webinterface, because
            //$data["content"] = $document->get_content();
            //   results in *huge* memory overheads (a 15 MB download fails with 60 MB scrip memory limit!
            if (defined("LOG_DEBUGLOG")) {
                $time1 = microtime(TRUE);
                logging::write_log(LOG_DEBUGLOG, "get_document::get_document_data(" . $login . ", *****" . ", " . $identifier . ", " . $identifier_type . ", false, false)\t " . $login . " \t" . $identifier . " \t" . $document->get_name() . " \t" . $data["contentsize"] . " Bytes \t... ");
            }
            $https_port = (int) $STEAM->get_config_value("https_port");
            if ($https_port == 443 || $https_port == 0) {
                $https_port = "";
            } else {
                $https_port = ":" . (string) $https_port;
            }
            $ch = curl_init("https://" . STEAM_SERVER . $https_port . "/scripts/get.pike?object=" . $identifier);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
            curl_setopt($ch, CURLOPT_USERPWD, $login . ":" . $password);
            $data["content"] = curl_exec($ch);
            curl_close($ch);
            if (defined("LOG_DEBUGLOG")) {
                logging::append_log(LOG_DEBUGLOG, " \t" . round((microtime(TRUE) - $time1) * 1000) . " ms");
            }
        } else {
            $data = array("content" => array());
            // array is considered an error
        }
    }
    return $data;
}