示例#1
0
 function check_permissions($user, $oid, $password)
 {
     $query = "select v from i_users where k='" . $user . "'";
     $result = mysql_query($query);
     $row = mysql_fetch_row($result);
     $uid = $result[0];
     // if we dont have uid we can get this from i_users
     $query = "select v from i_security_cache where k='" . $oid . ":" . $uid . "'";
     $result = mysql_query($query);
     $row = mysql_fetch_row($result);
     $permissions = $row[0];
     // read permission is bit "1"
     if (($permissions & 1) == 1) {
         return 1;
     } else {
         $permission_denied = $permissions >> 16;
         if (($permission_denied & 1) == 1) {
             return 0;
         } else {
             $STEAM = new steam_connector(STEAM_SERVER, STEAM_PORT, $user, $password);
             $document = steam_factory::get_object($STEAM->get_id(), (int) $oid, CLASS_OBJECT);
             if ($document->check_access_read($STEAM->get_current_steam_user()) === 1) {
                 return 1;
             }
         }
     }
     return 0;
 }
 function test_get_login_status()
 {
     $steam_connector = new steam_connector("192.168.154.139", 1900, "root", "steam123");
     $this->assertTrue($steam_connector->get_login_status(), "checking get_login_status on success");
     $steam_connector = new steam_connector("192.168.154.139", 1900, "root", "steam1235");
     $this->assertFalse($steam_connector->get_login_status(), "checking get_login_status on fail");
 }
 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);
 }
示例#5
0
 public static function connect($server = STEAM_SERVER, $port = STEAM_PORT, $login = STEAM_GUEST_LOGIN, $password = STEAM_GUEST_PW)
 {
     try {
         $GLOBALS["STEAM"] = steam_connector::connect($server, $port, $login, $password);
     } catch (ParameterException $p) {
         throw new Exception("Missing or wrong params for server connection", E_CONNECTION);
     } catch (Exception $e) {
         throw new Exception("No connection to sTeam server ({$server}:{$port}).", E_CONNECTION);
     }
 }
示例#6
0
//include stuff
require_once "./config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "{$config_doc_root}/classes/template.inc";
//require_once("$config_doc_root/classes/debugHelper.php");
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$steamapi_doc_root}/modules/searching.class.php";
require_once "{$steamapi_doc_root}/modules/search_define.class.php";
//******************************************************
//** Precondition
//******************************************************
$action = isset($_POST["action"]) ? $_POST["action"] : "";
//******************************************************
//** sTeam Stuff
//******************************************************
$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;
}
/** log-in user */
$steamUser = $steam->get_login_user();
/** get buddies */
$buddies = $steamUser->get_buddies(1);
$result = $steam->buffer_flush();
$buddies = $result[$buddies];
$buddies_user = array();
$buddies_group = array();
$buddies_user_name = array();
$buddies_group_name = array();
foreach ($buddies as $buddy) {
示例#7
0
文件: trashbin.php 项目: rolwi/koala
require_once "./config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "{$config_doc_root}/classes/template.inc";
require_once "{$config_doc_root}/classes/doc_content.php";
#require_once("$config_doc_root/classes/debugHelper.php");
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$config_doc_root}/includes/derive_icon.php";
require_once "{$config_doc_root}/includes/derive_menu.php";
require_once "{$config_doc_root}/includes/derive_url.php";
require_once "{$config_doc_root}/config/mimetype_map.php";
//******************************************************
//** Precondition
//******************************************************
$workroom_id = isset($_GET["workroom"]) ? $_GET["workroom"] : "";
$environment_id = isset($_GET["environment"]) ? $_GET["environment"] : "";
$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;
}
//current room steam object should be the trashbin
if ((int) $object != 0) {
    $trashbin = steam_factory::get_object($steam, $object);
}
$trashbin_path = $trashbin->get_path(1);
//check if user may write in this folder
$write_allowed = $trashbin->check_access_write($steam->get_login_user(), 1);
//get inventory and inventorys attributes if allowed to
$allowed = $trashbin->check_access_read($steam->get_login_user(), 1);
$result = $steam->buffer_flush();
$write_allowed = $result[$write_allowed];
示例#8
0
require_once "../../config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "{$config_doc_root}/classes/template.inc";
//require_once("$config_doc_root/classes/debugHelper.php");
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$config_doc_root}/includes/derive_icon.php";
require_once "{$config_doc_root}/includes/tools.php";
//******************************************************
//** Presumption
//******************************************************
$column_id = isset($_GET["column"]) ? $_GET["column"] : (isset($_POST["column"]) ? $_POST["column"] : "");
$action = isset($_POST["mission"]) ? $_POST["mission"] : "";
//******************************************************
//** sTeam Stuff
//******************************************************
$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;
}
//current column steam object
$column = steam_factory::get_object($steam, $column_id);
// get portal (i.e. environment)
$portal = $column->get_environment();
// get column attributes
$column_attributes = $column->get_attributes(array(OBJ_NAME, OBJ_DESC, "bid:portal:column:width"), 1);
//get permissions
$readable = $column->check_access_read($steam->get_login_user(), 1);
$writeable = $column->check_access_write($steam->get_login_user(), 1);
// retrieve results
$result = $steam->buffer_flush();
 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);
 }
 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);
 }
