public function getList($params) { $filter['user_id'] = pamAccount::getAccountId(); $objMdlUser = app::get('sysuser')->model('user'); $objMdlUserExp = app::get('sysuser')->model('user_experience'); $objMdlUserExp->defaultOrder = array('modified_time', 'DESC'); //分页 $pageSize = $params['page_size'] ? $params['page_size'] : 40; $pageNo = $params['page_no'] ? $params['page_no'] : 1; $max = 1000000; if ($pageSize >= 1 && $pageSize < 500 && $pageNo >= 1 && $pageNo < 200 && $pageSize * $pageNo < $max) { $limit = $pageSize; $page = ($pageNo - 1) * $limit; } //排序 $orderBy = $params['orderBy']; if (!$params['orderBy']) { $orderBy = "modified_time desc"; } $data['datalist']['user'] = $objMdlUser->getRow('experience', $filter); $data['totalnum'] = $objMdlUserExp->count($filter); if (!$params['fields']) { $params['fields'] = "*"; } $data['datalist']['exp'] = $objMdlUserExp->getList($params['fields'], $filter, $page, $limit, $orderBy); return $data; }
public function getList($params) { $filter['user_id'] = pamAccount::getAccountId(); $objMdlUserPoint = app::get('sysuser')->model('user_points'); $objMdlUserPointLog = app::get('sysuser')->model('user_pointlog'); $objMdlUserPoint->defaultOrder = array('modified_time', 'DESC'); //分页 $pageSize = $params['page_size'] ? $params['page_size'] : 40; $pageNo = $params['page_no'] ? $params['page_no'] : 1; $max = 1000000; if ($pageSize >= 1 && $pageSize < 500 && $pageNo >= 1 && $pageNo < 200 && $pageSize * $pageNo < $max) { $limit = $pageSize; $page = ($pageNo - 1) * $limit; } $data['datalist']['user'] = $objMdlUserPoint->getRow('point_count', $filter); //积分过期时间 $expiredMonth = app::get('sysconf')->getConf('point.expired.month'); $expiredMonth = $expiredMonth ? $expiredMonth : 12; $expiredTime = strtotime(date('Y-' . $expiredMonth . '-01 23:59:59') . " +1 month -1 day"); $data['datalist']['user']['expired_time'] = $expiredTime; //排序 $orderBy = $params['orderBy']; if (!$params['orderBy']) { $orderBy = "modified_time desc"; } $data['totalnum'] = $objMdlUserPointLog->count($filter); if (!$params['fields']) { $params['fields'] = "*"; } $data['datalist']['point'] = $objMdlUserPointLog->getList($params['fields'], $filter, $page, $limit, $orderBy); return $data; }
public function call($method, $parameters = array(), $appId = 'default', $identity = "") { if ($identity) { switch ($identity) { case "buyer": pamAccount::setAuthType('sysuser'); $oauth['auth_type'] = pamAccount::getAuthType('sysuser'); break; case "seller": pamAccount::setAuthType('sysshop'); $oauth['auth_type'] = pamAccount::getAuthType('sysshop'); break; case "shopadmin": pamAccount::setAuthType('desktop'); $oauth['auth_type'] = pamAccount::getAuthType('desktop'); break; } $oauth['account_id'] = pamAccount::getAccountId(); $oauth['account_name'] = pamAccount::getLoginName(); } $parameters['oauth'] = $oauth; if ($this->distribute()) { if ($appId != 'default') { $appId = $appId; } return $this->callOutside($method, $parameters, $appId); } else { return $this->callInternal($method, $parameters); } }
private function __run($shopItemData, $shopId, $itemId) { pamAccount::setAuthType('sysshop'); pamAccount::setSession($shopId, 'test'); $objMdlItemDesc = app::get('sysitem')->model('item_desc'); $itemInfoDesc = $objMdlItemDesc->getRow("*", array('item_id' => $itemId)); $update = []; if ($itemInfoDesc['pc_desc']) { $pcDesc = $this->__replaceHost($itemInfoDesc['pc_desc']); //$pcDesc = $this->__replaceHref($this->__replaceImage($itemInfoDesc['pc_desc'])); if ($pcDesc != stripslashes($itemInfoDesc['pc_desc'])) { $update['pc_desc'] = $pcDesc; } } if ($itemInfoDesc['wap_desc']) { $wapDesc = $this->__replaceHost($itemInfoDesc['wap_desc']); //$wapDesc = $this->__replaceHref($this->__replaceImage($itemInfoDesc['wap_desc'])); if ($wapDesc != stripslashes($itemInfoDesc['wap_desc'])) { $update['wap_desc'] = $wapDesc; } } if ($update) { $objMdlItemDesc->update($update, array('item_id' => $itemId)); } return true; }
function __construct() { pamAccount::setAuthType('desktop'); if (pamAccount::check()) { $this->user_id = pamAccount::getAccountId(); if (empty($_SESSION['account']['user_data'])) { $_SESSION['account']['user_data'] = array(); $account = app::get('desktop')->model('account'); if ($row = $account->getList('account_id', array('account_id' => $this->user_id))) { $model = app::get('desktop')->model('users'); $data = $model->getList('user_id', array('user_id' => $this->user_id)); if (!$data) { unset($_SESSION['account'][$this->account_type]); } else { $_SESSION['account']['user_data'] = app::get('desktop')->model('users')->dump($this->user_id, '*', array(':account@desktop' => array('*'))); } } else { unset($_SESSION['account'][$this->account_type]); } } $this->user_data = $_SESSION['account']['user_data']; } else { $this->user_data = array(); } }
public function couponUseLog($apiData) { $data['tid'] = $apiData['tid']; $data['is_valid'] = '0'; $filter['user_id'] = pamAccount::getAccountId(); $filter['coupon_code'] = $apiData['coupon_code']; return app::get('sysuser')->model('user_coupon')->update($data, $filter); }
protected static function getFacadeAccessor() { pamAccount::setAuthType('sysuser'); if (!static::$__userAuth) { static::$__userAuth = new pam_auth_user(); } return static::$__userAuth; }
public function basicinfo($params) { $objMdlUser = app::get('sysuser')->model('user'); $objMdlUserGrade = app::get('sysuser')->model('user_grade'); $userData = $objMdlUser->getRow('grade_id,experience', array('user_id' => pamAccount::getAccountId())); $gradeData = $objMdlUserGrade->getRow("grade_name,grade_logo", array('grade_id' => $userData['grade_id'])); $rsdata = array_merge($userData, $gradeData); return $rsdata; }
/** * @brief 生成唯一的用户标识 * * @return 返回md5的值 */ public function getUserIdentMd5($userId = null) { pamAccount::setAuthType('sysuser'); $userId = pamAccount::getAccountId(); if ($userId) { return md5($userId); } else { return $this->getSessionUserIdent(); } }
/** * ShopEx licence * * @copyright Copyright (c) 2005-2010 ShopEx Technologies Inc. (http://www.shopex.cn) * @license http://ecos.shopex.cn/ ShopEx License */ function theme_widget_wap_ad_items(&$setting) { $rows = 'item_id,title,price,image_default_id'; $objItem = kernel::single('sysitem_item_info'); $setting['item'] = $objItem->getItemList($setting['item_select'], $rows); $setting['defaultImg'] = app::get('image')->getConf('image.set'); if (pamAccount::check()) { $setting['nologin'] = 1; } return $setting; }
function clean_data() { kernel::single('base_cleandata')->clean(); //退出登录 $this->begin('javascript:Cookie.dispose("basicloginform_password");Cookie.dispose("basicloginform_autologin");location="' . url::route('shopadmin') . '"'); $this->user->login(); $this->user->logout(); pamAccount::logout(); kernel::single('base_session')->destory(); $this->end('true', app::get('desktop')->_('已成功退出系统,正在转向...')); }
function check_name($login_name) { $pam = app::get('desktop')->model('account'); $account_type = pamAccount::getAuthType($this->app->app_id); $aData = $pam->getList('*', array('login_name' => $login_name, 'account_type' => $account_type)); $result = $aData[0]['account_id']; if ($result) { return true; } else { return false; } }
public function status() { pamAccount::setAuthType('desktop'); $errorCount = pamAccount::getLoginErrorCount(); //验证码必填是否开启 $mustVcode = app::get('desktop')->getConf('shopadminVcode'); if ($mustVcode != 'true') { //没开启验证码必填的情况下,错误三次及其以上则需要验证码 return $errorCount >= 3 ? true : false; } return true; }
public function handle($request, Clousure $next) { //获取shopInfo $sellerId = pamAccount::getAccountId(); $shopId = app::get('topshop')->rpcCall('shop.get.loginId', array('seller_id' => $sellerId), 'seller'); $requestParams = ['shop_id' => $shopId]; $shopConf = app::get('topshop')->rpcCall('open.shop.develop.conf', $requestParams); if ($shopConf['develop_mode'] == 'DEVELOP') { return redirect::action('topshop_ctl_index@nopermission'); } return $next($request); }
public function __construct($app) { $this->app = $app; $this->defaultwg = $this->defaultWorkground; kernel::single('base_session')->start(); pamAccount::setAuthType('desktop'); if ($_COOKIE['autologin'] > 0) { kernel::single('base_session')->set_sess_expires($_COOKIE['autologin']); } //如果有自动登录,设置session过期时间,单位:分 if (get_class($this) != 'desktop_ctl_passport' && !pamAccount::check()) { if (get_class($this) != 'desktop_ctl_default') { $url = url::route('shopadmin', $_GET); } else { $url = url::route('shopadmin'); } $url = base64_encode($url); $arr_get = $_GET; foreach ($arr_get as &$str_get) { $str_get = urldecode($str_get); } $params = urlencode(json_encode($arr_get)); // 直接跳转, 所以直接send $goto = url::route('shopadmin', array('ctl' => 'passport', 'url' => $url, 'params' => $params)); echo "<script>location ='{$goto}'</script>"; exit; } $this->user = kernel::single('desktop_user'); if ($_GET['ctl'] != "passport" && $_GET['ctl'] != "") { $this->status = $this->user->get_status(); if (!$this->status && $this->status == 0) { unset($_SESSION['account']); //如果验证错误,则把此次的session值清掉 $url = url::route('shopadmin'); $url = base64_encode($url); $pagedata['link_url'] = '?ctl=passport&url=' . $url; view::make('desktop/auth_error.html', $pagedata)->send(); } } ###如果不是超级管理员就查询操作权限 if (!$this->user->is_super()) { if (!$this->user->chkground($this->workground)) { header('Content-Type:text/html; charset=utf-8'); return app::get('desktop')->_("您无权操作"); } } $obj_model = app::get('desktop')->model('menus'); //检查链接是否可用 $obj_model->permissionId($_GET); //end $this->url = url::route('shopadmin', array('app' => $this->app->app_id, 'ctl' => request::get('ctl'))); }
public function listener_login($params) { $account_type = pamAccount::getAuthType('desktop'); if ($account_type === $params['type'] && $params['member_id']) { $users = app::get('desktop')->model('users'); if ($row = $users->getList('*', array('user_id' => $params['member_id']))) { $sdf['lastlogin'] = time(); $sdf['lastip'] = request::getClientIp(); $sdf['logincount'] = $row[0]['logincount'] + 1; $users->update($sdf, array('user_id' => $params['member_id'])); } } }
public function handle($request, Clousure $next) { //获取shopInfo $sellerId = pamAccount::getAccountId(); $shopId = app::get('topshop')->rpcCall('shop.get.loginId', array('seller_id' => $sellerId), 'seller'); //获取商铺信息 $requestParams = ['shop_id' => $shopId, 'fields' => 'shop_id,shop_name,shop_type']; $shopInfo = app::get('topshop')->rpcCall('shop.get', $requestParams); if ($shopInfo['shop_type'] != 'self') { return redirect::action('topshop_ctl_index@onlySelfManagement'); } return $next($request); }
private function __verifyLogin($loginName, $password) { if (empty($loginName) || !$password) { pamAccount::setLoginErrorCount(); throw new \LogicException(app::get('desktop')->_('用户名或密码错误')); } $rows = app::get('desktop')->model('account')->getRow('*', array('login_name' => trim($loginName), 'disabled' => 0)); if ($rows && pam_encrypt::check($password, $rows['login_password'])) { pamAccount::setLoginErrorCount(true); } else { pamAccount::setLoginErrorCount(); throw new \LogicException(app::get('desktop')->_('用户名或密码错误')); } return $rows['account_id']; }
private function login($filter) { $user_data['login_name'] = $filter['uname']; $user_data['account_type'] = pamAccount::getAuthType('desktop'); $user_data['disabled'] = 0; $arr = app::get('desktop')->model('account')->getRow('account_id,login_password', $user_data); if (!$arr) { return false; } $checkPwd = pam_encrypt::check($filter['password'], $arr['login_password']); if (!$checkPwd) { return false; } return $arr; }
public function saveShopNotice($postdata) { $shopNoticeMdl = app::get('sysshop')->model('shop_notice'); if ($postdata['shop_id'] == '') { $postdata['shop_id'] = '0'; } if ($postdata['notice_id'] != '') { $postdata['modified_time'] = time(); } else { $postdata['createtime'] = time(); } $adminId = pamAccount::getAccountId(); $postdata['admin_id'] = $adminId; $result = $shopNoticeMdl->save($postdata); if (!$result) { throw new \LogicException("商家通知保存失败!"); } return true; }
function chkpassword() { $this->begin('?app=desktop&ctl=users&act=index'); $users = $this->app->model('users'); if ($_POST) { $sdf = $users->dump($_POST['user_id'], '*', array(':account@desktop' => array('*'), 'roles' => array('*'))); $old_password = $sdf['account']['login_password']; //这里加了一个判断,判断是自行改密码还是超级管理员去修改 //如果是自行改密码,就去匹配自己的密码。如果是管理员的话,就去匹配超级管理员的密码 if ($_POST['self'] == 'self') { $_POST['user_id'] = $this->user->get_id(); $filter['account_id'] = $this->user->get_id(); $filter['account_type'] = pamAccount::getAuthType(); } else { $super_row = $users->getList('user_id', array('super' => '1')); $filter['account_id'] = $super_row[0]['user_id']; $filter['account_type'] = pamAccount::getAuthType(); $super_data = $users->dump($filter['account_id'], '*', array(':account@desktop' => array('*'))); } $pass_row = app::get('desktop')->model('account')->getRow('account_id,login_password', $filter); if (!$pass_row || !pam_encrypt::check(input::get('old_login_password'), $pass_row['login_password'])) { $this->end(false, app::get('desktop')->_('管理员密码或原始密码不正确')); } elseif (!(strlen($_POST['new_login_password']) >= 6 && preg_match("/\\d+/", $_POST['new_login_password']) && preg_match("/[a-zA-Z]+/", $_POST['new_login_password']))) { $this->end(false, app::get('desktop')->_('密码必须同时包含字母及数字且长度不能小于6!')); } elseif ($sdf['account']['login_name'] == $_POST['new_login_password']) { $this->end(false, app::get('desktop')->_('用户名与密码不能相同')); } elseif ($_POST['new_login_password'] !== $_POST['pam_account']['login_password']) { // //修改0000!=00000为true的问题@lujy $this->end(false, app::get('desktop')->_('两次密码不一致')); } else { $_POST['pam_account']['account_id'] = $_POST['user_id']; $_POST['pam_account']['login_password'] = pam_encrypt::make(trim($_POST['new_login_password'])); $users->save($_POST); $this->end(true, app::get('desktop')->_('密码修改成功')); } } $pagedata['user_id'] = $_GET['id']; $pagedata['self'] = $_GET['self']; $this->adminlog("修改平台管理员密码[{$_POST['user_id']}]", 1); return $this->page('desktop/users/chkpass.html', $pagedata); }
public function fullinfo($params) { $userId = $params['oauth']['account_id']; $filter['user_id'] = pamAccount::getAccountId(); $objMdlUser = app::get('sysuser')->model('user'); $objMdlUserGrade = app::get('sysuser')->model('user_grade'); $userdata = $objMdlUser->getRow('experience,grade_id', $filter); $filter['grade_id'] = $userdata['grade_id']; $gradedata = $objMdlUserGrade->getList("grade_id,grade_name,grade_logo,experience,validity", '', 0, -1, 'experience ASC'); foreach ($gradedata as $key => $value) { if ($value['grade_id'] == $userdata['grade_id']) { $gradedata[$key]['current'] = "true"; $userdata['gradename'] = $value['grade_name']; $currentLvExp = $value['experience']; } if ($value['grade_id'] != $userdata['grade_id'] && $value['experience'] < $userdata['experience']) { $gradedata[$key]['past'] = "true"; } elseif ($value['grade_id'] != $userdata['grade_id']) { $gradeval[] = $value['experience']; } } asort($gradeval); //下一个等级所需的经验值 $nextExp = array_shift($gradeval); //当前经验值高出当前等级所需经验值的数量 $a = $userdata['experience'] - $currentLvExp; //当前等级的经验值与下一个等级的差距 $b = $nextExp - $currentLvExp; //当前所有经验值与下一个等级的经验值的差距 $lackExp = $nextExp - $userdata['experience']; $percentage = $a / $b * 100; $userdata['lackExp'] = $lackExp < 0 ? 0 : $lackExp; $userdata['percentage'] = $percentage < 0 ? 0 : $percentage; $data['gradeList'] = $gradedata; if (!$userdata['gradename']) { $userdata['gradename'] = "注册会员"; } $data['userlist'] = $userdata; return $data; }
/** * 图片ID,关联上用户类型ID * * @param string $from 上传图片用户类型 */ private function __imageAttach($from = false, $test = false) { if ($from == 'shop') { pamAccount::setAuthType('sysshop'); $data['target_id'] = pamAccount::getAccountId(); $shopId = app::get('image')->rpcCall('shop.get.loginId', array('seller_id' => $data['target_id']), 'seller'); if ($shopId) { $data['target_id'] = $shopId; $data['target_type'] = 'shop'; } else { $data['target_type'] = 'seller'; } } elseif ($from == 'user') { pamAccount::setAuthType('sysuser'); $data['target_id'] = pamAccount::getAccountId(); $data['target_type'] = 'user'; } else { pamAccount::setAuthType('desktop'); $data['target_id'] = pamAccount::getAccountId(); $data['target_type'] = 'admin'; } if (!$data['target_id'] && !$test) { throw new \LogicException(app::get('image')->_('无上传图片权限')); } return $data; }
/** * @brief 企业密码修改 * * @param array $data 企业密码 * * @return int userId */ public function modifyPwd($data) { //检查数据安全 $data = utils::_filter_input($data); $accountShopModel = app::get('sysshop')->model('account'); $filter = array('seller_id' => pamAccount::getAccountId()); $account = $accountShopModel->getRow('seller_id,login_password', $filter); if (!$account) { return false; } //检查密码合法,是否一致 $this->checkPassport($data['login_password'], $data['psw_confirm']); if (!pam_encrypt::check($data['login_password_old'], $account['login_password'])) { throw new \LogicException(app::get('sysshop')->_('原密码填写错误,请重新填写!')); } $pamShopData['login_password'] = pam_encrypt::make($data['login_password']); $pamShopData['seller_id'] = $filter['seller_id']; $pamShopData['modified_time'] = time(); if (!($sellerId = $accountShopModel->save($pamShopData))) { throw new \LogicException(app::get('sysshop')->_('修改失败')); } return true; }
function listener_login($params) { $opencheck = false; $objCertchecks = kernel::servicelist("desktop.cert.check"); foreach ($objCertchecks as $objCertcheck) { if (method_exists($objCertcheck, 'certcheck') && $objCertcheck->certcheck()) { $opencheck = true; break; } } if (!$opencheck || $this->is_internal_ip() || $this->is_demosite()) { return; } if ($params['type'] === pamAccount::getAuthType('desktop')) { $result = $this->check_certid(); if ($result['res'] == 'succ' && $result['info']['valid']) { return; } else { unset($_SESSION['account'][$params['type']]); switch ($result['msg']) { case "invalid_version": $msg = "版本号有误,查看mysql是否运行正常"; break; case "RegUrlError": $msg = "你当前使用的域名与激活码所绑定的域名不一致。</br>如果你确认需要更改域名,请将“老域名”,“新域名”,“shopexid”,“激活码”发送至邮箱:ecstore_service@shopex.cn</br>如果不是更改域名,请使用激活码所绑定的域名来登陆ECstore。</br>"; break; case "SessionError": $msg = "中心请求网店API失败!请找服务商或自行检测网络,保证网络正常。"; break; case "license_error": $msg = "证书号错误!请确认config/certi.php文件真的存在!"; break; case "method_not_exist": $msg = "接口方法不存在!"; break; case "method_file_not_exist": $msg = "接口文件不存在!"; break; case "NecessaryArgsError": $msg = "缺少必填参数!"; break; case "ProductTypeError": $msg = "产品类型错误!"; break; case "UrlFormatUrl": $msg = "URL格式错误!"; break; case "invalid_sign": $msg = "验签错误!"; break; default: $msg = null; break; } if ($result == null) { $msg = "请检测您的服务器域名解析是否正常!"; } $pagedata['msg'] = $msg ? $msg : ""; $pagedata['url'] = $url = url::route('shopadmin'); $pagedata['code_url'] = url::route('shopadmin', array('app' => 'desktop', 'ctl' => 'code', 'act' => 'error_view')); return view::make('desktop/codetip.html', $pagedata); } } }
function post_uninstall() { pamAccount::unregisterAuthType('desktop'); }
public function updatepwd() { try { shopAuth::modifyPwd(input::get()); } catch (Exception $e) { $msg = $e->getMessage(); return $this->splash('error', null, $msg, true); } $url = url::action('topshop_ctl_passport@signin'); $msg = app::get('topshop')->_('修改成功,请重新登陆'); pamAccount::logout(); return $this->splash('success', $url, $msg, true); }
/** * 会员中心信息修改最后一步 * */ public function saveSetInfo($postData) { if (!$postData) { throw new \LogicException(app::get('sysuser')->_('请填写正确的数据')); return false; } if (!userVcode::verify($postData['vcode'], $postData['uname'], $postData['send_type'])) { throw new \LogicException(app::get('sysuser')->_('验证码错误')); return false; } $type = kernel::single('pam_tools')->checkLoginNameType($postData['uname']); $userId = pamAccount::getAccountId(); $db = app::get('sysuser')->database(); $transaction_status = $db->beginTransaction(); try { if ($type == 'email' && $userId) { $data = array('user_id' => $userId, 'email' => $postData['uname']); $user = app::get('sysuser')->model('account')->getRow('user_id', array('email' => $postData['uname'])); if ($user['user_id']) { throw new \LogicException(app::get('sysuser')->_('该邮箱以被绑定')); } } if ($type == 'mobile' && $userId) { $user = app::get('sysuser')->model('account')->getRow('user_id', array('mobile' => $postData['uname'])); if ($user['user_id']) { throw new \LogicException(app::get('sysuser')->_('该手机号以被绑定')); } $data = array('user_id' => $userId, 'mobile' => $postData['uname']); } $objPamMdlUser = app::get('sysuser')->model('account'); if (!$objPamMdlUser->save($data)) { throw new \LogicException(app::get('sysuser')->_("{$type}认证失败")); } $db->commit($transaction_status); } catch (Exception $e) { $db->rollback(); throw $e; } return true; }
public function post_uninstall() { pamAccount::unregisterAuthType('sysshop'); }
/** * 用于指示商家操作者的标志 * @return array 商家登录用户信息 */ public function operator() { return array('user_type' => 'seller', 'op_id' => pamAccount::getAccountId(), 'op_account' => pamAccount::getLoginName()); }