public function postStore()
 {
     $sid = Input::get('id');
     $rules = array('name' => 'required', 'permission-inherit' => 'regex:/^[a-z,0-9._\\-?]+$/i', 'permission-allow' => 'regex:/^[a-z,0-9._\\-?]+$/i', 'permission-deny' => 'regex:/^[a-z,0-9._\\-?]+$/i');
     $messages = array('permission-inherit.regex' => 'The permission inherit format is invalid. Try using the Permission Builder.', 'permission-allow.regex' => 'The permission allow format is invalid. Try using the Permission Builder.', 'permission-deny.regex' => 'The permission deny format is invalid. Try using the Permission Builder.');
     $validation = Validator::make(Input::all(), $rules, $messages);
     if (isset($sid)) {
         $redirect_url = 'admin/groups/edit/' . $sid;
         $group = Group::find($sid);
     } else {
         $redirect_url = 'admin/groups/create';
         $group = new Group();
     }
     if ($validation->fails()) {
         return redirect($redirect_url)->withErrors($validation)->withInput();
     }
     $permissions = $this->populatePermission(Input::get('permission-inherit'), Input::get('permission-allow'), Input::get('permission-deny'));
     if ($group == null) {
         $errors = new MessageBag();
         $errors->add('editError', trans('redminportal::messages.group_error_edit_no_group_found'));
         return redirect('admin/groups')->withErrors($errors);
     }
     try {
         // Save the group details
         $group->name = Input::get('name');
         $group->permissions = json_encode($permissions);
         $group->save();
     } catch (\Exception $exp) {
         // There was a problem saving it
         $errors = new MessageBag();
         $errors->add('editError', trans('redminportal::messages.group_error_edit_cannot_save'));
         return redirect($redirect_url)->withErrors($errors)->withInput();
     }
     return redirect('admin/groups');
 }
 public function run()
 {
     DB::table('users')->delete();
     DB::table('groups')->delete();
     DB::table('users_groups')->delete();
     $user = new User();
     $user->email = '*****@*****.**';
     $user->password = \Hash::make("admin");
     $user->first_name = 'System';
     $user->last_name = 'Admin';
     $user->activated = 1;
     $user->save();
     $admin_group = new Group();
     $admin_group->name = 'Admin';
     $admin_group->permissions = json_encode(array('admin.view' => 1, 'admin.create' => 1, 'admin.delete' => 1, 'admin.update' => 1));
     $admin_group->save();
     $user_group = new Group();
     $user_group->name = 'User';
     $user_group->permissions = json_encode(array('admin.view' => 0, 'admin.create' => 0, 'admin.delete' => 0, 'admin.update' => 0));
     $user_group->save();
     // Assign user permissions
     $user->groups()->save($admin_group);
 }
 public function postStore()
 {
     $sid = \Input::get('id');
     $rules = array('name' => 'required');
     $validation = \Validator::make(\Input::all(), $rules);
     if ($validation->fails()) {
         if (isset($sid)) {
             return redirect('admin/groups/edit/' . $sid)->withErrors($validation)->withInput();
         } else {
             return redirect('admin/groups/create')->withErrors($validation)->withInput();
         }
     }
     // Validation passes
     $name = \Input::get('name');
     $view = \Input::get('view') == '' ? false : true;
     $create = \Input::get('create') == '' ? false : true;
     $delete = \Input::get('delete') == '' ? false : true;
     $update = \Input::get('update') == '' ? false : true;
     $permissions = json_encode(array('admin.view' => $view, 'admin.create' => $create, 'admin.delete' => $delete, 'admin.update' => $update));
     if (isset($sid)) {
         $group = Group::find($sid);
         if ($group == null) {
             $errors = new \Illuminate\Support\MessageBag();
             $errors->add('editError', "The group cannot be found because it does not exist or may have been deleted.");
             return redirect('/admin/groups')->withErrors($errors);
         }
         // Update the group details
         $group->name = $name;
         $group->permissions = $permissions;
         // Update the group
         if ($group->save()) {
             return redirect('admin/groups');
         } else {
             $errors = new \Illuminate\Support\MessageBag();
             $errors->add('editError', "The group cannot be updated due to some problem. Please try again.");
             return redirect('admin/groups/edit/' . $sid)->withErrors($errors)->withInput();
         }
     } else {
         // Create the group
         $group = new Group();
         $group->name = $name;
         $group->permissions = $permissions;
         try {
             $group->save();
         } catch (\Exception $exp) {
             $errors = new \Illuminate\Support\MessageBag();
             $errors->add('editError', "The group cannot be created due to some problem. Please try again.");
             return redirect('admin/groups/create')->withErrors($errors)->withInput();
         }
     }
     return redirect('admin/groups');
 }