|
@@ -3,8 +3,8 @@
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
-use App\{Profile, User};
|
|
|
-use Auth;
|
|
|
+use App\{AccountLog, Profile, User};
|
|
|
+use Auth, DB;
|
|
|
|
|
|
class SettingsController extends Controller
|
|
|
{
|
|
@@ -89,6 +89,34 @@ class SettingsController extends Controller
|
|
|
return view('settings.avatar');
|
|
|
}
|
|
|
|
|
|
+ public function accessibility()
|
|
|
+ {
|
|
|
+ $settings = Auth::user()->settings;
|
|
|
+ return view('settings.accessibility', compact('settings'));
|
|
|
+ }
|
|
|
+
|
|
|
+ public function accessibilityStore(Request $request)
|
|
|
+ {
|
|
|
+ $settings = Auth::user()->settings;
|
|
|
+ $fields = [
|
|
|
+ 'compose_media_descriptions',
|
|
|
+ 'reduce_motion',
|
|
|
+ 'optimize_screen_reader',
|
|
|
+ 'high_contrast_mode',
|
|
|
+ 'video_autoplay'
|
|
|
+ ];
|
|
|
+ foreach($fields as $field) {
|
|
|
+ $form = $request->input($field);
|
|
|
+ if($form == 'on') {
|
|
|
+ $settings->{$field} = true;
|
|
|
+ } else {
|
|
|
+ $settings->{$field} = false;
|
|
|
+ }
|
|
|
+ $settings->save();
|
|
|
+ }
|
|
|
+ return redirect(route('settings.accessibility'))->with('status', 'Settings successfully updated!');
|
|
|
+ }
|
|
|
+
|
|
|
public function notifications()
|
|
|
{
|
|
|
return view('settings.notifications');
|
|
@@ -96,12 +124,61 @@ class SettingsController extends Controller
|
|
|
|
|
|
public function privacy()
|
|
|
{
|
|
|
- return view('settings.privacy');
|
|
|
+ $settings = Auth::user()->settings;
|
|
|
+ $is_private = Auth::user()->profile->is_private;
|
|
|
+ $settings['is_private'] = (bool) $is_private;
|
|
|
+ return view('settings.privacy', compact('settings'));
|
|
|
+ }
|
|
|
+
|
|
|
+ public function privacyStore(Request $request)
|
|
|
+ {
|
|
|
+ $settings = Auth::user()->settings;
|
|
|
+ $profile = Auth::user()->profile;
|
|
|
+ $fields = [
|
|
|
+ 'is_private',
|
|
|
+ 'crawlable',
|
|
|
+ ];
|
|
|
+ foreach($fields as $field) {
|
|
|
+ $form = $request->input($field);
|
|
|
+ if($field == 'is_private') {
|
|
|
+ if($form == 'on') {
|
|
|
+ $profile->{$field} = true;
|
|
|
+ $settings->show_guests = false;
|
|
|
+ $settings->show_discover = false;
|
|
|
+ $profile->save();
|
|
|
+ } else {
|
|
|
+ $profile->{$field} = false;
|
|
|
+ $profile->save();
|
|
|
+ }
|
|
|
+ } elseif($field == 'crawlable') {
|
|
|
+ if($form == 'on') {
|
|
|
+ $settings->{$field} = false;
|
|
|
+ } else {
|
|
|
+ $settings->{$field} = true;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if($form == 'on') {
|
|
|
+ $settings->{$field} = true;
|
|
|
+ } else {
|
|
|
+ $settings->{$field} = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $settings->save();
|
|
|
+ }
|
|
|
+ return redirect(route('settings.privacy'))->with('status', 'Settings successfully updated!');
|
|
|
}
|
|
|
|
|
|
public function security()
|
|
|
{
|
|
|
- return view('settings.security');
|
|
|
+ $sessions = DB::table('sessions')
|
|
|
+ ->whereUserId(Auth::id())
|
|
|
+ ->limit(20)
|
|
|
+ ->get();
|
|
|
+ $activity = AccountLog::whereUserId(Auth::id())
|
|
|
+ ->orderBy('created_at','desc')
|
|
|
+ ->limit(50)
|
|
|
+ ->get();
|
|
|
+ return view('settings.security', compact('sessions', 'activity'));
|
|
|
}
|
|
|
|
|
|
public function applications()
|
|
@@ -121,7 +198,7 @@ class SettingsController extends Controller
|
|
|
|
|
|
public function dataImportInstagram()
|
|
|
{
|
|
|
- return view('settings.import.ig');
|
|
|
+ return view('settings.import.instagram.home');
|
|
|
}
|
|
|
|
|
|
public function developers()
|