public function show($groupName) { $group = Group::name($groupName)->with('creator')->firstOrFail(); $group->checkAccess(); $stats = ['contents' => intval(Content::where('group_id', $group->getKey())->count()), 'comments' => intval(Content::where('group_id', $group->getKey())->sum('comments')), 'entries' => intval(Entry::where('group_id', $group->getKey())->count()), 'banned' => intval(GroupBan::where('group_id', $group->getKey())->count()), 'subscribers' => $group->subscribers, 'moderators' => intval(GroupModerator::where('group_id', $group->getKey())->count())]; return array_merge($group->toArray(), ['stats' => $stats]); }
public function addBan() { $user = User::name(request('username'))->firstOrFail(); $group = Group::name(request('groupname'))->firstOrFail(); $this->validate(request(), ['reason' => 'max:255']); if (request('everywhere') == '1') { foreach (user()->moderatedGroups as $group) { $ban = GroupBan::where('group_id', $group->id)->where('user_id', $user->id)->first(); if (!$ban) { $group->banUser($user, request('reason')); } } } else { if (!user()->isModerator($group)) { abort(403, 'Access denied'); } $ban = GroupBan::where('group_id', $group->id)->where('user_id', $user->id)->first(); if (!$ban) { $group->banUser($user, request('reason')); } } return redirect()->route('group_banned', $group); }
public function showBannedList($group) { $bans = GroupBan::where('group_id', $group->getKey())->orderBy('created_at', 'desc')->with('user')->paginate(25); return view('group.bans', compact('group', 'bans')); }