Example #1
0
        default:
            return ERROR | @Trigger_Error(101);
    }
} else {
    #-----------------------------------------------------------------------------
    $UserID = $Session->Data['RootID'];
    #-----------------------------------------------------------------------------
    $UsersIDs = array($UserID);
}
#-------------------------------------------------------------------------------
if (!SetCookie(Md5($__USER['ID']), @$_SERVER['HTTP_REFERER'], Time() + 86400, '/')) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$User = Comp_Load('Users/Init', $UserID);
if (Is_Error($User)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
if (Is_Error($Session->Save())) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Redirect = SPrintF('/%s/Home', $User['InterfaceID']);
#-------------------------------------------------------------------------------
if (isset($_COOKIE[$Key = Md5($UserID)])) {
    $Redirect = $_COOKIE[$Key];
}
#-------------------------------------------------------------------------------
return array('Status' => 'Ok', 'Redirect' => $Redirect);
#-------------------------------------------------------------------------------
Example #2
0
    /**

     * function to start a web services session in ProcessMaker

     *

     * @param string $userid

     * @param string $password

     * @return $wsResponse will return an object

     */

    public function login ($userid, $password)

    {

        global $RBAC;



        try {

            $uid = $RBAC->VerifyLogin( $userid, $password );



            switch ($uid) {

                case '':

                case - 1: //The user doesn't exist

                    $wsResponse = new wsResponse( 3, G::loadTranslation( 'ID_USER_NOT_REGISTERED' ) );

                    break;

                case - 2: //The password is incorrect

                    $wsResponse = new wsResponse( 4, G::loadTranslation( 'ID_WRONG_PASS' ) );

                    break;

                case - 3: //The user is inactive

                    $wsResponse = new wsResponse( 5, G::loadTranslation( 'ID_USER_INACTIVE' ) );

                    break;

                case - 4: //The Due date is finished

                    $wsResponse = new wsResponse( 5, G::loadTranslation( 'ID_USER_INACTIVE' ) );

                    break;

            }



            if ($uid < 0 || $uid == '') {

                throw (new Exception( serialize( $wsResponse ) ));

            }



            //check access to PM

            $RBAC->loadUserRolePermission( $RBAC->sSystem, $uid );

            $res = $RBAC->userCanAccess( "PM_LOGIN" );



            if ($res != 1) {

                //if ($res == -2)

                //  $wsResponse = new wsResponse(1, G::loadTranslation('ID_USER_HAVENT_RIGHTS_SYSTEM'));

                //else

                $wsResponse = new wsResponse( 2, G::loadTranslation( 'ID_USER_HAVENT_RIGHTS_SYSTEM' ) );

                throw (new Exception( serialize( $wsResponse ) ));

            }



            $sessionId = G::generateUniqueID();

            $wsResponse = new wsResponse( '0', $sessionId );



            $session = new Session();

            $session->setSesUid( $sessionId );

            $session->setSesStatus( 'ACTIVE' );

            $session->setUsrUid( $uid );

            $session->setSesRemoteIp( $_SERVER['REMOTE_ADDR'] );

            $session->setSesInitDate( date( 'Y-m-d H:i:s' ) );

            $session->setSesDueDate( date( 'Y-m-d H:i:s', mktime( date( 'H' ), date( 'i' ) + 15, date( 's' ), date( 'm' ), date( 'd' ), date( 'Y' ) ) ) );

            $session->setSesEndDate( '' );

            $session->Save();



            //save the session in DataBase





            return $wsResponse;

        } catch (Exception $e) {

            $wsResponse = unserialize( $e->getMessage() );



            return $wsResponse;

        }

    }
Example #3
0
    $UM->mail_prefix = $sess["folder_prefix"] = $f_prefix;
    $refr = 1;
} elseif ($sess["auth"] && intval((time() - $start) / 60) < $idle_timeout) {
    $UM->mail_user = $f_user = $sess["user"];
    $UM->mail_pass = $f_pass = $sess["pass"];
    $UM->mail_server = $f_server = $sess["server"];
    $UM->mail_email = $f_email = $sess["email"];
    $UM->mail_port = $f_port = $sess["port"];
    $UM->mail_protocol = $f_protocol = $sess["protocol"];
    $UM->mail_prefix = $f_prefix = $sess["folder_prefix"];
} else {
    redirect("./index.php?tid={$tid}&lid={$lid}");
    exit;
}
$sess["start"] = time();
$SS->Save($sess);
$userfolder = $temporary_directory . ereg_replace("[^a-z0-9\\._-]", "_", strtolower($f_user)) . "_" . strtolower($f_server) . "/";
$UM->debug = $enable_debug;
$UM->use_html = $allow_html;
$UM->user_folder = $userfolder;
$UM->temp_folder = $temporary_directory;
$UM->timeout = $idle_timeout;
$prefs = load_prefs();
$UM->timezone = $prefs["timezone"];
$UM->charset = $default_char_set;
/*
Don't remove the fallowing lines, or you will be problems with browser's cache 
*/
Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n" . "Cache-Control: no-cache\r\n" . "Cache-Control: must-revalidate");
$nocache = "\n<META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache\">\n<META HTTP-EQUIV=\"Expires\" CONTENT=\"-1\">";
// Sort rules