161 lines
5.4 KiB
PHP
161 lines
5.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Param;
|
|
use App\User;
|
|
use Auth;
|
|
use Hash;
|
|
use Illuminate\Http\Request;
|
|
use RuLong\Sms\Models\Sms as SmsModel;
|
|
use Session;
|
|
use Validator;
|
|
use \Illuminate\Support\Facades\URL;
|
|
|
|
class SettingsController extends Controller
|
|
{
|
|
public function __construct(Request $request)
|
|
{
|
|
$this->middleware('auth');
|
|
view()->share('nav', 4);
|
|
}
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$user = Auth::user();
|
|
return view('settings.index', compact('user'));
|
|
}
|
|
|
|
public function mobile(Request $request)
|
|
{
|
|
if ($request->isMethod('POST')) {
|
|
|
|
$validator = Validator::make($request->all(), [
|
|
'username' => 'required|mobile|unique:users',
|
|
'code' => ['required', 'size:4', function ($attribute, $value, $fail) use ($request) {
|
|
if ($value != SmsModel::where('mobile', $request->username)->where('used', 0)->latest()->value('code')) {
|
|
return $fail('验证码不正确');
|
|
}
|
|
}],
|
|
], [
|
|
'username.required' => '手机号码必须填写',
|
|
'username.mobile' => '手机号码格式不正确',
|
|
'username.unique' => '手机号码已经绑定',
|
|
'code.required' => '验证码必须填写',
|
|
'code.size' => '验证码长度为:size位',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
$username = $request->username;
|
|
|
|
$user = Auth::user();
|
|
|
|
$user->username = $username;
|
|
$user->save();
|
|
|
|
return $this->success('手机号修改成功', route('user.index'));
|
|
} else {
|
|
return view('settings.mobile');
|
|
}
|
|
}
|
|
|
|
public function password(Request $request)
|
|
{
|
|
if ($request->isMethod('post')) {
|
|
$validator = Validator::make($request->all(), [
|
|
'oldpassword' => ['required', function ($attribute, $value, $fail) {
|
|
if (!Hash::check($value, Auth::user()->password)) {
|
|
return $fail('原密码不正确');
|
|
}
|
|
}],
|
|
'password' => 'required|between:6,32|confirmed',
|
|
'password_confirmation' => 'required|between:6,32',
|
|
], [
|
|
'oldpassword.required' => '原密码必须填写',
|
|
'password.required' => '新密码必须填写',
|
|
'password.between' => '新密码有误',
|
|
'password.confirmed' => '确认密码与新密码不一致',
|
|
'password_confirmation.required' => '确认密码必须填写',
|
|
'password_confirmation.between' => '确认密码有误',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
$user = Auth::user();
|
|
$user->password = $request->password;
|
|
if ($user->save()) {
|
|
return $this->success('密码修改成功', route('user.index'));
|
|
} else {
|
|
return $this->error('密码修改失败');
|
|
}
|
|
|
|
} else {
|
|
return view('settings.password');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 找回支付密码
|
|
* @Author:<C.Jason>
|
|
* @Date:2018-11-07T13:46:34+0800
|
|
* @param Request $request
|
|
*/
|
|
public function forgot(Request $request)
|
|
{
|
|
if ($request->isMethod('POST')) {
|
|
$validator = Validator::make($request->all(), [
|
|
'mobile' => 'required|mobile|exists:users',
|
|
'code' => 'required|sms_check:mobile,FORGOT',
|
|
], [
|
|
'mobile.required' => '手机号码必须填写',
|
|
'mobile.mobile' => '手机号码格式不正确',
|
|
'mobile.exists' => '手机号码不存在',
|
|
'code.required' => '验证码必须填写',
|
|
'code.sms_check' => '验证码不正确',
|
|
]);
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
$request->session()->put('reset_mobile', $request->mobile);
|
|
return $this->success('身份验证成功', Url::temporarySignedRoute('setting.forgot.reset', now()->addHour()));
|
|
} else {
|
|
return view('settings.forgot');
|
|
}
|
|
}
|
|
|
|
//修改昵称
|
|
public function nickname(Request $request)
|
|
{
|
|
$user = Auth::user();
|
|
if ($request->isMethod('POST')) {
|
|
$validator = Validator::make($request->all(), [
|
|
'nickname' => 'required',
|
|
], [
|
|
'nickname.required' => '昵称必须填写',
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return $this->error($validator->errors()->first());
|
|
}
|
|
|
|
$result = $user->info()->update([
|
|
'nickname' => $request->nickname,
|
|
]);
|
|
if ($result) {
|
|
return $this->success('信息更新成功', route('user.index'));
|
|
} else {
|
|
return $this->error('信息更新失败');
|
|
}
|
|
|
|
} else {
|
|
return view('settings.nickname', compact('user'));
|
|
}
|
|
}
|
|
|
|
}
|