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);
 }
예제 #2
0
파일: checkconfig.php 프로젝트: rolwi/koala
function check_steam_group($group_name, $parent_group_name = NULL, $description = NULL, $fix = FALSE)
{
    $parent_group = NULL;
    if (is_string($parent_group_name)) {
        $parent_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), $parent_group_name);
        if (!is_object($parent_group)) {
            echo "Error: could not find parent group '" . $parent_group_name . "' for group '" . $group_name . "'.\n";
            return FALSE;
        }
    }
    $group_fullname = (is_string($parent_group_name) ? $parent_group_name . "." : "") . $group_name;
    $group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), $group_fullname);
    if (is_object($group)) {
        return $group;
    }
    if (!$fix) {
        echo "Error";
        return FALSE;
    }
    $group = steam_factory::create_group($GLOBALS["STEAM"]->get_id(), $group_name, $parent_group, NULL, $description);
    if (is_object($group)) {
        echo "Created group '" . $group_fullname . "'.\n";
    } else {
        echo "Error: could not create group '" . $group_fullname . "'.\n";
    }
    return $group;
}
예제 #3
0
 static function make_role($user_id, $context)
 {
     if (self::is_role($user_id, $context)) {
         return;
     }
     $admin_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "Admin");
     $user = steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $user_id);
     $admin_group->add_member($user);
 }
예제 #4
0
 function remove_role()
 {
     $course_group_id = $this->get_context()->get_context_object();
     $course_group = steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $course_group_id);
     $course_group_staff = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), $course_group->get_groupname() . ".staff");
     $GLOBALS["USERMANAGEMENT_DATA_ACCESS"]->removeUserFromGroup($this->get_userID(), $course_group_staff->get_id());
     $cache = get_cache_function($course_group_staff->get_id());
     $cache->drop("lms_steam::group_get_members", $course_group_staff->get_id());
 }
 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);
 }
