Merge pull request #1458 from pixelfed/frontend-ui-refactor

Fixes #1453
This commit is contained in:
daniel 2019-06-23 23:33:59 -06:00 committed by GitHub
commit a47fd755e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 9 deletions

View file

@ -56,7 +56,7 @@ ACTIVITYPUB_SHAREDINBOX=false
# php artisan optimize:clear # php artisan optimize:clear
# php artisan optimize # php artisan optimize
PF_COSTAR_ENABLED=false PF_COSTAR_ENABLED=true
CS_BLOCKED_DOMAINS='gab.com,gab.ai,develop.gab.com' CS_BLOCKED_DOMAINS='gab.com,gab.ai,develop.gab.com'
CS_CW_DOMAINS='switter.at' CS_CW_DOMAINS='switter.at'
CS_UNLISTED_DOMAINS='example.org,example.net,example.com' CS_UNLISTED_DOMAINS='example.org,example.net,example.com'

View file

@ -10,6 +10,7 @@ use App\Profile;
use App\User; use App\User;
use App\UserFilter; use App\UserFilter;
use App\Util\Lexer\PrettyNumber; use App\Util\Lexer\PrettyNumber;
use App\Util\ActivityPub\Helpers;
use Auth, Cache, DB; use Auth, Cache, DB;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@ -134,9 +135,13 @@ trait PrivacySettings
public function blockedInstanceStore(Request $request) public function blockedInstanceStore(Request $request)
{ {
$this->validate($request, [ $this->validate($request, [
'domain' => 'required|active_url' 'domain' => 'required|url|min:1|max:120'
]); ]);
$domain = $request->input('domain'); $domain = $request->input('domain');
if(Helpers::validateUrl($domain) == false) {
return abort(400, 'Invalid domain');
}
$domain = parse_url($domain, PHP_URL_HOST);
$instance = Instance::firstOrCreate(['domain' => $domain]); $instance = Instance::firstOrCreate(['domain' => $domain]);
$filter = new UserFilter; $filter = new UserFilter;
$filter->user_id = Auth::user()->profile->id; $filter->user_id = Auth::user()->profile->id;

View file

@ -146,9 +146,13 @@ class Helpers {
$host = parse_url($valid, PHP_URL_HOST); $host = parse_url($valid, PHP_URL_HOST);
if(count(dns_get_record($host, DNS_A | DNS_AAAA)) == 0) {
return false;
}
if(config('costar.enabled') == true) { if(config('costar.enabled') == true) {
if( if(
(config('costar.domain.block') != null && in_array($host, config('costar.domain.block')) == true) || (config('costar.domain.block') != null && Str::contains($host, config('costar.domain.block')) == true) ||
(config('costar.actor.block') != null && in_array($url, config('costar.actor.block')) == true) (config('costar.actor.block') != null && in_array($url, config('costar.actor.block')) == true)
) { ) {
return false; return false;

View file

@ -48,4 +48,9 @@ trait User {
{ {
return 500; return 500;
} }
public function getMaxInstanceBansPerDayAttribute()
{
return 100;
}
} }

View file

@ -64,23 +64,34 @@
}, },
}) })
.then(val => { .then(val => {
if (!val) throw null; if (!val) {
swal.stopLoading();
swal.close();
return;
};
let msg = 'The URL you have entered is not valid, please try again.'
try { try {
let validator = new URL(val); let validator = new URL(val);
if(!validator.hostname) throw null; if(!validator.hostname || validator.protocol != 'https:') {
swal.stopLoading();
swal.close();
swal('Invalid URL', msg, 'error');
return;
};
axios.post(window.location.href, { axios.post(window.location.href, {
domain: validator.hostname domain: validator.href
}).then(res => { }).then(res => {
window.location.href = window.location.href; window.location.href = window.location.href;
}).catch(err => { }).catch(err => {
swal.stopLoading(); swal.stopLoading();
swal.close(); swal.close();
swal('An Error Occured', 'An error occured, please try again later.', 'error'); swal('Invalid URL', msg, 'error');
return;
}); });
} catch(e) { } catch(e) {
swal.stopLoading(); swal.stopLoading();
swal.close(); swal.close();
swal('An Error Occured', 'An error occured, please try again later.', 'error'); swal('Invalid URL', msg, 'error');
} }
}) })
}); });

View file

@ -192,7 +192,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
Route::get('privacy/blocked-users', 'SettingsController@blockedUsers')->name('settings.privacy.blocked-users'); Route::get('privacy/blocked-users', 'SettingsController@blockedUsers')->name('settings.privacy.blocked-users');
Route::post('privacy/blocked-users', 'SettingsController@blockedUsersUpdate'); Route::post('privacy/blocked-users', 'SettingsController@blockedUsersUpdate');
Route::get('privacy/blocked-instances', 'SettingsController@blockedInstances')->name('settings.privacy.blocked-instances'); Route::get('privacy/blocked-instances', 'SettingsController@blockedInstances')->name('settings.privacy.blocked-instances');
Route::post('privacy/blocked-instances', 'SettingsController@blockedInstanceStore'); Route::post('privacy/blocked-instances', 'SettingsController@blockedInstanceStore')->middleware('throttle:maxInstanceBansPerDay,1440');
Route::post('privacy/blocked-instances/unblock', 'SettingsController@blockedInstanceUnblock')->name('settings.privacy.blocked-instances.unblock'); Route::post('privacy/blocked-instances/unblock', 'SettingsController@blockedInstanceUnblock')->name('settings.privacy.blocked-instances.unblock');
Route::get('privacy/blocked-keywords', 'SettingsController@blockedKeywords')->name('settings.privacy.blocked-keywords'); Route::get('privacy/blocked-keywords', 'SettingsController@blockedKeywords')->name('settings.privacy.blocked-keywords');