Cache private profile id list

This commit is contained in:
Daniel Supernault 2019-02-24 23:22:06 -07:00
parent 3b7802814d
commit fcef8c9a2f
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
4 changed files with 17 additions and 9 deletions

View file

@ -57,6 +57,7 @@ trait AdminReportController
case 'unlist':
$item->visibility = 'unlisted';
$item->save();
Cache::forget('profiles:private');
break;
case 'delete':

View file

@ -223,11 +223,12 @@ class PublicApiController extends Controller
// $timeline = Timeline::build()->local();
$pid = Auth::user()->profile->id;
$private = Profile::whereIsPrivate(true)
->orWhere('unlisted', true)
->orWhere('status', '!=', null)
->where('id', '!=', $pid)
->pluck('id');
$private = Cache::remember('profiles:private', 1440, function() {
return Profile::whereIsPrivate(true)
->orWhere('unlisted', true)
->orWhere('status', '!=', null)
->pluck('id');
});
$filters = UserFilter::whereUserId($pid)
->whereFilterableType('App\Profile')
->whereIn('filter_type', ['mute', 'block'])
@ -310,7 +311,12 @@ class PublicApiController extends Controller
return $following->push($pid)->toArray();
});
$private = Profile::whereIsPrivate(true)->orWhereNotNull('status')->where('id', '!=', $pid)->pluck('id');
$private = Cache::remember('profiles:private', 1440, function() {
return Profile::whereIsPrivate(true)
->orWhere('unlisted', true)
->orWhere('status', '!=', null)
->pluck('id');
});
$filters = UserFilter::whereUserId($pid)
->whereFilterableType('App\Profile')
->whereIn('filter_type', ['mute', 'block'])

View file

@ -10,8 +10,7 @@ use App\Profile;
use App\User;
use App\UserFilter;
use App\Util\Lexer\PrettyNumber;
use Auth;
use DB;
use Auth, Cache, DB;
use Illuminate\Http\Request;
trait PrivacySettings
@ -48,6 +47,7 @@ trait PrivacySettings
$profile->{$field} = false;
$profile->save();
}
Cache::forget('profiles:private');
} elseif ($field == 'crawlable') {
if ($form == 'on') {
$settings->{$field} = false;

View file

@ -145,6 +145,7 @@ class SettingsController extends Controller
$user->save();
$profile->save();
Auth::logout();
Cache::forget('profiles:private');
return redirect('/');
}
@ -161,7 +162,6 @@ class SettingsController extends Controller
if(config('pixelfed.account_deletion') == false) {
abort(404);
}
$user = Auth::user();
if($user->is_admin == true) {
return abort(400, 'You cannot delete an admin account.');
@ -174,6 +174,7 @@ class SettingsController extends Controller
$profile->delete_after = $ts;
$user->save();
$profile->save();
Cache::forget('profiles:private');
Auth::logout();
return redirect('/');
}