/**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
     $user = new Role();
     $user->name = 'user';
     $user->display_name = 'User';
     $user->save();
     $admin = new Role();
     $admin->name = 'admin';
     $admin->display_name = 'System Administrator';
     $admin->save();
     $createProduct = new Permission();
     $createProduct->name = 'create-product';
     $createProduct->display_name = 'Create Product';
     $createProduct->save();
     $showProduct = new Permission();
     $showProduct->name = 'show-product';
     $showProduct->display_name = 'Show Product';
     $showProduct->save();
     $editProduct = new Permission();
     $editProduct->name = 'edit-product';
     $editProduct->display_name = 'Edit Product';
     $editProduct->save();
     $deleteProduct = new Permission();
     $deleteProduct->name = 'delete-product';
     $deleteProduct->display_name = 'Delete Product';
     $deleteProduct->save();
     $admin->attachPermissions(array($createProduct, $showProduct, $editProduct, $deleteProduct));
     $createCompany = new Permission();
     $createCompany->name = 'create-company';
     $createCompany->display_name = 'Create Company';
     $createCompany->save();
     $showCompany = new Permission();
     $showCompany->name = 'show-company';
     $showCompany->display_name = 'Show Company';
     $showCompany->save();
     $editCompany = new Permission();
     $editCompany->name = 'edit-company';
     $editCompany->display_name = 'Edit Company';
     $editCompany->save();
     $deleteCompany = new Permission();
     $deleteCompany->name = 'delete-company';
     $deleteCompany->display_name = 'Delete Company';
     $deleteCompany->save();
     $admin->attachPermissions(array($createCompany, $showCompany, $editCompany, $deleteCompany));
 }
Beispiel #2
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(RoleRequest $request)
 {
     $role = new Role();
     $role->fill($request->all());
     $role->name = snake_case($request->display_name);
     $role->save();
     $role->attachPermissions($request->permissions);
     return redirect()->route('rol.index');
 }
 /**
  * @param $input
  * @param $permissions
  * @return bool
  * @throws GeneralException
  */
 public function create($input, $permissions)
 {
     if (Role::where('name', '=', $input['name'])->first()) {
         throw new GeneralException('That role already exists. Please choose a different name.');
     }
     //See if the role must contain a permission as per config
     if (config('access.roles.role_must_contain_permission') && count($permissions['role_permissions']) == 0) {
         throw new GeneralException('You must select at least one permission for this role.');
     }
     $role = new Role();
     $role->name = $input['name'];
     if ($role->save()) {
         //Attach permissions
         if (count($permissions['role_permissions']) > 0) {
             $role->attachPermissions($permissions['role_permissions']);
         }
         return true;
     }
     throw new GeneralException("There was a problem creating this role. Please try again.");
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $admin = new Role();
     $admin->name = 'administrator';
     $admin->display_name = 'Full Administrator';
     $admin->description = 'User is able to perform all database functions';
     $admin->save();
     $citizen = new Role();
     $citizen->name = 'citizen';
     $citizen->display_name = 'Citizen';
     $citizen->description = 'A verified citizen';
     $citizen->save();
     $councillor = new Role();
     $councillor->name = 'councillor';
     $councillor->display_name = 'City Councillor';
     $councillor->description = 'A City Councillor';
     $councillor->save();
     $editPermission = new Permission();
     $editPermission->name = 'administrate-permissions';
     $editPermission->display_name = 'Administrate Permissions';
     $editPermission->description = 'Administrate the roles and permissions of other users';
     $editPermission->save();
     $editUser = new Permission();
     $editUser->name = 'administrate-users';
     $editUser->display_name = 'Administrate Users';
     $editUser->description = 'Administrate existing other users, verify them';
     $editUser->save();
     $showUser = new Permission();
     $showUser->name = 'show-users';
     $showUser->display_name = 'Show Users';
     $showUser->description = 'See full existing (non-public) user profiles and their full details';
     $showUser->save();
     $deleteUser = new Permission();
     $deleteUser->name = 'delete-users';
     $deleteUser->display_name = 'Delete Users';
     $deleteUser->description = 'Able to delete users';
     $deleteUser->save();
     $createMotion = new Permission();
     $createMotion->name = 'create-motions';
     $createMotion->display_name = 'Create Motion';
     $createMotion->description = 'Create and edit own motions';
     $createMotion->save();
     $editMotion = new Permission();
     $editMotion->name = "administrate-motions";
     $editMotion->display_name = 'Administrate Motion';
     $editMotion->description = 'Administrate existing motions, enable them';
     $editMotion->save();
     $showMotion = new Permission();
     $showMotion->name = "show-motions";
     $showMotion->display_name = 'Show Motion';
     $showMotion->description = 'Show all non-active motions';
     $showMotion->save();
     $deleteMotion = new Permission();
     $deleteMotion->name = "delete-motions";
     $deleteMotion->display_name = 'Delete Motion';
     $deleteMotion->description = 'Delete motions';
     $deleteMotion->save();
     $createComment = new Permission();
     $createComment->name = "create-comments";
     $createComment->display_name = 'Create a comment';
     $createComment->description = 'Create and edit own comment';
     $createComment->save();
     $viewComment = new Permission();
     $viewComment->name = "view-comments";
     $viewComment->display_name = 'View Comments';
     $viewComment->description = 'View the comments and owners of comments that are not public';
     $viewComment->save();
     $createCommentVote = new Permission();
     $createCommentVote->name = "create-comment_votes";
     $createCommentVote->display_name = 'Create Comments';
     $createCommentVote->description = 'Can vote on comments';
     $createCommentVote->save();
     $viewCommentVote = new Permission();
     $viewCommentVote->name = "view-comment_votes";
     $viewCommentVote->display_name = 'Create Comments';
     $viewCommentVote->description = 'Can view other users comment votes';
     $viewCommentVote->save();
     $deleteComment = new Permission();
     $deleteComment->name = "delete-comments";
     $deleteComment->display_name = 'Delete Comment';
     $deleteComment->description = 'Delete other peoples comments';
     $deleteComment->save();
     $createVote = new Permission();
     $createVote->name = "create-votes";
     $createVote->display_name = 'Can vote (Create a vote)';
     $createVote->description = 'Can vote, vote on a comment, can edit';
     $createVote->save();
     $showVote = new Permission();
     $showVote->name = "show-votes";
     $showVote->display_name = 'Can see other users votes';
     $showVote->description = 'Can see who placed a vote and a detailed record of all votes cast (like most recent vote)';
     $showVote->save();
     $createProperty = new Permission();
     $createProperty->name = "create-properties";
     $createProperty->display_name = 'Create Property';
     $createProperty->description = 'Can create a property';
     $createProperty->save();
     $editProperty = new Permission();
     $editProperty->name = "administrate-properties";
     $editProperty->display_name = 'Administrate Property';
     $editProperty->description = 'Can edit/delete a property';
     $editProperty->save();
     $createBackgroundImage = new Permission();
     $createBackgroundImage->name = "create-background_images";
     $createBackgroundImage->display_name = 'Create Background Image';
     $createBackgroundImage->description = 'Can create and upload a background image';
     $createBackgroundImage->save();
     $editBackgroundImage = new Permission();
     $editBackgroundImage->name = "administrate-background_images";
     $editBackgroundImage->display_name = 'Edit Background Image';
     $editBackgroundImage->description = 'Can activate and edit other background images';
     $editBackgroundImage->save();
     $createDepartment = new Permission();
     $createDepartment->name = "create-department";
     $createDepartment->display_name = 'Create Department';
     $createDepartment->description = 'Can create a department';
     $createDepartment->save();
     $editDepartment = new Permission();
     $editDepartment->name = "administrate-department";
     $editDepartment->display_name = 'Edit Department';
     $editDepartment->description = 'Can activate and departments';
     $editDepartment->save();
     $councillor->attachPermissions(array($createComment, $createVote, $createMotion, $editMotion, $createCommentVote, $viewCommentVote));
     $citizen->attachPermissions(array($createComment, $createVote, $createCommentVote, $createBackgroundImage));
     $admin->attachPermissions(array($editUser, $showUser, $deleteUser, $createComment, $createVote, $createMotion, $editMotion, $showMotion, $deleteMotion, $createProperty, $editProperty, $viewComment, $showVote, $createCommentVote, $viewCommentVote, $editPermission, $createBackgroundImage, $editBackgroundImage, $createDepartment, $editDepartment));
 }
