Example #1
0
		public function addSession($mysql, $uid) {
		
		$time = Time::getTime();
		$session= new Session;
		$random = Random::getString(32);
		$expiry = $time + 30*24*60*60;
		$session->read($uid,$time,$expiry);
			switch($session->insert($mysql, $random)) {
				case Session::DATABASE_ERROR :
				{
					echo "<p>A Database error has occured.</p>";
					return;
				}
				case Session::INVALID_DATA :
				{
					echo "<p>Invalid operation requested.</p>";
					return;
				}
				case Session::INSERT_SUCCESS : 
				{
					
					return $random;
				}
				default :
					break;
			}
	}
Example #2
0
 /**
  * Start a editing session or return an existing one
  * @param string $uid of the user starting a session
  * @param \OCA\Documents\File $file - file object
  * @return array
  * @throws \Exception
  */
 public static function start($uid, $file)
 {
     // Create a directory to store genesis
     $genesis = new \OCA\Documents\Genesis($file);
     list($ownerView, $path) = $file->getOwnerViewAndPath();
     $oldSession = new Session();
     $oldSession->loadBy('file_id', $file->getFileId());
     //If there is no existing session we need to start a new one
     if (!$oldSession->hasData()) {
         $newSession = new Session(array($genesis->getPath(), $genesis->getHash(), $file->getOwner(), $file->getFileId()));
         if (!$newSession->insert()) {
             throw new \Exception('Failed to add session into database');
         }
     }
     $sessionData = $oldSession->loadBy('file_id', $file->getFileId())->getData();
     $memberColor = \OCA\Documents\Helper::getMemberColor($uid);
     $member = new \OCA\Documents\Db\Member(array($sessionData['es_id'], $uid, $memberColor, time(), intval($file->isPublicShare()), $file->getToken()));
     if ($member->insert()) {
         // Do we have OC_Avatar in out disposal?
         if (!class_exists('\\OC_Avatar') || \OC_Config::getValue('enable_avatars', true) !== true) {
             $imageUrl = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==';
         } else {
             $imageUrl = $uid;
         }
         $displayName = $file->isPublicShare() ? $uid . ' ' . \OCA\Documents\Db\Member::getGuestPostfix() : \OCP\User::getDisplayName($uid);
         $sessionData['member_id'] = (string) $member->getLastInsertId();
         $op = new \OCA\Documents\Db\Op();
         $op->addMember($sessionData['es_id'], $sessionData['member_id'], $displayName, $memberColor, $imageUrl);
     } else {
         throw new \Exception('Failed to add member into database');
     }
     $sessionData['title'] = basename($path);
     $sessionData['permissions'] = $ownerView->getFilePermissions($path);
     return $sessionData;
 }
Example #3
0
function setLang(string $l = NULL) : bool
{
    if (empty($l)) {
        $l = Config::get('Language', 'default');
    }
    return Session::insert(md5("SystemLanguageData"), $l);
}
Example #4
0
 public static function read($sess_id)
 {
     $s = new Session();
     $s->session_id = $sess_id;
     if ($s->find(true)) {
         // enforce lifetime of this session data
         if ($s->remember_me == 0 && $s->last_used + self::$lifetime > time()) {
             $s->last_used = time();
             $s->update();
             return $s->data;
         } else {
             if ($s->remember_me == 1 && $s->last_used + self::$rememberMeLifetime > time()) {
                 $s->last_used = time();
                 $s->update();
                 return $s->data;
             } else {
                 $s->delete();
                 return '';
             }
         }
     } else {
         // in seconds - easier for calcuating duration
         $s->last_used = time();
         // in date format - easier to read
         $s->created = date('Y-m-d h:i:s');
         if (isset($_SESSION['rememberMe']) && $_SESSION['rememberMe'] == true) {
             $s->remember_me = 1;
         }
         $s->insert();
         return '';
     }
 }
