mirror of
https://github.com/snipe/snipe-it.git
synced 2025-01-11 13:57:41 -08:00
Added permissions on user api (#7883)
* Add permissions to user edit API * Add user permissions on user create/update API endpoint
This commit is contained in:
parent
ca43554327
commit
54fd8f81ff
|
@ -14,6 +14,7 @@ use App\Http\Transformers\AssetsTransformer;
|
||||||
use App\Http\Transformers\SelectlistTransformer;
|
use App\Http\Transformers\SelectlistTransformer;
|
||||||
use App\Http\Transformers\AccessoriesTransformer;
|
use App\Http\Transformers\AccessoriesTransformer;
|
||||||
use App\Http\Transformers\LicensesTransformer;
|
use App\Http\Transformers\LicensesTransformer;
|
||||||
|
use Auth;
|
||||||
|
|
||||||
class UsersController extends Controller
|
class UsersController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -207,6 +208,17 @@ class UsersController extends Controller
|
||||||
$user = new User;
|
$user = new User;
|
||||||
$user->fill($request->all());
|
$user->fill($request->all());
|
||||||
|
|
||||||
|
if ($request->has('permissions')) {
|
||||||
|
|
||||||
|
$permissions_array = $request->input('permissions');
|
||||||
|
|
||||||
|
// Strip out the superuser permission if the API user isn't a superadmin
|
||||||
|
if (!Auth::user()->isSuperUser()) {
|
||||||
|
unset($permissions_array['superuser']);
|
||||||
|
}
|
||||||
|
$user->permissions = $permissions_array;
|
||||||
|
}
|
||||||
|
|
||||||
$tmp_pass = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20);
|
$tmp_pass = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 20);
|
||||||
$user->password = bcrypt($request->get('password', $tmp_pass));
|
$user->password = bcrypt($request->get('password', $tmp_pass));
|
||||||
|
|
||||||
|
@ -261,6 +273,23 @@ class UsersController extends Controller
|
||||||
$user->password = bcrypt($request->input('password'));
|
$user->password = bcrypt($request->input('password'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We need to use has() instead of filled()
|
||||||
|
// here because we need to overwrite permissions
|
||||||
|
// if someone needs to null them out
|
||||||
|
if ($request->has('permissions')) {
|
||||||
|
|
||||||
|
$permissions_array = $request->input('permissions');
|
||||||
|
|
||||||
|
// Strip out the superuser permission if the API user isn't a superadmin
|
||||||
|
if (!Auth::user()->isSuperUser()) {
|
||||||
|
unset($permissions_array['superuser']);
|
||||||
|
}
|
||||||
|
$user->permissions = $permissions_array;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Update the location of any assets checked out to this user
|
// Update the location of any assets checked out to this user
|
||||||
Asset::where('assigned_type', User::class)
|
Asset::where('assigned_type', User::class)
|
||||||
->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]);
|
->where('assigned_to', $user->id)->update(['location_id' => $request->input('location_id', null)]);
|
||||||
|
|
Loading…
Reference in a new issue