public function anyCreateRole(){
   	// Create Role
	$admin_role = new Role();
	$admin_role->name         = 'admin';
	$admin_role->display_name = 'Quản trị web'; // optional
	$admin_role->description  = 'Toàn quyền trên hệ thống'; // optional
	$admin_role->main = 1;
	$admin_role->save();

	$user_role = new Role();
	$user_role->name         = 'user';
	$user_role->display_name = 'Nhân viên'; // optional
	$user_role->description  = 'User chỉ được thực thi những quyền chỉ định'; // optional
	$user_role->main = 1;
	$user_role->save();


 	//////////////////////////////   Create Permission    //////////////////////////////

	// tạo order
	$createpo = new Permission();
	$createpo->name         = 'create-purchaseorders';
	$createpo->display_name = 'Tạo đơn mua hàng'; // optional
	$createpo->description  = 'Tạo đơn mua hàng'; // optional
	$createpo->save();

	$createso = new Permission();
	$createso->name         = 'create-saleorders';
	$createso->display_name = 'Tạo đơn hàng'; // optional
	$createso->description  = 'Tạo đơn hàng'; // optional
	$createso->save();

	$createrpo = new Permission();
	$createrpo->name         = 'create-returnpurchaseorders';
	$createrpo->display_name = 'Tạo đơn hàng trả NCC'; // optional
	$createrpo->description  = 'Tạo đơn hàng trả NCC'; // optional
	$createrpo->save();

	$createrso = new Permission();
	$createrso->name         = 'create-returnsaleorders';
	$createrso->display_name = 'Tạo đơn hàng đại lý trả'; // optional
	$createrso->description  = 'Tạo đơn hàng đại lý trả'; // optional
	$createrso->save();

	// hoàn thành order
	$completepo = new Permission();
	$completepo->name         = 'complete-purchaseorders';
	$completepo->display_name = 'Hoàn thành đơn mua hàng'; // optional
	$completepo->description  = 'Hoàn thành đơn mua hàng'; // optional
	$completepo->save();

	$completeso = new Permission();
	$completeso->name         = 'complete-saleorders';
	$completeso->display_name = 'Hoàn thành đơn hàng'; // optional
	$completeso->description  = 'Hoàn thành đơn hàng'; // optional
	$completeso->save();

	$completerpo = new Permission();
	$completerpo->name         = 'complete-returnpurchaseorders';
	$completerpo->display_name = 'Hoàn thành đơn hàng trả NCC'; // optional
	$completerpo->description  = 'Hoàn thành đơn hàng trả NCC'; // optional
	$completerpo->save();

	$completerso = new Permission();
	$completerso->name         = 'complete-returnsaleorders';
	$completerso->display_name = 'Hoàn thành đơn hàng đại lý trả'; // optional
	$completerso->description  = 'Hoàn thành đơn hàng đại lý trả'; // optional
	$completerso->save();

	// Cập nhật order
	$editpo = new Permission();
	$editpo->name         = 'edit-purchaseorders';
	$editpo->display_name = 'Cập nhật đơn mua hàng'; // optional
	$editpo->description  = 'Cập nhật đơn mua hàng'; // optional
	$editpo->save();

	$editso = new Permission();
	$editso->name         = 'edit-saleorders';
	$editso->display_name = 'Cập nhật đơn hàng'; // optional
	$editso->description  = 'Cập nhật đơn hàng'; // optional
	$editso->save();

	$editrpo = new Permission();
	$editrpo->name         = 'edit-returnpurchaseorders';
	$editrpo->display_name = 'Cập nhật đơn hàng trả NCC'; // optional
	$editrpo->description  = 'Cập nhật đơn hàng trả NCC'; // optional
	$editrpo->save();

	$editrso = new Permission();
	$editrso->name         = 'edit-returnsaleorders';
	$editrso->display_name = 'Cập nhật đơn hàng đại lý trả'; // optional
	$editrso->description  = 'Cập nhật đơn hàng đại lý trả'; // optional
	$editrso->save();

	// view order
	$viewpo = new Permission();
	$viewpo->name         = 'view-purchaseorders';
	$viewpo->display_name = 'Xem đơn mua hàng'; // optional
	$viewpo->description  = 'Xem đơn mua hàng'; // optional
	$viewpo->save();

	$viewso = new Permission();
	$viewso->name         = 'view-saleorders';
	$viewso->display_name = 'Xem đơn hàng'; // optional
	$viewso->description  = 'Xem đơn hàng'; // optional
	$viewso->save();

	$viewrpo = new Permission();
	$viewrpo->name         = 'view-returnpurchaseorders';
	$viewrpo->display_name = 'Xem đơn hàng trả NCC'; // optional
	$viewrpo->description  = 'Xem đơn hàng trả NCC'; // optional
	$viewrpo->save();

	$viewrso = new Permission();
	$viewrso->name         = 'view-returnsaleorders';
	$viewrso->display_name = 'Xem đơn hàng đại lý trả'; // optional
	$viewrso->description  = 'Xem đơn hàng đại lý trả'; // optional
	$viewrso->save();


	// Xóa order
	$deletepo = new Permission();
	$deletepo->name         = 'delete-purchaseorders';
	$deletepo->display_name = 'Xóa đơn mua hàng'; // optional
	$deletepo->description  = 'Xóa đơn mua hàng'; // optional
	$deletepo->save();

	$deleteso = new Permission();
	$deleteso->name         = 'delete-saleorders';
	$deleteso->display_name = 'Xóa đơn hàng'; // optional
	$deleteso->description  = 'Xóa đơn hàng'; // optional
	$deleteso->save();

	$deleterpo = new Permission();
	$deleterpo->name         = 'delete-returnpurchaseorders';
	$deleterpo->display_name = 'Xóa đơn hàng trả NCC'; // optional
	$deleterpo->description  = 'Xóa đơn hàng trả NCC'; // optional
	$deleterpo->save();

	$deleterso = new Permission();
	$deleterso->name         = 'delete-returnsaleorders';
	$deleterso->display_name = 'Xóa đơn hàng đại lý trả'; // optional
	$deleterso->description  = 'Xóa đơn hàng đại lý trả'; // optional
	$deleterso->save();

	// Tạo mới, hoàn thành, xóa sản phẩm, thêm giá bán
	
	$createproduct = new Permission();
	$createproduct->name         = 'create-products';
	$createproduct->display_name = 'Tạo sản phẩm'; // optional
	$createproduct->description  = 'Tạo sản phẩm'; // optional
	$createproduct->save();

	$deleteproduct = new Permission();
	$deleteproduct->name         = 'delete-products';
	$deleteproduct->display_name = 'Xóa sản phẩm'; // optional
	$deleteproduct->description  = 'Xóa sản phẩm'; // optional
	$deleteproduct->save();

	$sellpriceproduct = new Permission();
	$sellpriceproduct->name         = 'sellprice-products';
	$sellpriceproduct->display_name = 'Thêm giá bán sản phẩm'; // optional
	$sellpriceproduct->description  = 'Thêm giá bán sản phẩm'; // optional
	$sellpriceproduct->save();

	$viewproduct = new Permission();
	$viewproduct->name         = 'view-products';
	$viewproduct->display_name = 'Xem sản phẩm'; // optional
	$viewproduct->description  = 'Xem sản phẩm'; // optional
	$viewproduct->save();

	$editproduct = new Permission();
	$editproduct->name         = 'edit-products';
	$editproduct->display_name = 'Cập nhật sản phẩm'; // optional
	$editproduct->description  = 'Cập nhật sản phẩm'; // optional
	$editproduct->save();

	// Tạo mới, hoàn thành, xóa công ty
	
	$createcompany = new Permission();
	$createcompany->name         = 'create-companies';
	$createcompany->display_name = 'Tạo công ty'; // optional
	$createcompany->description  = 'Tạo công ty'; // optional
	$createcompany->save();

	$deletecompany = new Permission();
	$deletecompany->name         = 'delete-companies';
	$deletecompany->display_name = 'Xóa công ty'; // optional
	$deletecompany->description  = 'Xóa công ty'; // optional
	$deletecompany->save();

	$viewcompany = new Permission();
	$viewcompany->name         = 'view-companies';
	$viewcompany->display_name = 'Xem công ty'; // optional
	$viewcompany->description  = 'Xem công ty'; // optional
	$viewcompany->save();

	$editcompany = new Permission();
	$editcompany->name         = 'edit-companies';
	$editcompany->display_name = 'Cập nhật công ty'; // optional
	$editcompany->description  = 'Cập nhật công ty'; // optional
	$editcompany->save();

	// Setting
	$viewsetting = new Permission();
	$viewsetting->name         = 'view-settings';
	$viewsetting->display_name = 'Truy cập bảng điều khiển'; // optional
	$viewsetting->description  = 'Truy cập bảng điều khiển'; // optional
	$viewsetting->save();

	//Công nợ
	$viewreceipt = new Permission();
	$viewreceipt->name         = 'view-receipts';
	$viewreceipt->display_name = 'Truy cập công nợ'; // optional
	$viewreceipt->description  = 'Truy cập công nợ'; // optional
	$viewreceipt->save();

	//Doanh thu
	$viewrevenue = new Permission();
	$viewrevenue->name         = 'view-revenues';
	$viewrevenue->display_name = 'Truy cập doanh thu'; // optional
	$viewrevenue->description  = 'Truy cập doanh thu'; // optional
	$viewrevenue->save();

	//Doanh thu
	$viewhistory = new Permission();
	$viewhistory->name         = 'view-historys';
	$viewhistory->display_name = 'Truy cập lịch sử'; // optional
	$viewhistory->description  = 'Truy cập lịch sử'; // optional
	$viewhistory->save();

	// Add permission to role

	$admin_role->attachPermissions(array(
						$createpo,
						$createso,
						$createrpo,
						$createrso,
						$completepo,
						$completeso,
						$completerpo,
						$completerso,
						$editpo,
						$editso,
						$editrpo,
						$editrso,
						$viewpo,
						$viewso,
						$viewrpo,
						$viewrso,
						$deletepo,
						$deleteso,
						$deleterpo,
						$deleterso,
						$createproduct,
						$deleteproduct,
						$sellpriceproduct,
						$viewproduct,
						$editproduct,
						$createcompany,
						$deletecompany,
						$viewcompany,
						$editcompany,
						$viewsetting,
						$viewreceipt,
						$viewrevenue,
						$viewhistory
					));

	$user_role->attachPermissions(array(
						$createpo,
						$createso,
						$createrpo,
						$createrso,
						// $completepo,
						// $completeso,
						// $completerpo,
						// $completerso,
						$editpo,
						$editso,
						$editrpo,
						$editrso,
						$viewpo,
						$viewso,
						$viewrpo,
						$viewrso,
						// $deletepo,
						// $deleteso,
						// $deleterpo,
						// $deleterso,
						$createproduct,
						$deleteproduct,
						$sellpriceproduct,
						$viewproduct,
						$editproduct,
						$createcompany,
						$deletecompany,
						$viewcompany,
						$editcompany,
						// $viewsetting,
						// $viewreceipt,
						// $viewrevenue
						// $viewhistory
					));
	echo "done";
	die;
}
 private function add_permissions_to_role(Role $role)
 {
     //Get the permissions and assign them to the Role
     $perm_str_itm_view = Permission::where('name', 'WebPanelStoreItemsView')->first();
     $perm_str_cat_view = Permission::where('name', 'WebPanelStoreCategoriesView')->first();
     $perm_str_usr_view = Permission::where('name', 'WebPanelStoreUsersView')->first();
     $perm_str_srv_view = Permission::where('name', 'WebPanelStoreServersView')->first();
     $perm_str_tol_view = Permission::where('name', 'WebPanelStoreToolsView')->first();
     $role->attachPermissions(array($perm_str_itm_view, $perm_str_cat_view, $perm_str_usr_view, $perm_str_srv_view, $perm_str_tol_view));
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     //Create Roles
     $superadmin = new Role();
     $superadmin->name = 'superadmin';
     $superadmin->display_name = 'SuperAdmin';
     // optional
     $superadmin->description = 'Technical administrators: developers, webmins, etc';
     // optional
     $superadmin->save();
     $admin = new Role();
     $admin->name = 'admin';
     $admin->display_name = 'Admin';
     // optional
     $admin->description = 'Users with access to the administration panel';
     // optional
     $admin->save();
     //Create Permissions
     $view_admin_panel = new Permission();
     $view_admin_panel->name = 'view-admin-panel';
     $view_admin_panel->display_name = 'View Admin Panel';
     // optional
     $view_admin_panel->description = 'Access to the Admin Panel';
     // optional
     $view_admin_panel->save();
     $view_account_permissions = new Permission();
     $view_account_permissions->name = 'view-account-permissions';
     $view_account_permissions->display_name = 'View Account Permissions';
     // optional
     $view_account_permissions->description = 'Show some demo info on the Admin Dashboard';
     // optional
     $view_account_permissions->save();
     $use_file_manager = new Permission();
     $use_file_manager->name = 'use-file-manager';
     $use_file_manager->display_name = 'Use File Manager';
     // optional
     $use_file_manager->description = 'Access to upload/delete/edit files';
     // optional
     $use_file_manager->save();
     $view_backups = new Permission();
     $view_backups->name = 'view-backups';
     $view_backups->display_name = 'View Backups';
     // optional
     $view_backups->description = 'Access to the Backups Panel';
     // optional
     $view_backups->save();
     $make_backups = new Permission();
     $make_backups->name = 'make-backups';
     $make_backups->display_name = 'Make Backups';
     // optional
     $make_backups->description = 'Access to create new backups';
     // optional
     $make_backups->save();
     $download_backups = new Permission();
     $download_backups->name = 'download-backups';
     $download_backups->display_name = 'Download Backups';
     // optional
     $download_backups->description = 'Access to download existing backups';
     // optional
     $download_backups->save();
     $delete_backups = new Permission();
     $delete_backups->name = 'delete-backups';
     $delete_backups->display_name = 'Delete Backups';
     // optional
     $delete_backups->description = 'Access to delete existing backups';
     // optional
     $delete_backups->save();
     $view_logs = new Permission();
     $view_logs->name = 'view-logs';
     $view_logs->display_name = 'View Logs';
     // optional
     $view_logs->save();
     $download_logs = new Permission();
     $download_logs->name = 'download-logs';
     $download_logs->display_name = 'Download Logs';
     // optional
     $download_logs->save();
     $delete_logs = new Permission();
     $delete_logs->name = 'delete-logs';
     $delete_logs->display_name = 'Delete Logs';
     // optional
     $delete_logs->save();
     $preview_logs = new Permission();
     $preview_logs->name = 'preview-logs';
     $preview_logs->display_name = 'Preview Logs';
     // optional
     $preview_logs->save();
     $superadmin->attachPermissions(array($view_admin_panel, $view_account_permissions, $use_file_manager, $view_backups, $make_backups, $download_backups, $delete_backups, $view_logs, $download_logs, $delete_logs, $preview_logs));
     $admin->attachPermissions(array($view_admin_panel, $use_file_manager));
 }