Example #5
0
 static function write($id, $session_data)
 {
     self::logdeb("Writing session '{$id}'");
     $session = Session::staticGet('id', $id);
     if (empty($session)) {
         $session = new Session();
         $session->id = $id;
         $session->session_data = $session_data;
         $session->created = common_sql_now();
         return $session->insert();
     } else {
         $session->session_data = $session_data;
         return $session->update();
     }
 }
Example #6
0
 public static function read($sess_id)
 {
     $s = new Session();
     $s->session_id = $sess_id;
     $cookieData = '';
     $saveNewSession = false;
     if ($s->find(true)) {
         //First check to see if the session expired
         $curTime = time();
         if ($s->remember_me == 1) {
             $sessionExpirationTime = $s->last_used + self::$rememberMeLifetime;
         } else {
             $sessionExpirationTime = $s->last_used + self::$lifetime;
         }
         if ($curTime > $sessionExpirationTime) {
             $s->delete();
             session_start();
             session_regenerate_id(true);
             $sess_id = session_id();
             $_SESSION = array();
             $saveNewSession = true;
         } else {
             // updated the session in the database to show that we just used it
             $s->last_used = $curTime;
             $s->update();
             $cookieData = $s->data;
         }
     } else {
         $saveNewSession = true;
     }
     if ($saveNewSession) {
         $s->session_id = $sess_id;
         //There is no active session, we need to create a new one.
         $s->last_used = time();
         // in date format - easier to read
         $s->created = date('Y-m-d h:i:s');
         if (isset($_SESSION['rememberMe']) && $_SESSION['rememberMe'] == true) {
             $s->remember_me = 1;
         } else {
             $s->remember_me = 0;
         }
         $s->insert();
     }
     return $cookieData;
 }
Example #7
0
function redirect(string $url, int $time = 0, array $data = [], bool $exit = true)
{
    if (!isUrl($url)) {
        $url = siteUrl($url);
    }
    if (!empty($data)) {
        foreach ($data as $k => $v) {
            Session::insert('redirect:' . $k, $v);
        }
    }
    if ($time > 0) {
        sleep($time);
    }
    header("Location: {$url}", true);
    if ($exit === true) {
        exit;
    }
}
 public function login($data)
 {
     $this->email = $data['email'];
     $this->password = $data['password'];
     $user = $this->find('email', $this->email);
     if ($user == NULL) {
         $result['status'] = "error";
         $result['error_text'] = "User not found.";
     } else {
         $isPasswordSame = $this->verifyHash($this->password, $user['password']);
         if ($isPasswordSame) {
             $result['status'] = "success";
             $session = new Session();
             $data = ['id' => $user['id'], 'first_name' => $user['first_name'], 'last_name' => $user['last_name'], 'user_type' => $user['type']];
             $session->insert($data);
         } else {
             $result['status'] = "error";
             $result['error_text'] = "Incorrect password.";
         }
     }
     return json_encode($result);
 }
Example #9
0
 static function write($id, $session_data)
 {
     self::logdeb("Writing session '{$id}'");
     $session = Session::staticGet('id', $id);
     if (empty($session)) {
         self::logdeb("'{$id}' doesn't yet exist; inserting.");
         $session = new Session();
         $session->id = $id;
         $session->session_data = $session_data;
         $session->created = common_sql_now();
         $result = $session->insert();
         if (!$result) {
             common_log_db_error($session, 'INSERT', __FILE__);
             self::logdeb("Failed to insert '{$id}'.");
         } else {
             self::logdeb("Successfully inserted '{$id}' (result = {$result}).");
         }
         return $result;
     } else {
         self::logdeb("'{$id}' already exists; updating.");
         if (strcmp($session->session_data, $session_data) == 0) {
             self::logdeb("Not writing session '{$id}'; unchanged");
             return true;
         } else {
             self::logdeb("Session '{$id}' data changed; updating");
             $orig = clone $session;
             $session->session_data = $session_data;
             $result = $session->update($orig);
             if (!$result) {
                 common_log_db_error($session, 'UPDATE', __FILE__);
                 self::logdeb("Failed to update '{$id}'.");
             } else {
                 self::logdeb("Successfully updated '{$id}' (result = {$result}).");
             }
             return $result;
         }
     }
 }
