Example #1
0
 public function userCanAccessProject(Project $project)
 {
     if (!$this->user) {
         return false;
     }
     if ($project->user_id == $this->user->id) {
         return true;
     }
     foreach ($project->teams()->with('users')->get() as $team) {
         if ($team->can_edit) {
             return true;
         }
     }
     return false;
 }
Example #2
0
 /**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher  $events
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     Event::subscribe('App\\Listeners\\Events\\AuthHistoryLogger');
     Event::subscribe('App\\Listeners\\Events\\UserHistoryLogger');
     Project::observe($this->app->make('App\\Events\\Observer\\ProjectObserver'));
     Entry::observe($this->app->make('App\\Events\\Observer\\EntryObserver'));
     Share::observe($this->app->make('App\\Events\\Observer\\ShareObserver'));
     Team::observe($this->app->make('App\\Events\\Observer\\TeamObserver'));
     EntryTag::observe($this->app->make('App\\Events\\Observer\\EntryTagObserver'));
     EntryTeam::observe($this->app->make('App\\Events\\Observer\\EntryTeamObserver'));
     ProjectTeam::observe($this->app->make('App\\Events\\Observer\\ProjectTeamObserver'));
     UserTeam::observe($this->app->make('App\\Events\\Observer\\UserTeamObserver'));
 }
Example #3
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Eloquent::unguard();
     if (!User::find(1)) {
         User::create(['email' => 'admin', 'password' => Hash::make('admin'), 'name' => 'Main', 'surname' => 'Admin', 'group' => User::GROUP_ADMIN]);
         Project::create(['name' => 'Project 1', 'description' => 'Default starter project', 'user_id' => 1]);
         $keys = KeyPairGenerator::generate('admin');
         $key = new RsaKey();
         $key->private = $keys['private'];
         $key->public = $keys['public'];
         $key->user_id = 1;
         $key->save();
         echo "DB Seeded...\n";
     } else {
         echo "DB Already Seeded...\n";
     }
 }
Example #4
0
 public function store(EntryCrypt $entryCrypt)
 {
     $validator = Validator::make(['team_id' => Input::get('team_id'), 'project_id' => Input::get('project_id')], ProjectTeam::$rules);
     if ($validator->fails()) {
         return Response::make($validator->messages()->first(), 419);
     }
     if (ProjectTeam::where('team_id', Input::get('team_id'))->where('project_id', Input::get('project_id'))->count() > 0) {
         return Response::make('This team already has access.', 419);
     }
     $project = Project::findOrFail(Input::get('project_id'));
     $model = new ProjectTeam();
     $model->user_by_id = Auth::user()->id;
     $model->project_id = Input::get('project_id');
     $model->team_id = Input::get('team_id');
     DB::transaction(function () use($model, $entryCrypt, $project) {
         if (!$model->save()) {
             abort(403);
         }
         foreach ($project->keys as $key) {
             $entryCrypt->reencrypt($key);
         }
     });
     return $model;
 }
Example #5
0
 /**
  * Remove the specified resource from storage.
  *
  * @param Project $model
  * @return Response
  */
 public function destroy(Project $model)
 {
     if (!$model->delete()) {
         return Response::json(['flash' => 'Unauthorized.'], 403);
     }
 }