/** * Checking if a user/Guest have permission for a given part or not * @param $profile_id * @param $privacy_type * @return boolean */ public function checkIfGuestDoNotHavePermission($profile_id, $privacy_type) { $userProfileSetting = UserSettings::where('user_id', '=', $profile_id)->where('setting_type', '=', $privacy_type)->first(); if (Auth::guest() && $userProfileSetting != null && $userProfileSetting->setting_value == UserSettings::PRIVACY_SET) { return true; } return false; }
/** * Saving and Updating Privacy Settings of a user * @param Request $request */ public function updatePrivacySettings(Request $request) { $settingCovered = array(); if ($request->has("privacy_settings") && count($request->get("privacy_settings")) > 0) { foreach ($request->get("privacy_settings") as $key => $value) { $userSetting = null; $updateSetting = null; if ($value == UserSettings::PRIVACY_TYPE_PROFILE) { $userSetting = UserSettings::where('user_id', '=', Session::get(SiteSessions::USER_ID))->where('setting_type', '=', UserSettings::PRIVACY_TYPE_PROFILE)->get(); array_push($settingCovered, UserSettings::PRIVACY_TYPE_PROFILE); } if ($value == UserSettings::PRIVACY_TYPE_VIDEOS) { $userSetting = UserSettings::where('user_id', '=', Session::get(SiteSessions::USER_ID))->where('setting_type', '=', UserSettings::PRIVACY_TYPE_VIDEOS)->get(); array_push($settingCovered, UserSettings::PRIVACY_TYPE_VIDEOS); } if ($value == UserSettings::PRIVACY_TYPE_IMAGES) { $userSetting = UserSettings::where('user_id', '=', Session::get(SiteSessions::USER_ID))->where('setting_type', '=', UserSettings::PRIVACY_TYPE_IMAGES)->get(); array_push($settingCovered, UserSettings::PRIVACY_TYPE_IMAGES); } if (count($userSetting) >= 1) { $updateSetting = $userSetting[0]; $updateSetting->setting_value = UserSettings::PRIVACY_SET; } else { if (count($userSetting) == 0) { $updateSetting = new UserSettings(); $updateSetting->user_id = Session::get(SiteSessions::USER_ID); $updateSetting->setting_type = $value; $updateSetting->setting_value = UserSettings::PRIVACY_SET; } } if (count($userSetting) > 1) { for ($i = 1; $i < count($userSetting); $i++) { $userSetting[$i]->delete(); } } $updateSetting->save(); } } $uncoveredSettings = array_diff([UserSettings::PRIVACY_TYPE_PROFILE, UserSettings::PRIVACY_TYPE_VIDEOS, UserSettings::PRIVACY_TYPE_IMAGES], $settingCovered); if (count($uncoveredSettings) > 0) { foreach ($uncoveredSettings as $privacySetting) { UserSettings::where('user_id', '=', Session::get(SiteSessions::USER_ID))->where('setting_type', '=', $privacySetting)->delete(); } } return redirect('settings/privacy')->with(['privacy_update_status' => 'successful']); }