Example #10
0
         foreach ($menus as $key => $menu) {
             $cond_1 = POST("menu_perm{$key}") == 'on';
             $cond_2 = $perms_check[$mainmenu][$key] == TRUE;
             if ($cond_1 && $cond_2) {
                 $perms[$key] = TRUE;
             }
         }
     }
 }
 if ($mode == 'insert') {
     $msg = 'created';
     if ($insert_menu == TRUE) {
         //New template
         $template_id = Session::update_template($conn, $login . "_perms", $perms);
     }
     Session::insert($conn, $login, $login_method, $pass1, $user_name, $email, $template_id, $entities, $sel_sensors, $sel_assets, $company, $department, $language, $first_login, $tzone, $is_admin);
     User_config::copy_panel($conn, $login);
     $_SESSION['_user_vision'] = $pro ? Acl::get_user_vision($conn) : Session::get_user_vision($conn);
     Util::memcacheFlush();
     Session::log_pass_history($login, hash('sha256', $pass1));
 } else {
     $msg = 'updated';
     if ($insert_menu == TRUE) {
         Session::update_template($conn, $login . '_perms', $perms, $template_id);
     }
     $error = 0;
     if (($am_i_admin || $am_i_proadmin) && !$is_my_profile) {
         Session::update($conn, $login, $login_method, $user_name, $email, $template_id, $entities, $sel_sensors, $sel_assets, $company, $department, $language, $first_login, $tzone, $is_admin);
         Util::memcacheFlush();
     } else {
         $error = Session::update_user_light($conn, $login, $login_method, $user_name, $email, $company, $department, $language, $first_login, $is_admin, $tzone);
Example #11
0
 public function insert($name = '', $data = '', $params = array())
 {
     if (!is_scalar($name) || !is_array($params)) {
         Error::set('Error', 'valueParameter', 'name');
         Error::set('Error', 'arrayParameter', 'params');
         return false;
     }
     if (is_callable($data)) {
         return Session::insert('OB_DATAS_' . $name, $this->func($data, $params));
     } elseif (file_exists($data)) {
         return Session::insert('OB_DATAS_' . $name, $this->file($data));
     } else {
         return Session::insert('OB_DATAS_' . $name, $data);
     }
 }
Example #12
0
 /**
  * Write function that is called when session data is to be saved.
  *
  * @param string $sess_id The current session ID
  * @param string $data    The session data to write
  *
  * @return void
  * @access public
  */
 public static function write($sess_id, $data)
 {
     if (isset($_SESSION['no_store'])) {
         return true;
     }
     $s = new Session();
     $s->session_id = $sess_id;
     if ($s->find(true)) {
         $s->data = $data;
         return $s->update();
     } else {
         // in seconds - easier for calculating duration
         $s->last_used = time();
         // in date format - easier to read
         $s->created = date('Y-m-d h:i:s');
         $s->data = $data;
         return $s->insert();
     }
 }
Example #13
0
            }
        }
    }
    $sensors = "";
    for ($i = 0; $i < $nsensors; $i++) {
        ossim_valid(POST("sensor{$i}"), OSS_LETTER, OSS_DIGIT, OSS_DOT, OSS_NULLABLE, 'illegal:' . _("sensor{$i}"));
        if (ossim_error()) {
            die(ossim_error());
        }
        if ($sensors == "") {
            $sensors = POST("sensor{$i}");
        } else {
            $sensors .= "," . POST("sensor{$i}");
        }
    }
    Session::insert($conn, $user, $pass1, $name, $email, $perms, $nets, $sensors, $company, $department, $language, $first_login, $tzone);
    $db->close($conn);
    ?>
    <p> <?php 
    echo gettext("User succesfully inserted");
    ?>
 </p>
	
	<?php 
    $location = "users.php";
    sleep(2);
    echo "<script>window.location='{$location}';</script>";
}
?>

</body>