Пример #1
0
 function Login($user_name, $password = NULL, $type = 'USER_NAME')
 {
     global $config_vars;
     $authentication = new Authentication();
     Debug::text('User Name: ' . $user_name . ' Password Length: ' . strlen($password) . ' Type: ' . $type, __FILE__, __LINE__, __METHOD__, 10);
     //FIXME: When using Flex, I think it sets the cookie itself, so we need to pass this information on to it before it will actually work.
     //However this should work fine for JSON/SOAP.
     //FIXME: Store the type in the authentication table so we know how the user logged in. Then we can disable certain functionality if using the phone_id.
     if (isset($config_vars['other']['web_session_expire']) and $config_vars['other']['web_session_expire'] != '') {
         $authentication->setEnableExpireSession((int) $config_vars['other']['web_session_expire']);
     }
     if ($authentication->Login($user_name, $password, $type) === TRUE) {
         $retval = $authentication->getSessionId();
         Debug::text('Success, Session ID: ' . $retval, __FILE__, __LINE__, __METHOD__, 10);
         return $retval;
     } else {
         $validator_obj = new Validator();
         $validator_stats = array('total_records' => 1, 'valid_records' => 0);
         $error_column = 'user_name';
         $error_message = TTi18n::gettext('User Name or Password is incorrect');
         //Get company status from user_name, so we can display messages for ONHOLD/Cancelled accounts.
         $clf = TTnew('CompanyListFactory');
         $clf->getByUserName($user_name);
         if ($clf->getRecordCount() > 0) {
             $c_obj = $clf->getCurrent();
             if ($c_obj->getStatus() == 20) {
                 $error_message = TTi18n::gettext('Sorry, your company\'s account has been placed ON HOLD, please contact customer support immediately');
             } elseif ($c_obj->getStatus() == 23) {
                 $error_message = TTi18n::gettext('Sorry, your trial period has expired, please contact our sales department to reactivate your account');
             } elseif ($c_obj->getStatus() == 28) {
                 if ($c_obj->getMigrateURL() != '') {
                     $error_message = TTi18n::gettext('To better serve our customers your account has been migrated, please update your bookmarks to use the following URL from now on: ') . 'http://' . $c_obj->getMigrateURL();
                 } else {
                     $error_message = TTi18n::gettext('To better serve our customers your account has been migrated, please contact customer support immediately.');
                 }
             } elseif ($c_obj->getStatus() == 30) {
                 $error_message = TTi18n::gettext('Sorry, your company\'s account has been CANCELLED, please contact customer support if you believe this is an error');
             } elseif ($c_obj->getPasswordPolicyType() == 1 and $c_obj->getProductEdition() > 10) {
                 //Password policy is enabled, confirm users password has not exceeded maximum age.
                 $ulf = TTnew('UserListFactory');
                 $ulf->getByUserName($user_name);
                 if ($ulf->getRecordCount() > 0) {
                     foreach ($ulf as $u_obj) {
                         //Make sure we confirm that the password is in fact correct, but just expired.
                         if ($u_obj->checkPassword($password, FALSE) == TRUE and $u_obj->checkPasswordAge() == FALSE) {
                             $error_message = TTi18n::gettext('Sorry, your password has exceeded its maximum age specified by your company\'s password policy and must be changed immediately');
                             $error_column = 'password';
                         }
                     }
                 }
                 unset($ulf, $u_obj);
             }
         }
         $validator_obj->isTrue($error_column, FALSE, $error_message);
         $validator[0] = $validator_obj->getErrorsArray();
         return $this->returnHandler(FALSE, 'VALIDATION', TTi18n::getText('INVALID DATA'), $validator, $validator_stats);
     }
     return $this->returnHandler(FALSE);
 }
 function Login($user_name, $password = NULL, $type = NULL)
 {
     $authentication = new Authentication();
     Debug::text('User Name: ' . $user_name . ' Password Length: ' . strlen($password) . ' Type: ' . $type, __FILE__, __LINE__, __METHOD__, 10);
     if ($authentication->Login($user_name, $password, $type) === TRUE) {
         $retval = $authentication->getSessionId();
         Debug::text('Success, Session ID: ' . $retval, __FILE__, __LINE__, __METHOD__, 10);
         return $retval;
     }
     return FALSE;
 }