Beispiel #8
0
 public function run()
 {
     $admin = new Role();
     $admin->name = 'administrator';
     $admin->display_name = 'Full Administrator';
     $admin->description = 'User is able to perform all database functions';
     $admin->save();
     $userManager = new Role();
     $userManager->name = 'user-admin';
     $userManager->display_name = 'User Administrator';
     $userManager->description = 'User is able to update, verify and delete users';
     $userManager->save();
     $motionManager = new Role();
     $motionManager->name = 'motion-admin';
     $motionManager->display_name = 'Motion Administrator';
     $motionManager->description = 'User is able to edit, translate and delete motions';
     $motionManager->save();
     $citizen = new Role();
     $citizen->name = 'citizen';
     $citizen->display_name = 'Citizen';
     $citizen->description = 'A verified citizen';
     $citizen->save();
     $unverified = new Role();
     $unverified->name = 'unverified';
     $unverified->display_name = 'Unverified Citizen';
     $unverified->description = 'A person who is not verified';
     $unverified->save();
     $councilor = new Role();
     $councilor->name = 'councilor';
     $councilor->display_name = 'City Councilor';
     $councilor->description = 'A City Councilor';
     $councilor->save();
     $editPermission = new Permission();
     $editPermission->name = 'administrate-permissions';
     $editPermission->display_name = 'Administrate Permissions';
     $editPermission->description = 'Administrate the roles and permissions of other users';
     $editPermission->save();
     $editUser = new Permission();
     $editUser->name = 'administrate-users';
     $editUser->display_name = 'Administrate Users';
     $editUser->description = 'Administrate existing other users, verify them';
     $editUser->save();
     $showUser = new Permission();
     $showUser->name = 'show-users';
     $showUser->display_name = 'Show Users';
     $showUser->description = 'See full existing (non-public) user profiles and their full details';
     $showUser->save();
     $deleteUser = new Permission();
     $deleteUser->name = 'delete-users';
     $deleteUser->display_name = 'Delete Users';
     $deleteUser->description = 'Able to delete users';
     $deleteUser->save();
     $createMotion = new Permission();
     $createMotion->name = 'create-motions';
     $createMotion->display_name = 'Create Motion';
     $createMotion->description = 'Create and edit own motions';
     $createMotion->save();
     $editMotion = new Permission();
     $editMotion->name = "administrate-motions";
     $editMotion->display_name = 'Administrate Motion';
     $editMotion->description = 'Administrate existing motions, enable them';
     $editMotion->save();
     $showMotion = new Permission();
     $showMotion->name = "show-motions";
     $showMotion->display_name = 'Show Motion';
     $showMotion->description = 'Show all non-active motions';
     $showMotion->save();
     $deleteMotion = new Permission();
     $deleteMotion->name = "delete-motions";
     $deleteMotion->display_name = 'Delete Motion';
     $deleteMotion->description = 'Delete motions';
     $deleteMotion->save();
     $createComment = new Permission();
     $createComment->name = "create-comments";
     $createComment->display_name = 'Create a comment';
     $createComment->description = 'Create and edit own comment';
     $createComment->save();
     $viewComment = new Permission();
     $viewComment->name = "view-comments";
     $viewComment->display_name = 'View Comments';
     $viewComment->description = 'View the comments and owners of comments that are not public';
     $viewComment->save();
     $createCommentVote = new Permission();
     $createCommentVote->name = "create-comment_votes";
     $createCommentVote->display_name = 'Create Comments';
     $createCommentVote->description = 'Can vote on comments';
     $createCommentVote->save();
     $viewCommentVote = new Permission();
     $viewCommentVote->name = "view-comment_votes";
     $viewCommentVote->display_name = 'Create Comments';
     $viewCommentVote->description = 'Can view other users comment votes';
     $viewCommentVote->save();
     $deleteComment = new Permission();
     $deleteComment->name = "delete-comments";
     $deleteComment->display_name = 'Delete Comment';
     $deleteComment->description = 'Delete other peoples comments';
     $deleteComment->save();
     $createVote = new Permission();
     $createVote->name = "create-votes";
     $createVote->display_name = 'Can vote (Create a vote)';
     $createVote->description = 'Can vote, vote on a comment, can edit';
     $createVote->save();
     $showVote = new Permission();
     $showVote->name = "show-votes";
     $showVote->display_name = 'Can see other users votes';
     $showVote->description = 'Can see who placed a vote and a detailed record of all votes cast (like most recent vote)';
     $showVote->save();
     $createProperty = new Permission();
     $createProperty->name = "create-properties";
     $createProperty->display_name = 'Create Property';
     $createProperty->description = 'Can create a property';
     $createProperty->save();
     $editProperty = new Permission();
     $editProperty->name = "administrate-properties";
     $editProperty->display_name = 'Administrate Property';
     $editProperty->description = 'Can edit/delete a property';
     $editProperty->save();
     $createBackgroundImage = new Permission();
     $createBackgroundImage->name = "create-background_images";
     $createBackgroundImage->display_name = 'Create Background Image';
     $createBackgroundImage->description = 'Can create and upload a background image';
     $createBackgroundImage->save();
     $editBackgroundImage = new Permission();
     $editBackgroundImage->name = "administrate-background_images";
     $editBackgroundImage->display_name = 'Edit Background Image';
     $editBackgroundImage->description = 'Can activate and edit other background images';
     $editBackgroundImage->save();
     $createDepartment = new Permission();
     $createDepartment->name = "create-department";
     $createDepartment->display_name = 'Create Department';
     $createDepartment->description = 'Can create a department';
     $createDepartment->save();
     $editDepartment = new Permission();
     $editDepartment->name = "administrate-department";
     $editDepartment->display_name = 'Edit Department';
     $editDepartment->description = 'Can activate and departments';
     $editDepartment->save();
     $councilor->attachPermissions(array($createComment, $createVote, $createMotion, $editMotion));
     $citizen->attachPermissions(array($createComment, $createVote, $createCommentVote, $createBackgroundImage));
     $admin->attachPermissions(array($editUser, $showUser, $deleteUser, $createComment, $createVote, $createMotion, $editMotion, $showMotion, $deleteMotion, $createProperty, $editProperty, $viewComment, $showVote, $createCommentVote, $viewCommentVote, $editPermission, $createBackgroundImage, $editBackgroundImage, $createDepartment, $editDepartment));
     $userManager->attachPermissions(array($editUser, $showUser, $deleteUser));
     $unverified->attachPermissions(array($createComment, $createVote, $createCommentVote, $createBackgroundImage));
     $random_pass = '******';
     //str_random(8);
     $defaultUser = new User();
     $this->command->info("\n\nADMIN LOGIN WITH: Password: (" . $random_pass . ") Email: info@iserveu.ca \n\n");
     $defaultUser->first_name = "Change";
     $defaultUser->middle_name = "";
     $defaultUser->last_name = "Name";
     $defaultUser->email = "*****@*****.**";
     $defaultUser->public = 1;
     $defaultUser->date_of_birth = "1987-04-01";
     $defaultUser->ethnic_origin_id = 1;
     $defaultUser->password = $random_pass;
     $defaultUser->save();
     $date = new DateTime();
     $date->add(new DateInterval('P3Y'));
     $defaultUser->attachRole($admin);
 }