示例#11
0
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "./classes/questionary_geo.php";
require_once "{$config_doc_root}/classes/template.inc";
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "./classes/rights.php";
//******************************************************
//** Presumption
//******************************************************
$questionary_id = isset($_GET["questionary"]) ? $_GET["questionary"] : (isset($_POST["questionary"]) ? $_POST["questionary"] : "");
$action = isset($_GET["mission"]) ? $_GET["mission"] : (isset($_POST["mission"]) ? $_POST["mission"] : "");
$question_id = isset($_GET["question_id"]) ? $_GET["question_id"] : (isset($_POST["question_id"]) ? $_POST["question_id"] : "");
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$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}/accessdenied.html");
    exit;
}
//current steam objects
if ((int) $questionary_id != 0) {
    $questionary = steam_factory::get_object($steam, $questionary_id);
    $question_folder = $questionary->get_object_by_name('questions');
    $answer_folder = $questionary->get_object_by_name('answers');
    if ((int) $question_id != 0) {
        $question = steam_factory::get_object($steam, $question_id);
    }
} else {
    header("Location: {$config_webserver_ip}/index.php");
}
示例#12
0
function setBidLastSessionTime($config_server_ip, $config_server_port, $login_name, $login_pwd, $connect = true)
{
    try {
        //login und $steam def. in "./includes/login.php"
        $steam = new steam_connector($config_server_ip, $config_server_port, $login_name, $login_pwd);
        if ($steam->get_login_status()) {
            $steamUser = $steam->get_login_user();
            $bidLastSessionTime = $steamUser->get_attribute("bid:last_session_time");
            if (!$bidLastSessionTime || !$connect) {
                $bidLastSessionTime = array();
                $bidLastSessionTime[0] = $bidLastSessionTime[1] = time();
            } else {
                $bidLastSessionTime[0] = $bidLastSessionTime[1];
                $bidLastSessionTime[1] = time();
            }
            $steamUser->set_attribute("bid:last_session_time", $bidLastSessionTime);
            $steam->disconnect();
        }
    } catch (Exception $e) {
    }
}
示例#13
0
//require_once("$config_doc_root/classes/doc_content.php");
//require_once("$config_doc_root/classes/debugHelper.php");
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$config_doc_root}/includes/derive_menu.php";
require_once "{$config_doc_root}/includes/derive_url.php";
//******************************************************
//** Precondition
//******************************************************
$properties = isset($_GET["properties"]) ? $_GET["properties"] : (isset($_POST["properties"]) ? $_POST["properties"] : 0);
$page = (int) isset($_GET["page"]) ? $_GET["page"] : 1;
$last_page = (int) isset($_POST["last_page"]) ? $_POST["last_page"] : 0;
$attrib = array(OBJ_NAME, OBJ_DESC, OBJ_KEYWORDS, OBJ_TYPE, "bid:doctype", DOC_MIME_TYPE, DOC_EXTERN_URL, "bid:collectiontype", "bid:presentation", "bid:frameset", "bid:fullscreen", "bid:hidden", "bid:description", "bid:tags");
//******************************************************
//** sTeam Stuff
//******************************************************
$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;
}
//get old/saved form values and merge them with the recently selected
if (isset($_POST["changed"])) {
    if (!($changed = @unserialize(rawurldecode($_POST["changed"])))) {
        $changed = "";
    }
    $post = $_POST;
    unset($post["changed"]);
    unset($post["orderfiles"]);
    //catch unset checkboxes
    switch ($last_page) {
        //clean general values
示例#14
0
  Author: Bastian Schröder <*****@*****.**>

  ****************************************************************************/
//include stuff
require_once "./config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "./classes/template.inc";
require_once "{$config_doc_root}/config/language_map.php";
//  require_once("./classes/debugHelper.php");
require_once "./includes/sessiondata.php";
$action = isset($_POST["action"]) ? $_POST["action"] : "";
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$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;
}
//current room steam object
if ((int) $object != 0) {
    $current_room = steam_factory::get_object($steam, $object);
} else {
    $current_room = $steam->get_login_user()->get_workroom();
}
// action: try to login and get tags for user
if (isset($_POST["DELICIOUS_USER"]) && isset($_POST["DELICIOUS_PASSWD"])) {
    // get posts for a tag, if set.
    if (isset($_POST["DELICIOUS_TAG"])) {
        // build the url fpr the del.icio.us api
示例#15
0
<?php

// no direct call
if (!defined('_VALID_KOALA')) {
    header("location:/");
    exit;
}
include_once "../etc/koala.conf.php";
echo "<h1>Prüfe die Konfiguration</h1>";
echo "Gastanmeldung......";
$steam = new steam_connector(STEAM_SERVER, STEAM_PORT, STEAM_ROOT_LOGIN, STEAM_ROOT_PW);
$GLOBALS["STEAM"] = $steam;
$steam_user = $steam->get_current_steam_user();
echo $steam_user->get_name();
echo "<span style=\"color:green;font-size:small\">erfolgreich</span><br />";
if (!$steam || !$steam->get_login_status()) {
    print "No server connection!";
    exit;
}
echo "connection data<br />";
echo "server: " . STEAM_SERVER . ":" . STEAM_PORT . "<br />";
echo "PublicGroups: " . steam_factory::groupname_to_object($steam->get_id(), "PublicGroups")->get_id() . "<br />";
echo "PrivGroups: " . steam_factory::groupname_to_object($steam->get_id(), "PrivGroups")->get_id() . "<br />";
echo "Faculties: " . steam_factory::groupname_to_object($steam->get_id(), "Faculties")->get_id() . "<br />";
echo "Courses: " . steam_factory::groupname_to_object($steam->get_id(), "Courses")->get_id() . "<br />";
echo "Prüfe STEAM_PUBLIC_GROUP.......";
if (defined("STEAM_PUBLIC_GROUP") && STEAM_PUBLIC_GROUP != "") {
    check_steam_group(STEAM_PUBLIC_GROUP);
    //	try {
    //		$steam_public_group = steam_factory::get_object($steam->get_id(), STEAM_PUBLIC_GROUP);
    //	} catch (Exception $e) {
示例#16
0
文件: header.php 项目: rolwi/koala
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$config_doc_root}/includes/norm_post.php";
require_once "{$config_doc_root}/includes/slashes.php";
require_once "{$config_doc_root}/includes/derive_url.php";
require_once "{$config_doc_root}/includes/tools.php";
//******************************************************
//** Presumption
//******************************************************
$portlet = isset($_GET["portlet"]) ? $_GET["portlet"] : (isset($_POST["portlet"]) ? $_POST["portlet"] : $_SESSION["portlet"]);
$action = isset($_GET["mission"]) ? $_GET["mission"] : (isset($_POST["mission"]) ? $_POST["mission"] : "");
$_SESSION["portlet"] = $portlet;
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$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");
    #header("Location: $config_webserver_ip/start.html"); ??
    exit;
}
//get portlet, portal and the needed data from them
$portlet = steam_factory::get_object($steam, $portlet);
$portlet->get_attributes(array("bid:portlet", "bid:portlet:content"));
$portlet_name = $portlet->get_attribute(OBJ_NAME);
$portlet_title = $portlet->get_attribute(OBJ_DESC);
if (trim($portlet_title) == "") {
    $portlet_title = $portlet_name;
} else {
    $portlet_name = $portlet_title;
}
示例#17
0
文件: edit_file.php 项目: rolwi/koala
$sessionLoginFailureAction = "closeSubWindow";
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "{$config_doc_root}/includes/norm_post.php";
//******************************************************
//** Precondition
//******************************************************
$document = isset($_GET["object"]) ? $_GET["object"] : (isset($_POST["object"]) ? $_POST["object"] : 0);
$documentId = isset($_GET["documentId"]) ? $_GET["documentId"] : (isset($_POST["documentId"]) ? $_POST["documentId"] : 0);
$action = isset($_POST["action"]) ? $_POST["action"] : "";
$content = isset($_POST["content"]) ? $_POST["content"] : "";
$mimeType = isset($_POST["mimeType"]) ? $_POST["mimeType"] : "";
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$steam = new steam_connector($config_server_ip, $config_server_port, $login_name, $login_pwd);
if (!$steam || !$steam->get_login_status()) {
    $do_login = True;
    $error[] = "error_not_logged_in";
} else {
    $document = steam_factory::get_object($steam, $document);
    $documentId = $document->get_id();
    $access_write = $document->check_access_write($steam->get_login_user());
    $access_read = $document->check_access_read($steam->get_login_user());
    $do_login = False;
}
$error = array();
if ($action == "save") {
    if (!$access_write) {
        $do_login = True;
        $error[] = "error_not_logged_in";
示例#18
0
     }
 }
 if (!$is_buddy) {
     $buddies[] = $contact;
     $user->set_attribute("USER_FAVOURITES", $buddies);
 }
 // Clear buddies from cache
 $cache = get_cache_function($user->get_name(), 86400);
 $cache->drop("lms_steam::user_get_buddies", $user->get_name());
 //$contact->contact_confirm();
 // Is new contact in the list of contacts to confirm ?
 $toconfirm = $user->get_attribute("USER_CONTACTS_TOCONFIRM");
 if (!is_array($toconfirm)) {
     $toconfirm = array();
 }
 $admin_steam = new steam_connector(STEAM_SERVER, STEAM_PORT, STEAM_ROOT_LOGIN, STEAM_ROOT_PW);
 $acontact = steam_factory::get_object($admin_steam->get_id(), $contact->get_id(), CLASS_USER);
 // set confirmed contacts of contact
 $cc = $acontact->get_attribute("USER_CONTACTS_CONFIRMED");
 if (!is_array($cc)) {
     $cc = array();
 }
 $cc[$user->get_id()] = 1;
 $cc["_OBJECT_KEYS"] = "TRUE";
 $acontact->set_attribute("USER_CONTACTS_CONFIRMED", $cc);
 // set contacts to confirm of contact
 $ctc = $acontact->get_attribute("USER_CONTACTS_TOCONFIRM");
 if (!is_array($ctc)) {
     $ctc = array();
 }
 $found = FALSE;
示例#19
0
 ****************************************************************************/
//include stuff
require_once "../../config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "{$config_doc_root}/classes/template.inc";
require_once "{$config_doc_root}/includes/sessiondata.php";
//******************************************************
//** Presumption
//******************************************************
$image = isset($_GET["image"]) ? $_GET["image"] : (isset($_POST["image"]) ? $_POST["image"] : "");
$action = isset($_GET["action"]) ? $_GET["action"] : (isset($_POST["action"]) ? $_POST["action"] : "");
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$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;
}
// displayed image object
$image = $image != 0 ? steam_factory::get_object($steam, $image) : 0;
/** log-in user */
$steamUser = $steam->get_login_user();
//get permissions
$readable = $image->check_access_read($steam->get_login_user());
$writable = $image->check_access_write($steam->get_login_user());
$trash = $steamUser->get_attribute(USER_TRASHBIN, 0);
if (!$readable) {
    die("Keine Rechte vorhanden!<br>");
}
 private function get_document_data($login, $password, $identifier, $identifier_type, $width = false, $height = false)
 {
     $STEAM = \steam_connector::connect(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 (!isset($this->filename)) {
                 header("location: " . PATH_URL . "Download/Document/{$identifier}/{$document->get_name()}");
                 exit;
             }
         }
     }
     // 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"] = $document->get_content_size();
             $data["content"] = $document->get_content();
             /*      $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;
 }
示例#21
0
 public function createEmployee($login, $password, $email, $firstname, $lastname, $branchID = "", $customerID = "")
 {
     $connector = new steam_connector(STEAM_SERVER, STEAM_PORT, STEAM_ROOT_LOGIN, STEAM_ROOT_PW);
     // Create user
     $activationCode = steam_factory::create_user($connector->get_id(), $login, $password, $email, $lastname, $firstname);
     // Get new user and activate
     $newUser = steam_factory::get_user($connector->get_id(), $login);
     $newUser->activate($activationCode);
     if ($branchID != "" && $branchID != "0") {
         // Add user to branch group
         $branch = new steam_group($connector->get_id(), $branchID);
         $branch->add_member($newUser);
         // Add user to customer group
         $customer = $branch->get_parent_group();
         $customer->add_member($newUser);
         $newUser->set_attribute("BRANCH_ID", $branchID);
     } else {
         if ($customerID != "" && $customerID != "0") {
             $customer = new steam_group($connector->get_id(), $customerID);
             $customer->add_member($newUser);
         }
     }
     // Add user to base group
     $base = steam_factory::get_group($connector->get_id(), BASE_GROUP);
     $base->add_member($newUser);
     $newUser->set_attribute(GENERATED_PASSWORD, $password);
     $newUser->set_attribute("USER_LANGUAGE", "german");
     $newUser->set_attribute("OBJ_DESC", "Teilnehmer");
     //hack, adding user to course. remove this
     //steam_factory::get_group($GLOBALS["STEAM"]->get_id(), "Courses.Goertz.G-01.learners")->add_member($newUser);
     //$connector->disconnect();
     return $activationCode;
 }
示例#22
0
          Bastian Schröder <*****@*****.**>

  ****************************************************************************/
//include stuff
require_once "./config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "./classes/template.inc";
require_once "{$config_doc_root}/config/language_map.php";
//  require_once("./classes/debugHelper.php");
require_once "./includes/sessiondata.php";
$action = isset($_POST["action"]) ? $_POST["action"] : "";
//******************************************************
//** sTeam Stuff
//******************************************************
//login und $steam def. in "./includes/login.php"
$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 ($action == "change") {
    $user_prefs = array(OBJ_DESC => $_POST["USER_DESCRIPTION"], USER_ADRESS => $_POST["USER_ADRESS"], USER_EMAIL => $_POST["USER_EMAIL"], USER_LANGUAGE => $_POST["user_language"], "bid:user_callto" => $_POST["user_callto"], "bid:user_im_adress" => $_POST["user_im_adress"], "bid:user_im_protocol" => $_POST["user_im_protocol"], "bid:treeview_mini" => $_POST["treeview_mini"], "bid:show_hidden" => $_POST["show_hidden"]);
    $user_prefs["bid:treeview"] = isset($_POST["treeview"]) ? $_POST["treeview"] : "on";
    $steam->get_login_user()->set_attributes($user_prefs);
}
$_SESSION["treeview"] = $steam->get_login_user()->get_attribute("bid:treeview") == "on" ? true : false;
$_SESSION["treeview_mini"] = $steam->get_login_user()->get_attribute("bid:treeview_mini") == "on" ? true : false;
$_SESSION["show_hidden"] = $steam->get_login_user()->get_attribute("bid:show_hidden") == "on" ? true : false;
$_SESSION["language"] = $language_map_counter[$steam->get_login_user()->get_attribute(USER_LANGUAGE)];
//after save action and disconnect close window and update the opener
if ($action && $action == "change") {
示例#23
0
文件: add_forum.php 项目: rolwi/koala
$sessionLoginFailureAction = "closeSubWindow";
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "../../includes/norm_post.php";
//******************************************************
//** Get Post data
//******************************************************
$room_id = isset($_GET["forumobject"]) ? $_GET["forumobject"] : 0;
$room_id = isset($_POST["forumobject"]) ? $_POST["forumobject"] : $room_id;
$action = isset($_POST["mission"]) ? $_POST["mission"] : "";
$title = isset($_POST['title']) ? $_POST["title"] : "";
$subtitle = isset($_POST['subtitle']) ? $_POST["subtitle"] : "";
$description = isset($_POST['description']) ? $_POST['description'] : "";
//******************************************************
//** sTeam Server Connection
//******************************************************
$steam = new steam_connector($config_server_ip, $config_server_port, $login_name, $login_pwd);
$error = array();
if (!$steam || !$steam->get_login_status()) {
    $do_login = True;
    $error[] = "error_not_logged_in";
} else {
    /** log-in user */
    $steamUser = $steam->get_login_user();
    /** id of the log-in user */
    $steamUserId = $steamUser == 0 ? 0 : $steamUser->get_id();
    /** the current room */
    $object = $room_id != 0 ? steam_factory::get_object($steam, $room_id) : $steamUser->get_workroom();
    /** additional required attributes */
    $attrib = $object->get_attributes(array(OBJ_NAME, OBJ_DESC, "bid:forum_subtitle", "bid:description"), 1);
    $allowed_write = $object->check_access_write($steamUser, 1);
    // flush the buffer
示例#24
0
 public function add_contact($contact_id)
 {
     $admin_steam = new steam_connector(STEAM_SERVER, STEAM_PORT, STEAM_ROOT_LOGIN, STEAM_ROOT_PW);
     $contact = steam_factory::get_object($admin_steam->get_id(), $contact_id, CLASS_USER);
     //The user you are sending a request to is immediatly your contact
     $this->add_confirmed_contact($contact_id, $admin_steam);
     //This user have to be confirmed befor he is a also a conntact
     //of the target user
     $contact->add_unconfirmed_contact($this->get_id(), $admin_steam);
     $admin_steam->disconnect();
 }
示例#25
0
 /**
  *function get_steam_connector:
  *
  */
 public function get_steam_connector()
 {
     return steam_connector::get_instance($this->steam_connectorID);
 }
示例#26
0
 /**
  * function decode_data
  *
  * @param $command
  *
  * @return
  */
 function decode_data(&$command)
 {
     //echo "decode_data<br>";
     $typ = $command[0];
     switch ($typ) {
         case CMD_TYPE_INT:
             $newdata = $this->mybin2dec(substr($command, 1, 4));
             $command = substr($command, 5);
             break;
         case CMD_TYPE_FLOAT:
             $tmp = unpack("f*", strrev(substr($command, 1, 4)));
             $newdata = $tmp[1];
             $command = substr($command, 5);
             //echo $newdata . "<br />";
             break;
         case CMD_TYPE_STRING:
             $length = (string) hexdec(bin2hex(substr($command, 1, 4)));
             $newdata = substr($command, 5, $length);
             $command = substr($command, 5 + $length);
             break;
         case CMD_TYPE_OBJECT:
             $newdata = steam_factory::get_object($this->steam_connectorID, hexdec(bin2hex(substr($command, 1, 4))), hexdec(bin2hex(substr($command, 5, 4))));
             $command = substr($command, 9);
             break;
         case CMD_TYPE_ARRAY:
             $count = hexdec(bin2hex(substr($command, 1, 2)));
             $command = substr($command, 3);
             if ($count <= 0) {
                 $newdata = array();
             } else {
                 for ($i = 0; $i < $count; $i++) {
                     $value = $this->decode_data($command);
                     $newdata[$i] = $value;
                 }
             }
             //for($i = 0; $i < $count; $i++)
             break;
         case CMD_TYPE_MAPPING:
             $count = hexdec(bin2hex(substr($command, 1, 2)));
             $command = substr($command, 3);
             if ($count <= 0) {
                 $newdata = array();
             } else {
                 for ($i = 0; $i < $count; $i++) {
                     $key = $this->decode_data($command);
                     $value = $this->decode_data($command);
                     if (is_object($key)) {
                         $newdata[$key->get_id()] = $value;
                     } else {
                         if (is_array($key)) {
                             $newdata[] = $value;
                         } else {
                             $newdata[$key] = $value;
                         }
                     }
                 }
             }
             //for($i = 0; $i < $count; $i++)
             break;
         case CMD_TYPE_PROGRAM:
             $newdata = "type program not yet implemented";
             break;
         case CMD_TYPE_TIME:
             $newdata = (int) hexdec(bin2hex(substr($command, 1, 4)));
             $command = substr($command, 5);
             break;
         case CMD_TYPE_FUNCTION:
             $length = hexdec(bin2hex(substr($command, 1, 4)));
             $fname = substr($command, 13, $length - 8);
             $newdata = new steam_function($fname);
             $command = substr($command, 5 + $length);
             break;
         default:
             throw new steam_exception(steam_connector::get_instance($this->steam_connectorID)->get_login_user_name(), "COAL support in PHP not yet implemented for object type=" . $typ . " command=" . $command, 120);
             $newdata = "COAL support in PHP not yet implemented for object type=" . $typ . " command=" . $command;
             break;
     }
     //switch ($typ)
     return $newdata;
 }
示例#27
0
 /**
  * function create_user:
  *
  * Creates a new user and returns its activation code
  *
  * Please keep in mind, that you will need extended rights
  * to execute this function, that means a steam_connector
  * with an administrator login.
  *
  * Suggestion: Divide the registration and activation
  * process, if you want to be sure about the existence
  * of the user's e-mail-address; send the activation-code
  * via e-mail...
  *
  * Example for registration and activation:
  * <code>
  * $activation_code = steam_factory::create_user(
  *		$steam_con,
  *		"nbates",
  *		"mother",
  *		"*****@*****.**",
  *		"Norman",
  *		"Bates",
  *		"english"
  * 		);
  * if ( $activation_code )
  * {
  *	$new_user = steam_factory::username_to_object( "nbates" );
  *	$new_user->set_attributes(
  *		array(
  *			"country" => "United States",
  *			"occupation" => "motel keeper"
  *		)
  *	);
  *	if ( $new_user->activate( $activation_code ) )
  *	{
  *		print( "Bates, you can login now!" );
  *	}
  * }
  * else
  * {
  *	print( "Login name exists. Choose another one." );
  * }
  * </code>
  *
  * @see steam_user->activate()
  * @param steam_connector $pSteamConnector connection to sTeam-server, for creating new users you will need extended rights
  * @param string $pLogin user's login name
  * @param string $pPassword user's password
  * @param string $pEMail user's email
  * @param string $pFullname user's surname
  * @param string $pFirstname user's firstname
  * @param string $pLanguage user's prefered language (optional)
  * @return string activation code; needed to activate this login
  */
 public static function create_user($pSteamConnectorID, $pLogin, $pPassword, $pEMail, $pFullname, $pFirstname, $pLanguage = "english")
 {
     if (!is_string($pSteamConnectorID)) {
         throw new ParameterException("pSteamConnectorID", "string");
     }
     $new_user = steam_factory::create_object($pSteamConnectorID, $pLogin, CLASS_USER, FALSE, array("name" => (string) $pLogin, "pw" => (string) $pPassword, "email" => (string) $pEMail, "fullname" => (string) $pFullname, "firstname" => (string) $pFirstname, "language" => (string) $pLanguage));
     if ($new_user) {
         $factories = steam_connector::get_instance($pSteamConnectorID)->get_login_data()->get_arguments();
         $user_factory = $factories[9][CLASS_USER];
         $activation_code = steam_connector::get_instance($pSteamConnectorID)->predefined_command($user_factory, "get_activation", array(), 0);
         return $activation_code;
     } else {
         return FALSE;
     }
 }
 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);
 }
示例#29
0
//******************************************************
require_once "../../config/config.php";
require_once "{$steamapi_doc_root}/steam_connector.class.php";
require_once "{$config_doc_root}/classes/template.inc";
require_once "{$config_doc_root}/includes/sessiondata.php";
require_once "../../includes/norm_post.php";
//******************************************************
//** Get Post data
//******************************************************
$object_id = isset($_GET["id"]) ? $_GET["id"] : 0;
$object_id = isset($_POST["id"]) ? $_POST["id"] : $object_id;
$action = isset($_POST["mission"]) ? $_POST["mission"] : "";
//******************************************************
//** sTeam Server Connection
//******************************************************
$steam = new steam_connector($config_server_ip, $config_server_port, $login_name, $login_pwd);
$error = array();
if (!$steam || !$steam->get_login_status()) {
    $do_login = True;
    $error[] = "error_not_logged_in";
} else {
    /** log-in user */
    $steamUser = $steam->get_login_user();
    /** id of the log-in user */
    $steamUserId = $steamUser == 0 ? 0 : $steamUser->get_id();
    /** name of the log-in user */
    $steamUserName = $steamUser == 0 ? "" : $steamUser->get_name();
    /** the current object */
    $object = $object_id != 0 ? steam_factory::get_object($steam, $object_id) : NULL;
    /** the content of the message object */
    $object_content = $object->get_content(1);
 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);
 }