Example #1
0
 private function groupStream(Problem $problem, Group $group)
 {
     $user = Auth::user();
     $groupRepository = new GroupRepository();
     $joins = $groupRepository->getAllJoinUsers($group);
     foreach ($joins as $join) {
         Stream::create(['user_id' => $join->id, 'contentable_id' => $problem->id, 'contentable_type' => 'App\\Problem', 'parentable_id' => $group->id, 'parentable_type' => 'App\\Group', 'is_see' => 0]);
     }
     Stream::create(['user_id' => $user->id, 'contentable_id' => $problem->id, 'contentable_type' => 'App\\Problem', 'parentable_id' => $group->id, 'parentable_type' => 'App\\Group', 'is_see' => 1]);
 }
Example #2
0
 /**
  * Register any application authentication / authorization services.
  *
  * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
  * @return void
  */
 public function boot(GateContract $gate)
 {
     parent::registerPolicies($gate);
     $gate->define('delete-post-comment', function ($user, $post, $comment) {
         return $user->id === $post->user_id or $user->id === $comment->user_id;
     });
     $gate->define('update-post-comment', function ($user, $comment) {
         return $user->id === $comment->user_id;
     });
     $gate->define('export-questionnaire', function ($user, $questionnaire) {
         return $user->id === $questionnaire->user_id;
     });
     /**
      * Created By Dara on 3/11/2015
      * authorize for confirm answer to the question
      */
     $gate->define('confirm-problem-answer', function ($user, $problem) {
         return $user->id === $problem->user_id;
     });
     /**
      * Created By Dara on 4/11/2015
      * authorize for adding problem to the group
      */
     $gate->define('join-group', function ($user, $group) {
         $groupRepository = new GroupRepository();
         return !$groupRepository->isMember($group);
     });
     $gate->define('delete-problem-comment', function ($user, $problem, $comment) {
         return $user->id === $problem->user_id or $user->id === $comment->user_id;
     });
     $gate->define('update-problem-comment', function ($user, $comment) {
         return $user->id === $comment->user_id;
     });
     $gate->define('delete-group', function ($user, $group) {
         return $user->id === $group->user_id;
     });
     /**
      * Created By Dara on 5/11/2015
      * offer authorize managing
      */
     $gate->define('edit-offer', function ($user, $offer) {
         return $user->id === $offer->user_id;
     });
     /**
      * Created By Dara on 7/11/2015
      * check if the user can settle or not
      */
     $gate->define('can-settle', function () {
         $settle = new EventController();
         $set = $settle->settleTime();
         return $set['canSettle'];
     });
 }
Example #3
0
 /**
  * Created By Dara on 1/11/2015
  * group post stream
  */
 private function groupStream($post, $group)
 {
     $user = Auth::user();
     $groupRepository = new GroupRepository();
     $joins = $groupRepository->getAllJoinUsers($group);
     //return the users of the group except current
     foreach ($joins as $join) {
         Stream::create(['user_id' => $join->id, 'contentable_id' => $post->id, 'contentable_type' => 'App\\Post', 'parentable_id' => $group->id, 'parentable_type' => 'App\\Group', 'is_see' => 0]);
     }
     Stream::create(['user_id' => $user->id, 'contentable_id' => $post->id, 'contentable_type' => 'App\\Post', 'parentable_id' => $group->id, 'parentable_type' => 'App\\Group', 'is_see' => 1]);
 }