Skip to content

Commit 9cff2b7

Browse files
committed
Merge branch 'users'
2 parents b72c6fd + f094c27 commit 9cff2b7

27 files changed

+7443
-754
lines changed

app/Http/Controllers/Profile/ProfileController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ public function updateAuthUser (Request $request)
4343
public function updatePasswordAuthUser(Request $request)
4444
{
4545
$this->validate($request, [
46-
'current' => 'required',
47-
'password' => 'required|confirmed',
48-
'password_confirmation' => 'required'
46+
'current' => 'required|string',
47+
'password' => 'required|string|confirmed',
48+
'password_confirmation' => 'required|string'
4949
]);
5050

5151
$user = User::find(Auth::id());
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Users;
4+
5+
use Illuminate\Http\Request;
6+
use App\Http\Controllers\Controller;
7+
8+
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Support\Facades\Storage;
10+
11+
use Avatar;
12+
13+
use App\User;
14+
15+
class UserController extends Controller
16+
{
17+
public function filter (Request $request)
18+
{
19+
$query = User::query();
20+
21+
if($request->search) {
22+
$query->where('name', 'LIKE', '%'.$request->search.'%');
23+
}
24+
25+
$users = $query->orderBy($request->column, $request->direction)
26+
->paginate($request->perPage);
27+
28+
return $users;
29+
}
30+
31+
public function show ($user)
32+
{
33+
return User::findOrFail($user);
34+
}
35+
36+
public function store (Request $request)
37+
{
38+
$this->validate($request, [
39+
'name' => 'required|string',
40+
'email' => 'required|email|unique:users',
41+
'password' => 'required|string'
42+
]);
43+
44+
$user = User::create([
45+
'name' => $request->name,
46+
'email' => $request->email,
47+
'password' => Hash::make($request->password)
48+
]);
49+
50+
$avatar = Avatar::create($user->name)->getImageObject()->encode('png');
51+
Storage::put('avatars/'.$user->id.'/avatar.png', (string) $avatar);
52+
53+
return $user;
54+
}
55+
56+
public function update (Request $request)
57+
{
58+
$this->validate($request, [
59+
'name' => 'required|string',
60+
'email' => 'required|email|unique:users,email,'.$request->id,
61+
'password' => 'string|nullable'
62+
]);
63+
64+
$user = User::find($request->id);
65+
66+
if ($user->name != $request->name) {
67+
$avatar = Avatar::create($request->name)->getImageObject()->encode('png');
68+
Storage::put('avatars/'.$user->id.'/avatar.png', (string) $avatar);
69+
$user->name = $request->name;
70+
}
71+
if ($user->email != $request->email) {
72+
$user->email = $request->email;
73+
}
74+
if ($request->password != '') {
75+
$user->password = Hash::make($request->password);
76+
}
77+
78+
$user->save();
79+
80+
return $user;
81+
}
82+
83+
public function destroy ($user)
84+
{
85+
return User::destroy($user);
86+
}
87+
}

app/User.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
use Illuminate\Notifications\Notifiable;
66
use Illuminate\Contracts\Auth\MustVerifyEmail;
77
use Illuminate\Foundation\Auth\User as Authenticatable;
8+
use Illuminate\Database\Eloquent\SoftDeletes;
89

910
use Storage;
1011

1112
class User extends Authenticatable
1213
{
1314
use Notifiable;
15+
use SoftDeletes;
1416

1517
/**
1618
* The attributes that are mass assignable.
@@ -30,6 +32,8 @@ class User extends Authenticatable
3032
'password', 'remember_token',
3133
];
3234

35+
protected $dates = ['deleted_at'];
36+
3337
protected $appends = ['avatar_url'];
3438

3539
public function getAvatarUrlAttribute()

database/migrations/2014_10_12_000000_create_users_table.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public function up()
2222
$table->string('avatar')->default('avatar.png');
2323
$table->rememberToken();
2424
$table->timestamps();
25+
$table->softDeletes();
2526
});
2627
}
2728

package-lock.json

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
"perfect-scrollbar": "^1.4.0",
2828
"simple-line-icons": "^2.4.1",
2929
"vue-clip": "^1.0.0",
30+
"vue-moment": "^4.0.0",
31+
"vue-multiselect": "^2.1.0",
3032
"vue-toasted": "^1.1.24"
3133
}
3234
}

public/css/app.css

Lines changed: 41 additions & 5 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)