예제 #7
0
 public function getCellData($cell, $contentItem)
 {
     if (!is_int($cell)) {
         throw new \Exception("cell must be an integer!!");
     }
     if ($cell == $this->rawCheckbox) {
         return "<input style=\"margin-top:-4px\" type=\"checkbox\" onclick=\"event.stopPropagation(); if(this.checked) { jQuery('#{$contentItem->get_id()}').removeClass('listviewer-item-unhover').addClass('listviewer-item-selected') } else { jQuery('#{$contentItem->get_id()}').removeClass('listviewer-item-selected').addClass('listviewer-item-unhover') }\"></input>";
     } else {
         if ($cell == $this->rawImage) {
             return "<img src=\"" . PATH_URL . "explorer/asset/icons/mimetype/" . deriveIcon($contentItem->get_link_object()) . "\"></img>";
         } else {
             if ($cell == $this->rawName) {
                 $url = \ExtensionMaster::getInstance()->getUrlForObjectId($contentItem->get_link_object()->get_id(), "view");
                 $desc = $contentItem->get_link_object()->get_attribute("OBJ_DESC");
                 if (!($desc === false || $desc === 0 || $desc === "")) {
                     $name = $desc;
                 } else {
                     $name = str_replace("%20", " ", $contentItem->get_link_object()->get_name());
                 }
                 if ($name == "Trashbin") {
                     $name = "Papierkorb";
                 }
                 if (isset($url) && $url != "") {
                     return "<a href=\"" . $url . "\" title=\"{$desc}\"> " . $name . "</a>";
                 } else {
                     return $name;
                 }
             } else {
                 if ($cell == $this->rawMarker) {
                     $html = "";
                     if ($contentItem->get_link_object()->check_access_read(\steam_factory::get_user($GLOBALS["STEAM"]->get_id(), STEAM_GUEST_LOGIN)) || $contentItem->get_link_object()->check_access_read(\steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "steam"))) {
                         $html .= "<img onclick=\"event.stopPropagation(); this.src='" . PATH_URL . "bookmarks/asset/icons/star_inactive_16.png' \" style=\"cursor: pointer\" title=\"Öffentlich lesbar.\" src=\"" . PATH_URL . "explorer/asset/icons/public_16.png\"></img>";
                     }
                     //$html .= "<img onclick=\"event.stopPropagation(); this.src='".PATH_URL."bookmarks/asset/icons/star_inactive_16.png' \" style=\"cursor: pointer\" title=\"Als Lesezeichen markiert.\" src=\"".PATH_URL."bookmarks/asset/icons/star_16.png\"></img>";
                     return $html;
                 } else {
                     if ($cell == $this->rawChangeDate) {
                         return getReadableDate($contentItem->get_link_object()->get_attribute("OBJ_LAST_CHANGED"));
                     } else {
                         if ($cell == $this->rawSize) {
                             if ($contentItem->get_link_object() instanceof \steam_document) {
                                 return getReadableSize($contentItem->get_link_object()->get_content_size());
                             } else {
                                 if ($contentItem->get_link_object() instanceof \steam_container) {
                                     try {
                                         $html = "<div style=\"color: #ccc\">" . count($contentItem->get_link_object()->get_inventory()) . " Objekte</div>";
                                     } catch (\steam_exception $e) {
                                         $html = "keine Berechtigung";
                                     }
                                     return $html;
                                 }
                             }
                         } else {
                             if ($cell == $this->rawMenu) {
                                 $popupMenu = new \Widgets\PopupMenu();
                                 $popupMenu->setData($contentItem);
                                 $popupMenu->setElementId("listviewer-overlay");
                                 return $popupMenu;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
예제 #8
0
 public function createCourse($id, $courseID, $customerID)
 {
     $user = lms_steam::get_current_user();
     $all_users = steam_factory::groupname_to_object($GLOBALS["STEAM"]->get_id(), STEAM_ALL_USER);
     $current_semester = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "Courses." . $this->getObjectName($customerID));
     $elearning_course = elearning_mediathek::get_instance()->get_elearning_course_by_id($courseID);
     $name = $elearning_course->get_name();
     $new_course = steam_factory::create_group($GLOBALS["STEAM"]->get_id(), $id, $current_semester, FALSE, $name);
     $icon_id = steam_factory::get_object_by_name($GLOBALS["STEAM"]->get_id(), "/packages/elearning_stahl_verkauf/icon_verkauf.jpg")->get_id();
     $new_course->set_attributes(array("OBJ_TYPE" => "course", "COURSE_PARTICIPANT_MNGMNT" => 0, "COURSE_SEMESTER" => $this->getObjectName($customerID), "COURSE_TUTORS" => "", "COURSE_SHORT_DSC" => $elearning_course->get_description(), "COURSE_LONG_DSC" => "[img]" . PATH_SERVER . "/cached/get_document.php?id={$icon_id}&height=100[/img]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIn dieser Schulung möchten wir Ihnen die notwendigen Kenntnisse vermitteln, wie Sie ein Verkaufsgespräch gut führen – beginnend mit dem Blickkontakt, wenn eine Kundin oder ein Kunde Ihr Geschäft betritt, bis hin zur Verabschiedung, mit der Sie den Kunden hoffentlich mit dem Gefühl verabschieden, dass er bald wiederkommen wird.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOberhalb dieses Textes befindet sich eine Registerkarte »Lektionen«, über die Sie sich zunächst die Schulungsinhalte aneignen können. Auf diese Inhalte haben Sie jederzeit Zugriff; Sie können die Inhalte so oft durcharbeiten, wie Sie wünschen. Und Sie können dies von jedem an das Internet angeschlossenen Computer aus, also beispielsweise auch von zu Hause.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUm zu zeigen, dass Sie die Inhalte beherrschen, müssen Sie an einem Test teilnehmen. Dieser Test wird zu einem bestimmten Termin für Sie freigeschaltet. Sie erhalten dann zu gegebener Zeit eine Mitteilung, dass Sie zu dem Test zugelassen sind. Neben der Registerkarte, mit der Sie zu den Schulungsinhalten gelangen, finden Sie dann eine zusätzliche Registerkarte, mit der Sie den Test ablegen können.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSollten Sie auf Probleme stoßen – seien es technische, inhaltliche oder Fragen zur Benutzung dieses Systems – finden Sie Hilfe am oberen Rand dieser Seite. Außerdem können Sie jederzeit Kontakt zu Ihrem Ansprechpartner aufnehmen, der Ihnen gerne weiterhelfen wird.", "COURSE_HISLSF_ID" => "", "ACTIVATED_FOR_CUSTOMER" => $customerID));
     $learners = steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "learners", $new_course, FALSE, "Participants of course '" . $name . "'");
     $learners->set_attribute("OBJ_TYPE", "course_learners");
     $staff = steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "staff", $new_course, FALSE, "Tutors of course '" . $name . "'");
     $staff->set_attribute("OBJ_TYPE", "course_staff");
     $admins = steam_factory::create_group($GLOBALS["STEAM"]->get_id(), "admins", $new_course, FALSE, "Admins of course '" . $name . "'");
     $admins->set_attribute("OBJ_TYPE", "course_admins");
     //$staff->add_member( $user );
     // RIGHTS MANAGEMENT =======================================
     $course_calendar = $new_course->get_calendar();
     $learners_workroom = $learners->get_workroom();
     $course_workroom = $new_course->get_workroom();
     $staff->set_sanction_all($staff);
     $staff->sanction_meta(SANCTION_ALL, $staff);
     $learners->set_sanction_all($staff);
     $learners->sanction_meta(SANCTION_ALL, $staff);
     $new_course->set_sanction_all($staff);
     $new_course->sanction_meta(SANCTION_ALL, $staff);
     $admins->set_sanction_all($admins);
     $admins->sanction_meta(SANCTION_ALL, $admins);
     $staff->set_sanction_all($admins);
     $staff->sanction_meta(SANCTION_ALL, $admins);
     $learners->set_sanction_all($admins);
     $learners->sanction_meta(SANCTION_ALL, $admins);
     $new_course->set_sanction_all($admins);
     $new_course->sanction_meta(SANCTION_ALL, $admins);
     $course_calendar->set_acquire(FALSE);
     $course_calendar->set_sanction_all($staff);
     $course_calendar->sanction_meta(SANCTION_ALL, $staff);
     $course_calendar->set_sanction_all($admins);
     $course_calendar->sanction_meta(SANCTION_ALL, $admins);
     $course_calendar->set_read_access($learners, TRUE);
     $course_calendar->set_write_access($new_course, FALSE);
     $course_calendar->set_insert_access($new_course, FALSE);
     $course_calendar->set_insert_access($all_users, FALSE);
     // Course workroom
     $course_workroom->set_sanction($new_course, SANCTION_READ | SANCTION_EXECUTE | SANCTION_ANNOTATE);
     $course_workroom->set_sanction_all($staff);
     $course_workroom->set_sanction_all($admins);
     $course_workroom->sanction_meta(SANCTION_ALL, $staff);
     $course_workroom->sanction_meta(SANCTION_ALL, $admins);
     // Learners workroom
     $learners_workroom->set_read_access($all_users, TRUE);
     $learners_workroom->set_sanction($learners, SANCTION_READ | SANCTION_EXECUTE | SANCTION_ANNOTATE);
     $learners_workroom->set_sanction_all($staff);
     $learners_workroom->set_sanction_all($admins);
     $learners_workroom->sanction_meta(SANCTION_ALL, $staff);
     $learners_workroom->sanction_meta(SANCTION_ALL, $admins);
     $koala_course = new koala_group_course($new_course);
     $koala_course->set_access(1, $learners, $staff, $admins, KOALA_GROUP_ACCESS);
     $new_course->set_attributes(array("COURSE_UNITS_ENABLED" => "TRUE", "UNITS_DOCPOOL_ENABLED" => "TRUE", "UNITS_ELEARNING_ENABLED" => "TRUE", "UNITS_MEDIATHING_ENABLED" => "FALSE", "UNITS_ORGANIZATION_ENABLED" => "FALSE", "UNITS_VIDEOSTREAMING_ENABLED" => "FALSE"));
     // create unit elearning
     $env = $koala_course->get_workroom();
     $new_unit_elearning_course = steam_factory::create_container($GLOBALS["STEAM"]->get_id(), $elearning_course->get_name(), $env, $elearning_course->get_description());
     $new_unit_elearning_course->set_attributes(array("UNIT_TYPE" => "units_elearning", "OBJ_TYPE" => "elearning_unit_koala", "UNIT_DISPLAY_TYPE" => gettext("units_elearning"), "ELEARNING_UNIT_ID" => $courseID));
     return true;
 }
예제 #9
0
             $course_tutors = $course["COURSE_TUTORS"];
         }
     }
 }
 if ($no_user_courses > 0) {
     foreach ($user_courses as $user_course) {
         $debug_info = $debug_info . " # " . "User course object name: " . $user_course["OBJ_NAME"];
         if ($user_course["OBJ_NAME"] == $membership["OBJ_NAME"]) {
             echo "<id>" . $user_course["OBJ_NAME"] . "</id>" . "\n";
             echo "<title><![CDATA[" . $user_course["COURSE_NAME"] . "]]></title>" . "\n";
             echo "<tutors><![CDATA[" . $course_tutors . "]]></tutors>" . "\n";
             echo "<semester><![CDATA[" . $user_course["SEMESTER_NAME"] . "]]></semester>" . "\n";
             echo "<link><![CDATA[" . $user_course["COURSE_LINK"] . "]]></link>" . "\n";
             $group_name = "Courses." . $user_course["SEMESTER_NAME"] . "." . $membership["OBJ_NAME"] . ".learners";
             $debug_info = $debug_info . " # " . "Group name path: " . $group_name;
             $courses_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), $group_name);
             $no_courses_group = count($courses_group);
             $debug_info = $debug_info . " # " . "Number of found course groups: " . $no_courses_group;
             $debug_info = $debug_info . " # " . "Course group object: " . is_object($courses_group);
             if ($no_courses_group > 0 && is_object($courses_group)) {
                 $workroom = $courses_group->get_workroom();
                 $inventory = $workroom->get_inventory(CLASS_CONTAINER);
                 $no_inventory = $workroom->count_inventory();
                 $debug_info = $debug_info . " # " . "Number of found course group workroom inventory: " . $no_inventory;
                 if ($no_inventory > 0) {
                     echo "<extension>" . "\n";
                     foreach ($inventory as $category) {
                         echo "<lection id=\"" . $category->get_id() . "\" name=\"" . $category->get_attribute(OBJ_NAME) . "\" description=\"" . $category->get_attribute(OBJ_DESC) . "\" creation_time=\"" . $category->get_attribute(OBJ_CREATION_TIME) . "\" last_changed=\"" . $category->get_attribute(OBJ_LAST_CHANGED) . "\">" . "\n";
                         /*
                         												//only for testing
                         echo "<LECTION_ID>" . $category->get_id() . "</LECTION_ID>";
예제 #10
0
<?php

include_once "../etc/koala.conf.php";
include_once PATH_LIB . "url_handling.inc.php";
include_once PATH_LIB . "format_handling.inc.php";
if (!isset($portal)) {
    $portal = lms_portal::get_instance();
    $portal->initialize(GUEST_NOT_ALLOWED);
} else {
    $portal->set_guest_allowed(GUEST_NOT_ALLOWED);
}
$user = lms_steam::get_current_user();
$admin_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "admin");
if (!is_object($admin_group) || !$admin_group->is_member($user)) {
    include "no_access.php";
    exit;
}
$extension_manager = lms_steam::get_extensionmanager();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST["enable"]) && is_array($_POST["enable"])) {
        $extension_manager->enable_extension(key($_POST["enable"]));
        header("Location: " . PATH_URL . "extensions_index.php");
        exit;
    }
    if (isset($_POST["disable"]) && is_array($_POST["disable"])) {
        $extension_manager->disable_extension(key($_POST["disable"]));
        header("Location: " . PATH_URL . "extensions_index.php");
        exit;
    }
} else {
    if (empty($_GET["extension"])) {
예제 #11
0
 public function user_get_profile_privacy($login, $is_privacy_page = FALSE)
 {
     $steam_user = steam_factory::username_to_object($GLOBALS["STEAM"]->get_id(), $login);
     $privacy_object = $steam_user->get_attribute("KOALA_PRIVACY");
     $user = lms_steam::get_current_user();
     $my_profile = $user->get_id() == $steam_user->get_id();
     $admin_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "admin");
     $isAdmin = is_object($admin_group) && $admin_group->is_member($user);
     if ($privacy_object instanceof steam_object && ($is_privacy_page || !$my_profile && !$isAdmin)) {
         $query = array("PRIVACY_STATUS", "PRIVACY_GENDER", "PRIVACY_FACULTY", "PRIVACY_MAIN_FOCUS", "PRIVACY_WANTS", "PRIVACY_HAVES", "PRIVACY_ORGANIZATIONS", "PRIVACY_HOMETOWN", "PRIVACY_OTHER_INTERESTS", "PRIVACY_LANGUAGES", "PRIVACY_CONTACTS", "PRIVACY_GROUPS", "PRIVACY_EMAIL", "PRIVACY_ADDRESS", "PRIVACY_TELEPHONE", "PRIVACY_PHONE_MOBILE", "PRIVACY_WEBSITE", "PRIVACY_ICQ_NUMBER", "PRIVACY_MSN_IDENTIFICATION", "PRIVACY_AIM_ALIAS", "PRIVACY_YAHOO_ID", "PRIVACY_SKYPE_NAME");
         return $privacy_object->get_attributes($query);
     } else {
         return array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
     }
 }
예제 #12
0
 public function get_subgroup_by_name($subgroup_name)
 {
     return steam_factory::get_group($this->steam_connectorID, $this->get_groupname() . '.' . $subgroup_name);
 }
예제 #13
0
파일: bid_idcard.php 프로젝트: rolwi/koala
$steam = new steam_connector($config_server_ip, $config_server_port, $login_name, $login_pwd);
if (!$steam || !$steam->get_login_status()) {
    header("Location: {$config_webserver_ip}/index.html");
    exit;
}
if ($login_name == "guest") {
    print "Visitenkarten können nur von angemeldeten Benutzern eingesehen werden.";
    return;
}
if ($user_id !== 0) {
    $user = steam_factory::get_user($steam, $user_id);
    $user_data = $user->get_attributes(array(OBJ_NAME, OBJ_DESC, USER_FIRSTNAME, USER_FULLNAME, USER_EMAIL, USER_ADRESS, OBJ_ICON, "bid:user_callto", "bid:user_im_adress", "bid:user_im_protocol"));
    //    $user_email_forwarding = $user->get_email_forwarding();
} else {
    if ($group_id !== 0) {
        $group = steam_factory::get_group($steam, $group_id);
        $group_data = $group->get_attributes(array(OBJ_NAME, OBJ_DESC));
    }
}
$user_favourites = $steam->get_login_user()->get_buddies();
if ($action == "save") {
    if (count($user_favourites) == 0) {
        $user_favourites = array();
    }
    if ($user_id !== 0) {
        array_push($user_favourites, $user);
    } else {
        if ($group_id !== 0) {
            array_push($user_favourites, $group);
        }
    }
 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);
 }
예제 #16
0
파일: deleteUsers.php 프로젝트: rolwi/koala
<?php

include_once "../../etc/koala.conf.php";
$portal = lms_portal::get_instance();
$portal->initialize(GUEST_NOT_ALLOWED);
$user = lms_steam::get_current_user();
if (!lms_steam::is_koala_admin($user)) {
    header("location:/");
    exit;
}
$users = steam_factory::get_group($GLOBALS['STEAM']->get_id(), "steam")->get_members();
foreach ($users as $user) {
    if ($user->get_name() != "root" && $user->get_name() != "service" && $user->get_name() != "postman") {
        echo "deleting " . $user->get_name() . "<br>";
        $user->delete();
    }
}
예제 #17
0
 public function execute(\FrameResponseObject $frameResponseObject)
 {
     //CODE FOR ALL COMMANDS OF THIS PAKAGE END
     $user = \lms_steam::get_current_user();
     // Disable caching
     // TODO: Work on cache handling. An enabled cache leads to bugs
     // if used with the wiki.
     \CacheSettings::disable_caching();
     if (!($wiki_container = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $this->id))) {
         include "bad_link.php";
         exit;
     }
     if (!$wiki_container instanceof \steam_container) {
         $wiki_doc = $wiki_container;
         $wiki_container = $wiki_doc->get_environment();
         if ($wiki_doc->get_attribute(DOC_MIME_TYPE) != "text/wiki") {
             include "bad_link.php";
             exit;
         }
     }
     //CODE FOR ALL COMMANDS OF THIS PAKAGE END
     $wiki_html_handler = new \lms_wiki($wiki_container);
     $wiki_html_handler->set_admin_menu("versions", $wiki_doc);
     $content = \Wiki::getInstance()->loadTemplate("wiki_versions.template.html");
     //$content = new HTML_TEMPLATE_IT();
     //$content->loadTemplateFile( PATH_TEMPLATES . "wiki_versions.template.html" );
     $prev_versions = $wiki_doc->get_previous_versions();
     if (!is_array($prev_versions)) {
         $prev_versions = array();
     }
     array_unshift($prev_versions, $wiki_doc);
     $no_versions = count($prev_versions);
     $content->setCurrentBlock("BLOCK_VERSION_LIST");
     if (isset($_GET["markedfordiff"]) && !empty($_GET["markedfordiff"])) {
         $uri_params = "?markedfordiff=" . $_GET["markedfordiff"];
         //$start = $portal->set_paginator( $content, 10, $no_versions, "(" . gettext("%TOTAL versions in list") . ")", $uri_params );
         $pageIterator = \lms_portal::get_paginator(10, $no_versions, "(" . gettext("%TOTAL groups in list") . ")");
         $content->setVariable("PAGEITERATOR", $pageIterator["html"]);
         $start = $pageIterator["startIndex"];
     } else {
         $pageIterator = \lms_portal::get_paginator(10, $no_versions, "(" . gettext("%TOTAL groups in list") . ")");
         $content->setVariable("PAGEITERATOR", $pageIterator["html"]);
         $start = $pageIterator["startIndex"];
     }
     //$start = $portal->set_paginator( $content, 10, $no_versions, "(" . gettext("%TOTAL versions in list") . ")" );
     $end = $start + 10 > $no_versions ? $no_versions : $start + 10;
     $entry_name = str_replace(".wiki", "", $wiki_doc->get_identifier());
     $content->setVariable("LABEL_VERSIONS", gettext("Available Versions for the entry") . " \"" . h($entry_name) . "\" (" . str_replace(array("%a", "%z", "%s"), array($start + 1, $end, $no_versions), gettext("%a-%z out of %s")) . ")");
     $content->setVariable("LABEL_VERSION_NUMBER", gettext("Version number"));
     $content->setVariable("LABEL_SIZE", gettext("Size"));
     $content->setVariable("LABEL_DATE", gettext("Modification date"));
     $content->setVariable("LABEL_CREATOR", gettext("Modified by"));
     $content->setVariable("LABEL_ACTION", gettext("Action"));
     // Use buffer for document attributes
     $attributes_tnr = array();
     for ($i = $start; $i < $end; $i++) {
         $attributes_tnr[$prev_versions[$i]->get_id()] = $prev_versions[$i]->get_attributes(array(DOC_USER_MODIFIED, DOC_LAST_MODIFIED, DOC_VERSION, DOC_SIZE), TRUE);
     }
     $attributes_result = $GLOBALS["STEAM"]->buffer_flush();
     // use buffer for author attributes
     $author_tnr = array();
     for ($i = $start; $i < $end; $i++) {
         $author_tnr[$prev_versions[$i]->get_id()] = $attributes_result[$attributes_tnr[$prev_versions[$i]->get_id()]][DOC_USER_MODIFIED]->get_attributes(array(USER_FIRSTNAME, USER_FULLNAME, OBJ_NAME), TRUE);
     }
     $author_result = $GLOBALS["STEAM"]->buffer_flush();
     for ($i = $start; $i < $end; $i++) {
         $doc = $prev_versions[$i];
         $attributes = $attributes_result[$attributes_tnr[$doc->get_id()]];
         $last_author = $author_result[$author_tnr[$doc->get_id()]];
         $content->setCurrentBlock("BLOCK_VERSION");
         if ($doc instanceof \steam_document) {
             $content->setVariable("VALUE_SIZE", get_formatted_filesize($doc->get_content_size()));
             $content->setVariable("VALUE_CREATOR_LINK", PATH_URL . "user/index/" . $author_result[$author_tnr[$doc->get_id()]][OBJ_NAME] . "/");
             $content->setVariable("VALUE_CREATOR", h($last_author[USER_FIRSTNAME]) . " " . h($last_author[USER_FULLNAME]));
             $content->setVariable("VALUE_DATE", strftime("%x %X", $attributes["DOC_LAST_MODIFIED"]));
             if ($doc->get_id() !== $wiki_doc->get_id()) {
                 $content->setVariable("VALUE_VERSION_LINK", PATH_URL . "wiki/viewversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/");
                 $content->setVariable("VALUE_VERSION_NUMBER", "Version " . h($attributes_result[$attributes_tnr[$doc->get_id()]][DOC_VERSION]));
                 $content->setCurrentBlock("BLOCK_RECOVER");
                 $content->setVariable("VALUE_ACTION_RECOVER", "&raquo; " . gettext("Recover this version"));
                 $content->setVariable("VALUE_RECOVER_LINK", PATH_URL . "wiki/recoverversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/");
                 $content->parse("BLOCK_RECOVER");
             } else {
                 $content->setVariable("VALUE_VERSION_LINK", PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/");
                 $content->setVariable("VALUE_VERSION_NUMBER", "Version " . h($attributes_result[$attributes_tnr[$doc->get_id()]][DOC_VERSION]) . " (" . gettext("current") . ")");
             }
             if (isset($_GET["markedfordiff"]) && $_GET["markedfordiff"] == $doc->get_id()) {
                 $content->setVariable("VALUE_ACTION_MARK", "&raquo; " . gettext("Currently marked for version compare"));
             } else {
                 $content->setVariable("VALUE_ACTION_MARK", "<a href=\"" . PATH_URL . "wiki/versionoverview/" . $wiki_doc->get_id() . "/?markedfordiff=" . $doc->get_id() . "\">" . "&raquo; " . gettext("Mark for version compare") . "</a>");
             }
             if ($attributes[DOC_VERSION] != 1) {
                 $content->setVariable("VALUE_ACTION_DIFF", "&raquo; " . gettext("Compare to previous version") . " " . ($attributes[DOC_VERSION] - 1));
                 $content->setVariable("VALUE_DIFF_LINK", PATH_URL . "wiki/compareversions/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/" . $prev_versions[$i + 1]->get_id());
             }
             if (isset($_GET["markedfordiff"]) && $_GET["markedfordiff"] != $doc->get_id()) {
                 $marked = \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $_GET["markedfordiff"]);
                 $content->setVariable("VALUE_ACTION_MARKED_DIFF", "<a href=\"" . PATH_URL . "wiki/compareversions/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/" . $_GET["markedfordiff"] . "\">" . "&raquo; " . gettext("Compare to marked version") . " " . $marked->get_version() . "</a>");
             }
         }
         //is user authorized to delete version?
         $content->setVariable("MESSAGE_DELETION", gettext("Do you really want to delete this version?"));
         $current_user = \lms_steam::get_current_user();
         $admin_group = \steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "admin");
         $isAdmin = is_object($admin_group) && $admin_group->is_member($current_user);
         $usersEntry = $last_author["OBJ_NAME"] === $current_user->get_name();
         $notCurrentVersion = $doc->get_id() !== $wiki_doc->get_id();
         if (($isAdmin || $usersEntry) && $notCurrentVersion) {
             $content->setVariable("VALUE_ACTION_DELETE", "<a href=\"" . PATH_URL . "wiki/deleteversion/" . $wiki_doc->get_id() . "/" . $doc->get_id() . "/\" onclick=\"return confirmDeletion();\">" . "&raquo; " . gettext("Delete this version") . "</a><br \\/>");
         }
         $content->parse("BLOCK_VERSION");
     }
     $content->parse("BLOCK_VERSION_LIST");
     $wiki_html_handler->set_main_html($content->get());
     $rootlink = \lms_steam::get_link_to_root($wiki_container);
     WIKI_FULL_HEADLINE ? $headline = array($rootlink[0], $rootlink[1], array("link" => $rootlink[1]["link"] . "communication/", "name" => gettext("Communication")), array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Version management"))) : ($headline = array(array("name" => h($wiki_container->get_name()), "link" => PATH_URL . "wiki/index/" . $wiki_container->get_id() . "/"), array("link" => PATH_URL . "wiki/viewentry/" . $wiki_doc->get_id() . "/", "name" => str_replace(".wiki", "", h($wiki_doc->get_name()))), array("link" => "", "name" => gettext("Version management"))));
     /*	$portal->set_page_main(
     		 $headline,
     		 $wiki_html_handler->get_html()
     		 );
     		 $portal->show_html();
     		 */
     $frameResponseObject->setHeadline($headline);
     $widget = new \Widgets\RawHtml();
     $widget->setHtml($wiki_html_handler->get_html());
     $frameResponseObject->addWidget($widget);
     return $frameResponseObject;
 }
예제 #18
0
파일: user_index.php 프로젝트: rolwi/koala
     exit;
     break;
 case $path[0] == "groups":
     if (YOUR_GROUPS) {
         $backlink .= "groups/";
         include "user_groups.php";
     } else {
         include "bad_link.php";
     }
     exit;
     break;
 case $path[0] == "clipboard":
     if (CLIPBOARD) {
         // only the user herself and the admins may view her clipboard:
         $current_user = lms_steam::get_current_user();
         if ($user->get_id() != $current_user->get_id() && (!is_object($admin_group = steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "Admin")) || !$admin_group->is_member($current_user))) {
             $portal->set_problem_description(gettext("You are not permitted to view this folder."));
             $portal->show_html();
             exit;
         }
         $backlink .= "clipboard/";
         $documents_root = $user;
         $documents_path = isset($path[1]) ? array_slice($path, 1) : array();
         include "user_clipboard.php";
     } else {
         include "bad_link.php";
     }
     exit;
     break;
     // Try the extensions:
 // Try the extensions:
예제 #19
0
 public static function init()
 {
     if (self::$initOnce) {
         return false;
     } else {
         self::$initOnce = true;
     }
     $user = \lms_steam::get_current_user();
     $workroom = $user->get_workroom();
     $html = "";
     if ($workroom->get_object_by_name("portfolio")) {
         return false;
     }
     //create rooms
     $portfolio_main_room = \steam_factory::create_room($GLOBALS["STEAM"]->get_id(), "portfolio", $workroom, "room for portfolio module");
     $artefacts_room = \steam_factory::create_room($GLOBALS["STEAM"]->get_id(), "artefacts", $portfolio_main_room, "room for artefacts for portfolios");
     $portfolios_room = \steam_factory::create_room($GLOBALS["STEAM"]->get_id(), "portfolios", $portfolio_main_room, "room for portfolios");
     //create groups
     $parentgroup = \steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "PrivGroups");
     $groups = $parentgroup->get_subgroups();
     $names = array();
     foreach ($groups as $group) {
         $names[] = $group->get_name();
     }
     if (!in_array($user->get_name(), $names)) {
         $group = $parentgroup->create_subgroup($user->get_name());
         $html .= "Private Gruppe erstellt<br>";
         $artefactsGroup = $group->create_subgroup("artefacts");
         $html .= "Private Gruppe für Belege erstellt<br>";
         $portfoliosGroup = $group->create_subgroup("portfolios");
         $html .= "Private Gruppe für Portfolios erstellt<br>";
     }
     /*
     //create groups
     $parentgroup = \steam_factory::get_group($GLOBALS[ "STEAM" ]->get_id(), "PrivGroups");
     if (!(($group = $parentgroup->get_subgroup_by_name($user->get_name())) instanceof \steam_group)){
     	$group = $parentgroup->create_subgroup($user->get_name());
     	$html .= "Private Gruppe erstellt<br>";
     }
     if (!($group->get_subgroup_by_name("artefacts") instanceof \steam_group)){
     	$artefactsGroup = $group->create_subgroup("artefacts");
     	$html .= "Private Gruppe für Belege erstellt<br>";
     }
     if (!($group->get_subgroup_by_name("portfolios") instanceof \steam_group)){
     	$portfoliosGroup = $group->create_subgroup("portfolios");
     	$html .= "Private Gruppe für Portfolios erstellt<br>";
     }
     */
     return true;
 }