Skip to content

Commit 5ffd933

Browse files
committed
user management actions functionality
1 parent 6183acb commit 5ffd933

5 files changed

Lines changed: 96 additions & 8 deletions

File tree

src/Controllers/MembersController.php

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
namespace PanicHD\PanicHD\Controllers;
44

55
use App\Http\Controllers\Controller;
6+
use App\User;
67
use Illuminate\Http\Request;
8+
use Illuminate\Validation\Rule;
79
use PanicHD\PanicHD\Models;
810

9-
1011
class MembersController extends Controller
1112
{
1213
/**
@@ -20,4 +21,80 @@ public function index(Request $request)
2021

2122
return view('panichd::admin.member.index', compact('a_members'));
2223
}
24+
25+
/**
26+
* Store a newly created resource in storage.
27+
*
28+
* @param Request $request
29+
*
30+
* @return \Illuminate\Http\RedirectResponse
31+
*/
32+
public function store(Request $request)
33+
{
34+
$rules = [
35+
'name' => 'required',
36+
'email' => 'bail|required|unique:panichd_members|email',
37+
'password' => 'required|confirmed',
38+
'password_confirmation' => 'required'
39+
];
40+
41+
$this->validate($request, $rules);
42+
43+
$member = new User;
44+
$member->name = $request->name;
45+
$member->email = $request->email;
46+
$member->password = bcrypt($request->password);
47+
$member->save();
48+
49+
\Session::flash('status', trans('panichd::admin.member-added-ok', ['name' => $member->name]));
50+
51+
return redirect()->back();
52+
}
53+
54+
public function update(Request $request, $id)
55+
{
56+
$member = User::findOrFail($id);
57+
58+
$rules = [
59+
'id' => 'exists:users',
60+
'name' => 'required',
61+
'email' => [
62+
'bail',
63+
'required',
64+
Rule::unique('users')->ignore($id),
65+
'email'
66+
]
67+
];
68+
if ($request->password != ""){
69+
$rules['password'] = 'required|confirmed';
70+
$rules['password_confirmation'] = 'required';
71+
}
72+
73+
$this->validate($request, $rules);
74+
75+
$member->name = $request->name;
76+
$member->email = $request->email;
77+
if ($request->password != ""){
78+
$member->password = bcrypt($request->password);
79+
}
80+
$member->save();
81+
82+
\Session::flash('status', trans('panichd::admin.member-updated-ok', ['name' => $member->name]));
83+
84+
return redirect()->back();
85+
}
86+
87+
public function destroy(Request $request, $id)
88+
{
89+
$member = User::findOrFail($id);
90+
if (auth()->user()->id == $id){
91+
\Session::flash('warning', 'You cannot delete your own user account');
92+
return redirect()->back();
93+
}
94+
$member->delete();
95+
96+
\Session::flash('status', trans('panichd::admin.member-deleted', ['name' => $member->name]));
97+
98+
return redirect()->back();
99+
}
23100
}

src/Translations/ca/admin.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,11 @@
168168
'member-modal-create-title' => 'Crear usuari membre',
169169
'member-delete-confirmation' => 'Estàs segur que vols eliminar l\'usuari de la base de dades?',
170170
'member-password-label' => 'Contrasenya',
171+
'member-new-password-label' => 'Contrasenya nova (opcional)',
171172
'member-password-repeat-label' => 'Repetir contrasenya',
173+
'member-added-ok' => 'L\'usuari membre ":name" s\'ha creat correctament',
174+
'member-updated-ok' => 'L\'usuari membre ":name" s\'ha actualitzat correctament',
175+
'member-deleted' => 'L\'usuari membre ":name" s\'ha ELIMINAT',
172176

173177
// $admin_route_path/priority/____
174178
'priority-index-title' => 'Gestió de prioritats',

src/Translations/en/admin.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,11 @@
169169
'member-modal-create-title' => 'Create member user',
170170
'member-delete-confirmation' => 'Are you sure you want to delete this user from database?',
171171
'member-password-label' => 'Password',
172+
'member-new-password-label' => 'New password (optional)',
172173
'member-password-repeat-label' => 'Repeat password',
173-
174+
'member-added-ok' => 'Member user ":name" has been created correctly',
175+
'member-updated-ok' => 'Member user ":name" has been updated correctly',
176+
'member-deleted' => 'Member user ":name" has been DELETED',
174177

175178
// $admin_route_path/priority/____
176179
'priority-index-title' => 'Priorities Management',

src/Views/admin/member/index.blade.php

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,10 @@
8383
$("#MemberModal .modal-title").text("{{ trans('panichd::admin.member-modal-update-title') }}");
8484
8585
// Input
86-
$("#MemberModal #id_input").val();
86+
$("#MemberModal #id_input").val($(this).data('member_id'));
8787
$("#MemberModal #name_input").val($(this).data('member_name'));
8888
$("#MemberModal #email_input").val($(this).data('member_email'));
89-
90-
$('#password_input, #password_confirmation_input').closest('div.form-group').hide();
89+
$('#MemberModal #password_label').text("{{ trans('panichd::admin.member-new-password-label') . trans('panichd::lang.colon') }}");
9190
9291
}else{
9392
// Form action
@@ -98,9 +97,13 @@
9897
$("#MemberModal .modal-title").text("{{ trans('panichd::admin.member-modal-create-title') }}");
9998
10099
// Input
101-
$("#MemberModal #id_input, #MemberModal #name_input, #MemberModal #email_input").val('');
102-
$('#password_input, #password_confirmation_input').val('').closest('div.form-group').show();
103-
}
100+
$("#MemberModal #id_input").val('');
101+
$("#MemberModal #name_input").val('{{ old("name") }}');
102+
$("#MemberModal #email_input").val('{{ old("email") }}');
103+
$('#MemberModal #password_label').text("{{ trans('panichd::admin.member-password-label') . trans('panichd::lang.colon') }}");
104+
}
105+
106+
$('#password_input, #password_confirmation_input').val('');
104107
105108
$('#MemberModal').modal('show');
106109

src/Views/admin/member/modal.blade.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
<div class="form-group">
4545
{!! CollectiveForm::label('password', trans('panichd::admin.member-password-label') . trans('panichd::lang.colon'), [
46+
'id' => 'password_label',
4647
'class' => 'control-label col-lg-3',
4748
]) !!}
4849

0 commit comments

Comments
 (0)