/**
  * 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']);
 }
 /**
  * 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;
 }