예제 #1
0
function create_session($workflow_id)
{
    global $user;
    $create_new_session = false;
    $_SESSION['workflow_id'] = $workflow_id;
    if (Workflow_Users::doesWorkflowHaveUserName($workflow_id, $user->name)) {
        $apiary_session_base = $user->name . '_' . $workflow_id . '_';
        if (strpos($_SESSION['apiary_session_id'], $apiary_session_base) === false) {
            $create_new_session = true;
        } else {
            if (!Workflow_Sessions::session_id_exists($_SESSION['apiary_session_id'])) {
                $create_new_session = true;
            } else {
                if (!Workflow_Sessions::renew_session($_SESSION['apiary_session_id'])) {
                    $create_new_session = true;
                }
            }
        }
        if ($create_new_session) {
            if (!empty($_SESSION['apiary_session_id'])) {
                if (Workflow_Sessions::session_id_exists($_SESSION['apiary_session_id'])) {
                    Workflow_Sessions::delete($_SESSION['apiary_session_id']);
                }
            }
            $_SESSION['apiary_session_id'] = $apiary_session_base . date("YmdHis");
            Workflow_Sessions::create($_SESSION['apiary_session_id']);
        }
        echo $_SESSION['apiary_session_id'];
    } else {
        echo "false";
    }
}
 static function create($session_id)
 {
     if ($session_id == null || $session_id == '') {
         echo 'A session_id is required.<br>';
         return false;
     }
     if (!Workflow_Sessions::session_id_exists($workflow_name)) {
         $expiration_date = date("YmdHis") + 1000000;
         //add a day to it using the YmdHis format
         $session_expiration = sprintf("%.0f", $expiration_date);
         $insert_record = db_query("INSERT into {apiary_project_workflow_sessions} (session_id, session_expiration)\r\n\t                             VALUES ('%s', '%s')", $session_id, $session_expiration);
         return $insert_record;
     } else {
         echo "Session ID already exists. <br>";
     }
     return false;
 }