/
UsersController.php
128 lines (92 loc) · 3.21 KB
/
UsersController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
use App\User;
use App\Role;
use Response;
use DB;
use Request;
use Auth;
class UsersController extends Controller
{
public function register()
{
$inputData = Input::all();
$rules = array(
'email' => 'required|email|unique:users',
'password' => 'required|min:6|confirmed',
);
$niceNames = array(
'email' => '電子郵件',
'password' => '密碼'
);
$validator = Validator::make($inputData,$rules);
$validator->setAttributeNames($niceNames);
if($validator->fails())
return Response::json(['success' => false, 'errors' => $validator->getMessageBag()->toArray()]);
else {
//save to DB user details
$create = User::create([
'email' => Input::get('email'),
'password' => bcrypt(Input::get('password')),
]);
//when create a user, it will attach a member role
$user = User::find($create->id);
$role = Role::where('name', '=', 'member')->firstOrFail();
$user->roles()->attach($role->id);
Auth::login($user);
//return success message
return Response::json(['success' => true, 'message'=> '成功註冊!']);
}
}
public function login()
{
$email = Input::get('email');
$password = Input::get('password');
$remember = Input::has('remember');
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
//return success message
return Response::json(['success' => true, 'message'=> '成功登入!']);
}
else {
return Response::json(['success' => false, 'errors' => '電子郵件或密碼錯誤!']);
}
}
public function profile(){
$user = Auth::user();
$user = User::whereId($user->id)->firstOrFail();
return view('member.profile', compact('user'));
}
public function postProfile(){
$inputData = Input::all();
$user = Auth::user();
$rules = array(
'email' => 'required|email|Unique:users,email,'.$user->id ,
);
$niceNames = array(
'email' => '電子郵件'
);
$validator = Validator::make($inputData,$rules);
$validator->setAttributeNames($niceNames);
if($validator->fails())
return Response::json(['success' => false, 'errors' => $validator->getMessageBag()->toArray()]);
else {
$user = User::whereId($user->id)->firstOrFail();
if(Input::get('name') == '') {
$user->name = null;
}else {
$user->name = Input::get('name');
}
$user->email = Input::get('email');
$user->save();
//return success message
return Response::json(['success' => true, 'message'=> '成功更新!']);
}
}
public function forgot(){
return view('member.forgot');
}
}