Guest User

Untitled

a guest
Jul 20th, 2018
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <?php
  2. use App\User;
  3. use Spatie\Permission\Models\Role;
  4. use Spatie\Permission\Models\Permission;
  5.  
  6. $editorRole = Role::create(['name' => 'Editor']);
  7. $userRole = Role::create(['name' => 'User']);
  8. $adminRole = Role::create(['name' => 'Admin']);
  9.  
  10. // Permissions
  11. $editorPermissions = ['manage-settings', 'manage-users'];
  12. $userPermissions = ['manage-articles', 'manage-comments'];
  13. $adminPermissions = array_merge($editorPermissions, $userPermissions);
  14.  
  15. // Assign Permissions
  16. foreach($editorPermissions as $perm)
  17. {
  18. $create = Permission::create(['name' => $perm]);
  19. $editorRole->givePermissionTo($create);
  20. }
  21.  
  22. foreach($userPermissions as $perm)
  23. {
  24. $create = Permission::create(['name' => $perm]);
  25. $userRole->givePermissionTo($create);
  26. }
  27.  
  28. foreach($adminPermissions as $perm)
  29. {
  30. $create = Permission::create(['name' => $perm]);
  31. $adminRole->givePermissionTo($create);
  32. }
  33.  
  34. // Create Users
  35. $editor = User::create([
  36. 'name' => 'Editor Demo',
  37. 'email' => 'editor@example.com',
  38. 'password' => bcrypt('password123')
  39. ]);
  40. $editor->assignRole($editorRole);
  41.  
  42. $user = User::create([
  43. 'name' => 'User Demo',
  44. 'email' => 'user@example.com',
  45. 'password' => bcrypt('password123')
  46. ]);
  47. $user->assignRole($userRole);
  48.  
  49. $admin = User::create([
  50. 'name' => 'admin Demo',
  51. 'email' => 'admin@example.com',
  52. 'password' => bcrypt('password123')
  53. ]);
  54. $admin->assignRole($adminRole);
  55.  
  56. // Check for permissions
  57. $user->can('manage-articles'); // True
  58. $user->can('manage-settings'); // False
  59. $admin->can('manage-settings'); // True
  60. $admin->can('manage-articles'); // True
Add Comment
Please, Sign In to add comment