1
0
Files
lkafu/app/Http/Controllers/SettingsController.php
2020-08-06 14:45:56 +08:00

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'));
}
}
}