/** * Display the user dashboard * */ public function dashboard() { // Get user data to display $user = Auth::user(); $job_list = array('paladin' => 'Paladin', 'monk' => 'Monk', 'warrior' => 'Warrior', 'dragoon' => 'Dragoon', 'bard' => 'Bard', 'ninja' => 'Ninja', 'white-mage' => 'White Mage', 'black-mage' => 'Black Mage', 'scholar' => 'Scholar', 'summoner' => 'Summoner', 'dark-knight' => 'Dark Knight', 'machinist' => 'Machinist', 'astrologian' => 'Astrologian'); // Have a look for any posts that mention the user $mention_posts = collect(); if ($user->character_name) { $character_name = explode(' ', $user->character_name); $mention_posts = Post::with('thread')->with('user')->where('content', 'like', '%@' . $character_name[0] . '%')->orWhere('content', 'like', '%@' . $character_name[0] . $character_name[1] . '%')->orderBy('created_at', 'DESC')->limit(5)->get(); } // Get the latest topics // Get the users permissions $accessCollection = $user->forumAccess; $latest_posts = Post::with('thread')->with('user')->whereIn('forum_id', $accessCollection)->orderBy('created_at', 'DESC')->limit(7)->get(); if ($user->hasRole('administrators')) { $group_list = Role::all(); $group_array = array(); foreach ($group_list as $group) { $group_array[$group->id] = $group->display_name; } $permission_list = Permission::all(); $permission_array = array(); foreach ($permission_list as $permission) { $permission_array[$permission->id] = $permission->display_name; } $users_list = User::all(); $users_array = array(); foreach ($users_list as $users) { $users_array[$users->id] = $users->character_name ? $users->character_name : $users->name; } $forums_list = Forum::orderBy('display_order', 'asc')->get(); return view('user.dashboard')->withUser($user)->withMentionPosts($mention_posts)->withLatestPosts($latest_posts)->withJobList($job_list)->withGroupList($group_list)->withGroupArray($group_array)->withPermissionArray($permission_array)->withUsersArray($users_array)->withForumList($forums_list); } else { return view('user.dashboard')->withUser($user)->withJobList($job_list)->withMentionPosts($mention_posts)->withLatestPosts($latest_posts); } }