Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
laravel-adminpanel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
laravel-adminpanel
Commits
71e026d7
Commit
71e026d7
authored
Nov 26, 2017
by
Viral Solani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor Update User
parent
41f706cc
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
58 additions
and
176 deletions
+58
-176
UserController.php
app/Http/Controllers/Backend/Access/User/UserController.php
+1
-1
UpdateUserRequest.php
app/Http/Requests/Backend/Access/User/UpdateUserRequest.php
+0
-11
UserAccess.php
app/Models/Access/User/Traits/UserAccess.php
+18
-3
UserRepository.php
app/Repositories/Backend/Access/User/UserRepository.php
+30
-50
UserTableSeeder.php
database/seeds/Access/UserTableSeeder.php
+0
-18
edit.blade.php
resources/views/backend/access/edit.blade.php
+9
-93
No files found.
app/Http/Controllers/Backend/Access/User/UserController.php
View file @
71e026d7
...
...
@@ -122,7 +122,7 @@ class UserController extends Controller
*/
public
function
update
(
User
$user
,
UpdateUserRequest
$request
)
{
$this
->
users
->
update
(
$user
,
[
'data'
=>
$request
->
except
(
'assignees_roles'
),
'roles'
=>
$request
->
all
(
'assignees_roles'
)]
);
$this
->
users
->
update
(
$user
,
$request
);
return
redirect
()
->
route
(
'admin.access.user.index'
)
->
withFlashSuccess
(
trans
(
'alerts.backend.users.updated'
));
}
...
...
app/Http/Requests/Backend/Access/User/UpdateUserRequest.php
View file @
71e026d7
...
...
@@ -30,10 +30,6 @@ class UpdateUserRequest extends Request
'email'
=>
'required|email'
,
'first_name'
=>
'required'
,
'last_name'
=>
'required'
,
'state_id'
=>
'required'
,
'city_id'
=>
'required'
,
'zip_code'
=>
'required|regex:/^[0-9]+$/'
,
'ssn'
=>
'required|regex:/^[0-9]+$/|max:9|min:9'
,
];
}
...
...
@@ -45,13 +41,6 @@ class UpdateUserRequest extends Request
public
function
messages
()
{
return
[
'state_id.required'
=>
'The state field is required.'
,
'city_id.required'
=>
'The city field is required.'
,
'ssn.regex'
=>
'The SSN field must be 9 digits.'
,
'ssn.min'
=>
'The SSN field must be 9 digits.'
,
'ssn.max'
=>
'The SSN field must be 9 digits.'
,
'zip_code.regex'
=>
'The zip code field must be digit.'
,
];
}
}
app/Models/Access/User/Traits/UserAccess.php
View file @
71e026d7
...
...
@@ -305,9 +305,23 @@ trait UserAccess
}
/**
*
Alias to eloquent many-to-many relation's detach() method
.
*
Detach multiple permissions from current role
.
*
* @param mixed $permission
* @param mixed $permissions
*
* @return void
*/
public
function
detachPermissions
(
$permissions
)
{
foreach
(
$permissions
as
$permission
)
{
$this
->
detachPermission
(
$permission
);
}
}
/**
* Detach permission form current User.
*
* @param object|array $permission
*
* @return void
*/
...
...
@@ -321,6 +335,7 @@ trait UserAccess
$permission
=
$permission
[
'id'
];
}
$this
->
permission
()
->
detach
(
$permission
);
$this
->
permission
s
()
->
detach
(
$permission
);
}
}
app/Repositories/Backend/Access/User/UserRepository.php
View file @
71e026d7
...
...
@@ -120,27 +120,26 @@ class UserRepository extends BaseRepository
public
function
create
(
$request
)
{
$data
=
$request
->
except
(
'assignees_roles'
,
'permissions'
);
$roles
=
$request
->
all
(
'assignees_roles'
);
$permissions
=
$request
->
all
(
'permissions'
)
?
$request
->
all
(
'permissions'
)
:
[]
;
$roles
=
$request
->
get
(
'assignees_roles'
);
$permissions
=
$request
->
get
(
'permissions'
)
;
$user
=
$this
->
createUserStub
(
$data
);
DB
::
transaction
(
function
()
use
(
$user
,
$data
,
$r
equest
)
{
DB
::
transaction
(
function
()
use
(
$user
,
$data
,
$r
oles
,
$permissions
)
{
// Set email type 2
$email_type
=
2
;
if
(
$user
->
save
())
{
//User Created, Validate Roles
if
(
!
count
(
$r
equest
->
get
(
'assignees_roles'
)
))
{
if
(
!
count
(
$r
oles
))
{
throw
new
GeneralException
(
trans
(
'exceptions.backend.access.users.role_needed_create'
));
}
//Attach new roles
$user
->
attachRoles
(
$r
equest
->
get
(
'assignees_roles'
)
);
$user
->
attachRoles
(
$r
oles
);
// Attach New Permissions
$user
->
attachPermissions
(
$request
->
get
(
'permissions'
));
//$this->attachPermissions($permissions);
$user
->
attachPermissions
(
$permissions
);
//Send confirmation email if requested and account approval is off
if
(
isset
(
$data
[
'confirmation_email'
])
&&
$user
->
confirmed
==
0
)
{
...
...
@@ -149,24 +148,6 @@ class UserRepository extends BaseRepository
event
(
new
UserCreated
(
$user
));
//@todo if it is require it can go to event to send notfication
//or user laravel 5.5 notification
//Send confirmation email if requested
/*if (isset($data['confirmation_email']) && $user->confirmed == 0) {
// If user needs confirmation then set email type 1
$email_type = 1;
$input['data']['confirmation_code'] = $user->confirmation_code;
}
// Send email to the user
$options = [
'data' => $input['data'],
'email_template_type' => $email_type,
];
//createNotification('', 1, 2, $options);*/
return
true
;
}
...
...
@@ -176,25 +157,23 @@ class UserRepository extends BaseRepository
/**
* @param Model $user
* @param
array $inpu
t
* @param
$reques
t
*
* @throws GeneralException
*
* @return bool
*/
public
function
update
(
Model
$user
,
array
$inpu
t
)
public
function
update
(
Model
$user
,
$reques
t
)
{
$data
=
$input
[
'data'
];
$roles
=
$input
[
'roles'
];
$permissions
=
isset
(
$data
[
'permissions'
])
?
$data
[
'permissions'
]
:
[];
unset
(
$data
[
'permissions'
]);
$data
=
$request
->
except
(
'assignees_roles'
,
'permissions'
);
$roles
=
$request
->
get
(
'assignees_roles'
);
$permissions
=
$request
->
get
(
'permissions'
);
$this
->
checkUserByEmail
(
$data
,
$user
);
DB
::
transaction
(
function
()
use
(
$user
,
$data
,
$roles
,
$permissions
)
{
if
(
$user
->
update
(
$data
))
{
//For whatever reason this just wont work in the above call, so a second is needed for now
$user
->
status
=
isset
(
$data
[
'status'
])
?
1
:
0
;
$user
->
confirmed
=
isset
(
$data
[
'confirmed'
])
?
1
:
0
;
$user
->
save
();
...
...
@@ -202,22 +181,8 @@ class UserRepository extends BaseRepository
$this
->
checkUserRolesCount
(
$roles
);
$this
->
flushRoles
(
$roles
,
$user
);
$this
->
flushPermissions
(
$permissions
,
$user
);
event
(
new
UserUpdated
(
$user
));
$arrUserPermissions
=
[];
if
(
isset
(
$permissions
)
&&
count
(
$permissions
)
>
0
)
{
foreach
(
$permissions
as
$permission
)
{
$arrUserPermissions
[]
=
[
'permission_id'
=>
$permission
,
'user_id'
=>
$user
->
id
,
];
}
// Insert multiple rows at once
DB
::
table
(
'permission_user'
)
->
where
(
'user_id'
,
$user
->
id
)
->
delete
();
DB
::
table
(
'permission_user'
)
->
insert
(
$arrUserPermissions
);
}
return
true
;
}
...
...
@@ -383,6 +348,8 @@ class UserRepository extends BaseRepository
}
/**
* Flush roles out, then add array of new ones
*
* @param $roles
* @param $user
*/
...
...
@@ -390,7 +357,20 @@ class UserRepository extends BaseRepository
{
//Flush roles out, then add array of new ones
$user
->
detachRoles
(
$user
->
roles
);
$user
->
attachRoles
(
$roles
[
'assignees_roles'
]);
$user
->
attachRoles
(
$roles
);
}
/**
* Flush Permissions out, then add array of new ones
*
* @param $permissions
* @param $user
*/
protected
function
flushPermissions
(
$permissions
,
$user
)
{
//Flush roles out, then add array of new ones
$user
->
detachPermissions
(
$user
->
roles
);
$user
->
attachPermissions
(
$permissions
);
}
/**
...
...
@@ -402,7 +382,7 @@ class UserRepository extends BaseRepository
{
//User Updated, Update Roles
//Validate that there's at least one role chosen
if
(
count
(
$roles
[
'assignees_roles'
]
)
==
0
)
{
if
(
count
(
$roles
)
==
0
)
{
throw
new
GeneralException
(
trans
(
'exceptions.backend.access.users.role_needed'
));
}
}
...
...
database/seeds/Access/UserTableSeeder.php
View file @
71e026d7
...
...
@@ -28,12 +28,6 @@ class UserTableSeeder extends Seeder
[
'first_name'
=>
'Admin Istrator'
,
'last_name'
=>
'Admin Istrator'
,
'address'
=>
'Admin Istrator'
,
'ssn'
=>
'Admin Istrator'
,
'city_id'
=>
'2'
,
'state_id'
=>
'1'
,
'country_id'
=>
'1'
,
'zip_code'
=>
'1123'
,
'email'
=>
'admin@admin.com'
,
'password'
=>
bcrypt
(
'1234'
),
'confirmation_code'
=>
md5
(
uniqid
(
mt_rand
(),
true
)),
...
...
@@ -47,12 +41,6 @@ class UserTableSeeder extends Seeder
[
'first_name'
=>
'Backend User'
,
'last_name'
=>
'Admin Istrator'
,
'address'
=>
'Admin Istrator'
,
'ssn'
=>
'Admin Istrator'
,
'city_id'
=>
'2'
,
'state_id'
=>
'1'
,
'country_id'
=>
'1'
,
'zip_code'
=>
'1123'
,
'email'
=>
'executive@executive.com'
,
'password'
=>
bcrypt
(
'1234'
),
'confirmation_code'
=>
md5
(
uniqid
(
mt_rand
(),
true
)),
...
...
@@ -66,12 +54,6 @@ class UserTableSeeder extends Seeder
[
'first_name'
=>
'Default User'
,
'last_name'
=>
'Admin Istrator'
,
'address'
=>
'Admin Istrator'
,
'ssn'
=>
'Admin Istrator'
,
'city_id'
=>
'2'
,
'state_id'
=>
'1'
,
'country_id'
=>
'1'
,
'zip_code'
=>
'1123'
,
'email'
=>
'user@user.com'
,
'password'
=>
bcrypt
(
'1234'
),
'confirmation_code'
=>
md5
(
uniqid
(
mt_rand
(),
true
)),
...
...
resources/views/backend/access/edit.blade.php
View file @
71e026d7
...
...
@@ -22,6 +22,7 @@
</div><!-- /.box-header -->
<div class="
box
-
body
">
{{-- First Name --}}
<div class="
form
-
group
">
{{ Form::label('name', trans('validation.attributes.backend.access.users.firstName'), ['class' => 'col-lg-2 control-label required']) }}
...
...
@@ -30,6 +31,7 @@
</div><!--col-lg-10-->
</div><!--form control-->
{{-- Last Name --}}
<div class="
form
-
group
">
{{ Form::label('name', trans('validation.attributes.backend.access.users.lastName'), ['class' => 'col-lg-2 control-label required']) }}
...
...
@@ -38,6 +40,7 @@
</div><!--col-lg-10-->
</div><!--form control-->
{{-- Email --}}
<div class="
form
-
group
">
{{ Form::label('email', trans('validation.attributes.backend.access.users.email'), ['class' => 'col-lg-2 control-label required']) }}
...
...
@@ -46,46 +49,7 @@
</div><!--col-lg-10-->
</div><!--form control-->
{{-- address --}}
<div class="
form
-
group
">
{{ Form::label('address', trans('validation.attributes.frontend.register-user.address'), ['class' => 'col-lg-2 control-label']) }}
<div class="
col
-
lg
-
10
">
{{ Form::input('textarea', 'address', null, ['class' => 'form-control box-size', 'placeholder' => trans('validation.attributes.frontend.register-user.address'), 'rows' => '3']) }}
</div><!--col-lg-10-->
</div><!--form-group-->
{{-- state --}}
<div class="
form
-
group
">
{{ Form::label('state_id', trans('validation.attributes.frontend.register-user.state'), ['class' => 'col-lg-2 control-label required']) }}
<div class="
col
-
lg
-
10
">
{{ Form::select('state_id', [] , null, ['class' => 'form-control select2 box-size', 'placeholder' => trans('validation.attributes.frontend.register-user.state'), 'id' => 'state', 'required' => 'required']) }}
</div><!--col-lg-10-->
</div><!--form-group-->
{{-- city --}}
<div class="
form
-
group
">
{{ Form::label('city_id', trans('validation.attributes.frontend.register-user.city'), ['class' => 'col-lg-2 control-label required']) }}
<div class="
col
-
lg
-
10
">
{{ Form::select('city_id', [], null, ['class' => 'form-control select2 box-size', 'placeholder' => trans('validation.attributes.frontend.register-user.city'), 'id' => 'city', 'required' => 'required']) }}
</div><!--col-lg-10-->
</div><!--form-group-->
{{-- zipcode --}}
<div class="
form
-
group
">
{{ Form::label('zip_code', trans('validation.attributes.frontend.register-user.zipcode'), ['class' => 'col-lg-2 control-label required']) }}
<div class="
col
-
lg
-
10
">
{{ Form::input('name', 'zip_code', null, ['class' => 'form-control box-size', 'placeholder' => trans('validation.attributes.frontend.register-user.zipcode'), 'required' => 'required']) }}
</div><!--col-lg-6-->
</div><!--form-group-->
{{-- SSN --}}
<div class="
form
-
group
">
{{ Form::label('ssn', trans('validation.attributes.frontend.register-user.ssn'), ['class' => 'col-lg-2 control-label required']) }}
<div class="
col
-
lg
-
10
">
{{ Form::input('name', 'ssn', null, ['class' => 'form-control box-size', 'placeholder' => trans('validation.attributes.frontend.register-user.ssn'), 'required' => 'required']) }}
</div><!--col-lg-6-->
</div><!--form-group-->
{{-- Status --}}
@if (
$user->id
!= 1)
<div class="
form
-
group
">
{{ Form::label('status', trans('validation.attributes.backend.access.users.active'), ['class' => 'col-lg-2 control-label']) }}
...
...
@@ -99,6 +63,7 @@
</div><!--col-lg-1-->
</div><!--form control-->
{{-- Confirmed --}}
<div class="
form
-
group
">
{{ Form::label('confirmed', trans('validation.attributes.backend.access.users.confirmed'), ['class' => 'col-lg-2 control-label']) }}
...
...
@@ -112,6 +77,7 @@
</div><!--col-lg-1-->
</div><!--form control-->
{{-- Associated Roles --}}
<div class="
form
-
group
">
{{ Form::label('status', trans('validation.attributes.backend.access.users.associated_roles'), ['class' => 'col-lg-2 control-label']) }}
...
...
@@ -153,6 +119,7 @@
</div><!--col-lg-3-->
</div><!--form control-->
{{-- Associated Permissions --}}
<div class="
form
-
group
">
{{ Form::label('associated-permissions', trans('validation.attributes.backend.access.roles.associated_permissions'), ['class' => 'col-lg-2 control-label']) }}
<div class="
col
-
lg
-
10
">
...
...
@@ -199,63 +166,12 @@
{{ Html::script('js/backend/access/users/script.js') }}
<script type="
text
/
javascript
">
$(document).ready(function() {
//Getting States of default contry
ajaxCall("
{{
route
(
'admin.get.states'
)}}
");
jQuery(document).ready(function() {
Backend.Access.init();
//Getting Cities of select State
$("
#state").on("change", function() {
var
stateId
=
$
(
this
)
.
val
();
var
url
=
"
{
{route('admin.get.cities')}
}
"
;
ajaxCall
(
url
,
stateId
);
});
function
ajaxCall
(
url
,
data
=
null
)
{
$
.
ajax
({
url
:
url
,
type
:
"POST"
,
data
:
{
stateId
:
data
},
success
:
function
(
result
)
{
if
(
result
!=
null
)
{
if
(
result
.
status
==
"city"
)
{
var
userCity
=
"{{
$user->city_id
}}"
;
var
options
;
$
.
each
(
result
.
data
,
function
(
key
,
value
)
{
if
(
key
==
userCity
)
options
+=
"<option value='"
+
key
+
"' selected>"
+
value
+
"</option>"
;
else
options
+=
"<option value='"
+
key
+
"'>"
+
value
+
"</option>"
;
});
$
(
"#city"
)
.
html
(
''
);
$
(
"#city"
)
.
append
(
options
);
}
else
{
var
userState
=
"{{
$user->state_id
}}"
;
var
options
;
$
.
each
(
result
.
data
,
function
(
key
,
value
)
{
if
(
key
==
userState
)
options
+=
"<option value='"
+
key
+
"' selected>"
+
value
+
"</option>"
;
else
options
+=
"<option value='"
+
key
+
"'>"
+
value
+
"</option>"
;
});
$
(
"#state"
)
.
append
(
options
);
$
(
"#state"
)
.
trigger
(
'change'
);
}
}
}
});
}
/**
* This function is used to get clicked element role id and return required result
*/
$
(
'.get-role-for-permissions'
)
.
click
(
function
()
{
jQuery
('.get-role-for-permissions').click(function () {
$.ajax({
type: "
POST
",
url: "
{{
route
(
'admin.get.permission'
)
}}
",
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment