public static function loginWithWhere($p_where = array()) { if (count($_POST) == 0) { return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '错误,此处不接受GET数据。'); } switch (static::getAuthIfUserCanDoIt(Utility::getCurrentUserID(), 'login')) { case 'admin': //有管理权限 //有管理权限 case 'self': //作者 //作者 case 'normal': //正常用户 //正常用户 case 'draft': //未激活 //未激活 case 'pending': //待审禁言 //待审禁言 case 'disabled': //封号 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您已登录,需要注销后才能重新登录。'); break; case 'visitor': //游客 break; default: return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作'); break; } UserHandler::$isUseCache = false; $tmpModel = UserHandler::loadModelFirstInList($p_where); UserHandler::$isUseCache = true; if (!is_object($tmpModel)) { return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NOT_USER, '登录失败,账号或密码错误。'); } switch ($tmpModel->getStatus()) { case STATUS_DRAFT: // return Utility::getArrayForResults(RUNTIME_CODE_ERROR_DATA_EMPTY,'未激活'); break; case STATUS_PENDING: // return Utility::getArrayForResults(RUNTIME_CODE_ERROR_DATA_EMPTY,'禁言用户'); break; case STATUS_DISABLED: return Utility::getArrayForResults(RUNTIME_CODE_ERROR_DATA_EMPTY, '该账号不可用,不可登录。'); break; default: // return Utility::getArrayForResults(RUNTIME_CODE_ERROR_DATA_EMPTY,'该数据暂不可用。'); break; } $tmpModel->setLastLoginTime(date('Y-m-d H:i:s')); $savedModel = UserHandler::saveModel($tmpModel); if (Utility::getHeaderValue('Devicetoken') != '') { DeviceController::setDeviceWithUser(Utility::getHeaderValue('Devicetoken'), $savedModel); } return Utility::getArrayForResults(RUNTIME_CODE_OK, '', $savedModel, array('authInfo' => Utility::getHeaderAuthInfoForUserID($savedModel->getId()))); }