Skip to content

Commit

Permalink
Support update user roles in dashboard
Browse files Browse the repository at this point in the history
  • Loading branch information
jcc committed Oct 19, 2018
1 parent 0ca96ed commit a9e28d9
Show file tree
Hide file tree
Showing 8 changed files with 283 additions and 195 deletions.
4 changes: 2 additions & 2 deletions app/Http/Controllers/Api/RoleController.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ class RoleController extends ApiController
public function index(Request $request)
{
$keyword = $request->get('keyword');

$roles = Role::query()->when($keyword, function ($query) use ($keyword) {
$query->where('name', 'like', "%{$keyword}%");
})
->orderBy('created_at', 'desc')->paginate(10);
})->orderBy('created_at', 'desc')->paginate($request->get('per_page', 10));

return $this->response->collection($roles);
}
Expand Down
14 changes: 11 additions & 3 deletions app/Http/Controllers/Api/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,11 @@ public function store(UserRequest $request)
'confirm_code' => str_random(64),
]);

User::create($data);
\DB::transaction(function () use ($request, $data) {
$user = User::create($data);

$user->syncRoles($request->get('roles'));
});

return $this->response->withNoContent();
}
Expand All @@ -78,7 +82,7 @@ public function store(UserRequest $request)
*/
public function edit($id)
{
$user = User::findOrFail($id);
$user = User::withoutGlobalScopes()->findOrFail($id);

return $this->response->item($user);
}
Expand All @@ -95,7 +99,11 @@ public function update(Request $request, $id)
{
$user = User::findOrFail($id);

$user->update($request->all());
\DB::transaction(function () use ($request, $user) {
$user->update($request->all());

$user->syncRoles($request->get('roles'));
});

return $this->response->withNoContent();
}
Expand Down
31 changes: 31 additions & 0 deletions app/Transformers/UserTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@

class UserTransformer extends TransformerAbstract
{
protected $availableIncludes = [
'roles',
'permissions'
];

public function transform(User $user)
{
return [
Expand All @@ -23,4 +28,30 @@ public function transform(User $user)
'created_at' => $user->created_at->toDateTimeString(),
];
}

/**
* Include Role
*
* @param User $user
* @return \League\Fractal\Resource\Collection
*/
public function includeRoles(User $user)
{
if ($roles = $user->roles) {
return $this->collection($roles, new RoleTransformer);
}
}

/**
* Include Permission
*
* @param User $user
* @return \League\Fractal\Resource\Collection
*/
public function includePermissions(User $user)
{
if ($permissions = $user->permissions) {
return $this->collection($permissions, new PermissionTransformer);
}
}
}
Loading

1 comment on commit a9e28d9

@jcc
Copy link
Owner Author

@jcc jcc commented on a9e28d9 Oct 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.