01.
<?php
if
(!Auth::userCan(
'edit_users'
)) page_restricted();
02.
03.
if
(
empty
(
$_GET
[
'id'
]) || !
is_numeric
(
$_GET
[
'id'
])) {
04.
redirect_to(
'?page=users'
);
05.
06.
}
07.
08.
$user
= User::find(
$_GET
[
'id'
]);
09.
10.
if
(isset(
$_POST
[
'submit'
]) && csrf_filter()) {
11.
12.
$data
=
array
(
13.
'email'
=>
$_POST
[
'email'
],
14.
'password'
=>
$_POST
[
'pass1'
],
15.
'password_confirmation'
=>
$_POST
[
'pass2'
],
16.
'role'
=>
$_POST
[
'role'
],
17.
'status'
=>
$_POST
[
'status'
],
18.
'permissions'
=>
$_POST
[
'permissions'
],
19.
20.
);
21.
22.
$rules
=
array
(
23.
'email'
=>
'required|email|max:100|unique:users,email,'
.
$user
->id,
24.
'password'
=>
'between:4,30|confirmed'
,
25.
'role'
=>
'required'
,
26.
'status'
=>
'required'
,
27.
'permissions'
=>
'required'
,
28.
29.
30.
);
31.
32.
if
(Config::get(
'auth.require_username'
)) {
33.
$data
[
'username'
] =
$_POST
[
'username'
];
34.
$rules
[
'username'
] =
'required|min:3|max:50|alpha_dash|unique:users,username,'
.
$user
->id;
35.
}
36.
37.
foreach
(UserFields::all(
'admin'
)
as
$key
=>
$field
) {
38.
if
(!
empty
(
$field
[
'validation'
])) {
39.
$data
[
$key
] = @
$_POST
[
$key
];
40.
$rules
[
$key
] =
$field
[
'validation'
];
41.
}
42.
}
43.
44.
$validator
= Validator::make(
$data
,
$rules
);
45.
46.
if
(
$validator
->passes()) {
47.
$displayName
= escape(@
$_POST
[
'display_name'
]);
48.
49.
if
(
empty
(
$displayName
) && !
empty
(
$_POST
[
'username'
])) {
50.
$displayName
=
$_POST
[
'username'
];
51.
}
52.
53.
if
(Config::get(
'auth.require_username'
)) {
54.
$user
->username =
$_POST
[
'username'
];
55.
}
56.
57.
if
(!
empty
(
$_POST
[
'pass1'
])) {
58.
$user
->password = Hash::make(
$_POST
[
'pass1'
]);
59.
}
60.
61.
$user
->email =
$_POST
[
'email'
];
62.
$user
->display_name =
$displayName
;
63.
$user
->role_id = (int)
$_POST
[
'role'
];
64.
$user
->status = (int)
$_POST
[
'status'
];
65.
$user
->permissions =
$_POST
[
'permissions'
];
66.
67.
if
(
$user
->save()) {
68.
foreach
(UserFields::all(
'admin'
)
as
$key
=>
$field
) {
69.
Usermeta::update(
$user
->id,
$key
, escape(@
$_POST
[
$key
]), @
$user
->usermeta[
$key
]);
70.
}
71.
72.
redirect_to(
'?page=user-edit&id='
.
$user
->id,
array
(
'user_updated'
=> true));
73.
}
else
{
74.
$errors
=
new
Hazzard\Support\MessageBag(
array
(
'error'
=> trans(
'errors.dbsave'
)));
75.
}
76.
}
else
{
77.
$errors
=
$validator
->errors();
78.
}
79.
}
80.
81.
?>