コード例 #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";
    }
}