1、内核修复
2、用户模块完善和bug修复
This commit is contained in:
@@ -38,8 +38,8 @@ class User extends Admin{
|
||||
}
|
||||
|
||||
/**
|
||||
* create
|
||||
* @author colin <colin@tensent.cn>
|
||||
* 添加用户
|
||||
* @author colin <molong@tensent.cn>
|
||||
*/
|
||||
public function add(){
|
||||
$model = \think\Loader::model('User');
|
||||
@@ -77,24 +77,13 @@ class User extends Admin{
|
||||
$model = model('User');
|
||||
if(IS_POST){
|
||||
$data = $this->request->post();
|
||||
if(!$data){
|
||||
return $this->error($this->showRegError($model->getError()));
|
||||
}
|
||||
|
||||
//为空
|
||||
if($data['password'] == ''){
|
||||
unset($data['password']);
|
||||
unset($data['salt']);
|
||||
}else{
|
||||
$data['salt'] = rand_string();
|
||||
$data['password'] = md5($password.$data['salt']);
|
||||
}
|
||||
$reuslt = $model->save($data,array('uid'=>$data['uid']));
|
||||
$reuslt = $model->editUser($data, true);
|
||||
|
||||
if (false != $reuslt) {
|
||||
if (false !== $reuslt) {
|
||||
return $this->success('修改成功!', url('admin/user/index'));
|
||||
}else{
|
||||
return $this->error('修改失败!');
|
||||
return $this->error($model->getError(), '');
|
||||
}
|
||||
}else{
|
||||
$info = $this->getUserinfo();
|
||||
@@ -236,25 +225,10 @@ class User extends Admin{
|
||||
*/
|
||||
public function editpwd() {
|
||||
if (IS_POST) {
|
||||
$user = \think\Loader::model('User');
|
||||
//获取参数
|
||||
$password = input('post.old');
|
||||
if(empty($password)){
|
||||
return $this->error('请输入原密码');
|
||||
}
|
||||
$data['password'] = input('post.password');
|
||||
if (empty($data['password'])) {
|
||||
return $this->error('请输入新密码');
|
||||
}
|
||||
$repassword = input('post.repassword');
|
||||
if (empty($repassword)) {
|
||||
return $this->error('请输入确认密码');
|
||||
}
|
||||
|
||||
if ($data['password'] !== $repassword) {
|
||||
return $this->error('您输入的新密码与确认密码不一致');
|
||||
}
|
||||
$res = $user->updateUserFields(UID, $password, $data);
|
||||
$user = model('User');
|
||||
$data = $this->request->post();
|
||||
|
||||
$res = $user->editpw($data);
|
||||
if ($res) {
|
||||
return $this->success('修改密码成功!');
|
||||
}else {
|
||||
@@ -297,61 +271,4 @@ class User extends Admin{
|
||||
return $this->error('参数非法');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户注册错误信息
|
||||
* @param integer $code 错误编码
|
||||
* @return string 错误信息
|
||||
*/
|
||||
private function showRegError($code = 0) {
|
||||
switch ($code) {
|
||||
case -1:
|
||||
$error = '用户名长度必须在16个字符以内!';
|
||||
break;
|
||||
|
||||
case -2:
|
||||
$error = '用户名被禁止注册!';
|
||||
break;
|
||||
|
||||
case -3:
|
||||
$error = '用户名被占用!';
|
||||
break;
|
||||
|
||||
case -4:
|
||||
$error = '密码长度必须在6-30个字符之间!';
|
||||
break;
|
||||
|
||||
case -5:
|
||||
$error = '邮箱格式不正确!';
|
||||
break;
|
||||
|
||||
case -6:
|
||||
$error = '邮箱长度必须在1-32个字符之间!';
|
||||
break;
|
||||
|
||||
case -7:
|
||||
$error = '邮箱被禁止注册!';
|
||||
break;
|
||||
|
||||
case -8:
|
||||
$error = '邮箱被占用!';
|
||||
break;
|
||||
|
||||
case -9:
|
||||
$error = '手机格式不正确!';
|
||||
break;
|
||||
|
||||
case -10:
|
||||
$error = '手机被禁止注册!';
|
||||
break;
|
||||
|
||||
case -11:
|
||||
$error = '手机号被占用!';
|
||||
break;
|
||||
|
||||
default:
|
||||
$error = '未知错误';
|
||||
}
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">原密码:</label>
|
||||
<div class="col-lg-6 col-sm-10">
|
||||
<input type="password" name="old" class="form-control " autocomplete="off" />
|
||||
<input type="password" name="oldpassword" class="form-control " autocomplete="off" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
@@ -68,8 +68,8 @@ class User extends Base{
|
||||
return 1;
|
||||
}
|
||||
|
||||
protected function setPasswordAttr($value){
|
||||
return md5($value.$this->data['salt']);
|
||||
protected function setPasswordAttr($value, $data){
|
||||
return md5($value.$data['salt']);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -182,12 +182,20 @@ class User extends Base{
|
||||
}
|
||||
}
|
||||
|
||||
public function change(){
|
||||
$data = input('post.');
|
||||
/**
|
||||
* 修改用户资料
|
||||
*/
|
||||
public function editUser($data, $ischangepwd = false){
|
||||
if ($data['uid']) {
|
||||
if (!$ischangepwd || ($ischangepwd && $data['password'] == '')) {
|
||||
unset($data['salt']);
|
||||
unset($data['password']);
|
||||
}else{
|
||||
$data['salt'] = rand_string(6);
|
||||
}
|
||||
$result = $this->validate('member.edit')->save($data, array('uid'=>$data['uid']));
|
||||
if ($result) {
|
||||
$result = $this->extend->save($data, array('uid'=>$data['uid']));
|
||||
return $this->extend->save($data, array('uid'=>$data['uid']));
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
@@ -197,46 +205,39 @@ class User extends Base{
|
||||
}
|
||||
}
|
||||
|
||||
public function editpw(){
|
||||
$data = input('post.');
|
||||
$username = session('user_auth.username');
|
||||
$uid = session('user_auth.uid');
|
||||
$result = $this->checkPassword($username,$data['oldpassword']);
|
||||
if (!$result) {
|
||||
public function editpw($data, $is_reset = false){
|
||||
$uid = $is_reset ? $data['uid'] : session('user_auth.uid');
|
||||
if (!$is_reset) {
|
||||
//后台修改用户时可修改用户密码时设置为true
|
||||
$this->checkPassword($uid,$data['oldpassword']);
|
||||
|
||||
$validate = $this->validate('member.password');
|
||||
if (false === $validate) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$data['salt'] = rand_string(6);
|
||||
|
||||
return $this->save($data, array('uid'=>$uid));
|
||||
}
|
||||
|
||||
protected function checkPassword($uid,$password){
|
||||
if (!$uid || !$password) {
|
||||
$this->error = '原始用户UID和密码不能为空';
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = $this->where(array('uid'=>$uid))->find();
|
||||
if (md5($password.$user['salt']) === $user['password']) {
|
||||
return true;
|
||||
}else{
|
||||
$this->error = '原始密码错误!';
|
||||
return false;
|
||||
}
|
||||
if (!$data['password']) {
|
||||
$this->error = '密码不能为空!';
|
||||
return false;
|
||||
}
|
||||
if ($data['password'] !== $data['repassword']) {
|
||||
$this->error = '密码和确认密码不相同!';
|
||||
return false;
|
||||
}
|
||||
if (!$uid) {
|
||||
return false;
|
||||
}
|
||||
$data['salt'] = rand_string(6);
|
||||
$data['password'] = md5($data['password'].$data['salt']);
|
||||
$data['uid'] = $uid;
|
||||
return $this->db()->where(array('uid'=>$uid))->update($data);
|
||||
}
|
||||
|
||||
public function extend(){
|
||||
return $this->hasOne('MemberExtend', 'uid');
|
||||
}
|
||||
|
||||
protected function checkPassword($username,$password){
|
||||
if (!$username || !$password) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$user = $this->db()->where(array('username'=>$username))->find()->toArray();
|
||||
if (md5($password.$user['salt']) === $user['password']) {
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,10 +15,11 @@ namespace app\common\validate;
|
||||
class Member extends \think\Validate{
|
||||
|
||||
protected $rule = array(
|
||||
'username' => 'require|unique:member|/^[a-zA-Z]\w{0,39}$/',
|
||||
'email' => 'require|unique:member|email',
|
||||
'mobile' => 'unique:member',
|
||||
'repassword'=>'require|confirm:password'
|
||||
'username' => 'require|unique:member|/^[a-zA-Z]\w{0,39}$/',
|
||||
'email' => 'require|unique:member|email',
|
||||
'mobile' => 'unique:member',
|
||||
'password' => 'require',
|
||||
'repassword' => 'confirm:password'
|
||||
);
|
||||
protected $message = array(
|
||||
'username.require' => '用户名必须',
|
||||
@@ -26,10 +27,12 @@ class Member extends \think\Validate{
|
||||
'email.require' => '邮箱必须',
|
||||
'email.unique' => '邮箱已存在',
|
||||
'mobile.unique' => '手机号已存在',
|
||||
'password.require' => '密码必须',
|
||||
'repassword.require' => '确认密码和密码必须一致',
|
||||
);
|
||||
protected $scene = array(
|
||||
'edit' => 'email,mobile',
|
||||
'password' => 'password,repassword'
|
||||
);
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ var editor = new Simditor({
|
||||
upload : {
|
||||
placeholder : '欢迎使用SentCMS网站管理系统',
|
||||
url: "{:url('upload/editor')}",
|
||||
pasteImage:true,
|
||||
fileKey: "upload_file"
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{switch name="type"}
|
||||
{case value="readonly"}
|
||||
<input type="text" class="form-control" name="{$field}" id="{$field}" value="{$value}" readonly>
|
||||
<input type="text" class="form-control" name="{$field}" id="{$field}" value="{$value}" autocomplete="false" readonly>
|
||||
{/case}
|
||||
{case value="num"}
|
||||
<input type="text" style="width: auto;" class="form-control" name="{$field}" id="{$field}" value="{$value}">
|
||||
<input type="text" style="width: auto;" class="form-control" name="{$field}" id="{$field}" autocomplete="false" value="{$value}">
|
||||
{/case}
|
||||
{case value="decimal"}
|
||||
<input type="text" style="width: auto;" class="form-control" name="{$field}" id="{$field}" value="{$value}">
|
||||
<input type="text" style="width: auto;" class="form-control" name="{$field}" id="{$field}" autocomplete="false" value="{$value}">
|
||||
{/case}
|
||||
{case value="text"}
|
||||
<input type="text" class="form-control" name="{$field}" id="{$field}" value="{$value}">
|
||||
<input type="text" class="form-control" name="{$field}" id="{$field}" autocomplete="false" value="{$value}">
|
||||
{/case}
|
||||
{case value="password"}
|
||||
<input type="password" class="form-control" name="{$field}" id="{$field}" value="{$value}">
|
||||
<input type="password" class="form-control" name="{$field}" id="{$field}" autocomplete="false" value="{$value}">
|
||||
{/case}
|
||||
{case value="textarea"}
|
||||
<textarea class="form-control" name="{$field}" id="{$field}">{$value}</textarea>
|
||||
|
||||
@@ -16,7 +16,7 @@ class Profile extends User{
|
||||
public function index(){
|
||||
$user = model('User');
|
||||
if (IS_POST) {
|
||||
$result = $user->change();
|
||||
$result = $user->editUser($this->request->post());
|
||||
if ($result !== false) {
|
||||
return $this->success("更新成功!", "");
|
||||
}else{
|
||||
@@ -44,7 +44,7 @@ class Profile extends User{
|
||||
public function editpw(){
|
||||
$user = model('User');
|
||||
if (IS_POST) {
|
||||
$result = $user->editpw();
|
||||
$result = $user->editpw($this->request->post());
|
||||
if ($result !== false) {
|
||||
return $this->success("更新成功!", "");
|
||||
}else{
|
||||
|
||||
Reference in New Issue
Block a user