Esempio n. 1
0
 /**
  * 检查用户是否存在
  *
  * @param  strint $user 用户标识 uid|phone|uname|email
  * @return array
  * @author Medz Seven <*****@*****.**>
  **/
 public function hasUser($user, $isUid = false)
 {
     if ($isUid) {
         $users = Models\User::existent()->audit()->byUid($user)->get();
     } elseif (MedzValidator::isEmail($user)) {
         $users = Models\User::existent()->audit()->byEmail($user)->get();
     } else {
         $users = Models\User::existent()->audit()->where('uid', '=', intval($user))->orWhere('uname', '=', EmojiFormat::en($user))->orWhere('phone', '=', EmojiFormat::en($user))->get();
     }
     return $users;
 }
 /**
  * 验证昵称内容的正确性
  * @param  string $name     输入昵称的信息
  * @param  string $old_name 原始昵称的信息
  * @return bool   是否验证成功
  */
 public function isValidName($name, $old_name = null)
 {
     // 默认不准使用的昵称
     $protected_name = array('name', 'uname', 'admin', 'profile', 'space');
     $site_config = model('Xdata')->get('admin_Config:site');
     !empty($site_config['sys_nickname']) && ($protected_name = array_merge($protected_name, explode(',', $site_config['sys_nickname'])));
     if (in_array($name, $protected_name)) {
         $this->_error = L('PUBLIC_NICKNAME_RESERVED');
         // 抱歉,该昵称不允许被使用
         return false;
     }
     //不能为手机号格式
     $phone_reg = preg_match($this->_phone_reg, $name) !== 0;
     if ($phone_reg) {
         $this->_error = '用户名不能为手机号格式';
         return false;
     }
     //其他格式
     $res = preg_match($this->_name_reg, $name) !== 0;
     if ($res) {
         $length = get_str_length($name);
         $res = $length >= 2 && $length <= 10;
         if (!$res) {
             $this->_error = L('PUBLIC_NICKNAME_LIMIT', array('nums' => '2-10'));
             // 昵称长度必须在2-10个汉字之间
             return false;
         }
     } else {
         $this->_error = '昵称仅支持中英文,数字,下划线';
         return false;
     }
     $old_user = \Ts\Models\User::existent()->byUserName($old_name)->first();
     $user = \Ts\Models\User::existent()->byUserName($name)->first();
     if ($name != $old_name && $old_name && $user && $old_user->uid != $user->uid) {
         $this->_error = '该用户名已经存在。';
         return false;
     }
     //敏感词
     if (filter_keyword($name) !== $name) {
         $this->_error = '抱歉,该昵称包含敏感词不允许被使用';
         return false;
     }
     return true;
 }