mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-31 18:28:54 +00:00
162 lines
6.7 KiB
PHP
162 lines
6.7 KiB
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
use Blacklight\NZBGet;
|
|
use Blacklight\SABnzbd;
|
|
use App\Models\Category;
|
|
use App\Models\Settings;
|
|
use Blacklight\utility\Utility;
|
|
use App\Models\UserExcludedCategory;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
if (! Auth::check()) {
|
|
$page->show403();
|
|
}
|
|
|
|
$sab = new SABnzbd($page);
|
|
$nzbGet = new NZBGet($page);
|
|
|
|
$action = request()->input('action') ?? 'view';
|
|
|
|
$userid = Auth::id();
|
|
$data = User::find($userid);
|
|
if (! $data) {
|
|
$page->show404();
|
|
}
|
|
|
|
$errorStr = '';
|
|
|
|
switch ($action) {
|
|
case 'newapikey':
|
|
User::updateRssKey($userid);
|
|
redirect('/profileedit');
|
|
break;
|
|
case 'clearcookies':
|
|
$sab->unsetCookie();
|
|
redirect('/profileedit');
|
|
break;
|
|
case 'submit':
|
|
|
|
$data['email'] = request()->input('email');
|
|
if (request()->has('saburl') && ! ends_with(request()->input('saburl'), '/') && strlen(trim(request()->input('saburl'))) > 0) {
|
|
request()->merge(['saburl' => request()->input('saburl').'/']);
|
|
}
|
|
|
|
if (request()->input('password') !== null && request()->input('password') !== request()->input('password_confirmation')) {
|
|
$errorStr = 'Password Mismatch';
|
|
} elseif (request()->input('password') !== null && ! User::isValidPassword(request()->input('password'))) {
|
|
$errorStr = 'Your password must be longer than eight characters, have at least 1 number, at least 1 capital and at least one lowercase letter';
|
|
} elseif (! empty(request()->input('nzbgeturl')) && $nzbGet->verifyURL(request()->input('nzbgeturl')) === false) {
|
|
$errorStr = 'The NZBGet URL you entered is invalid!';
|
|
} elseif (! User::isValidEmail(request()->input('email'))) {
|
|
$errorStr = 'Your email is not a valid format.';
|
|
} else {
|
|
$res = User::getByEmail(request()->input('email'));
|
|
if ($res && (int) $res['id'] !== $userid) {
|
|
$errorStr = 'Sorry, the email is already in use.';
|
|
} elseif ((empty(request()->input('saburl')) && ! empty(request()->input('sabapikey'))) || (! empty(request()->input('saburl')) && empty(request()->input('sabapikey')))) {
|
|
$errorStr = 'Insert a SABnzdb URL and API key.';
|
|
} else {
|
|
if (request()->has('sasetting') && request()->input('sabsetting') === 2) {
|
|
$sab->setCookie(request()->input('saburl'), request()->input('sabapikey'), request()->input('sabpriority'), request()->input('sabapikeytype'));
|
|
}
|
|
|
|
User::updateUser(
|
|
$userid,
|
|
$data['username'],
|
|
request()->input('email'),
|
|
$data['grabs'],
|
|
$data['user_roles_id'],
|
|
$data['notes'],
|
|
$data['invites'],
|
|
request()->has('movieview') ? 1 : 0,
|
|
request()->has('musicview') ? 1 : 0,
|
|
request()->has('gameview') ? 1 : 0,
|
|
request()->has('xxxview') ? 1 : 0,
|
|
request()->has('consoleview') ? 1 : 0,
|
|
request()->has('bookview') ? 1 : 0,
|
|
request()->input('queuetypeids'),
|
|
request()->input('nzbgeturl') ?? '',
|
|
request()->input('nzbgetusername') ?? '',
|
|
request()->input('nzbgetpassword') ?? '',
|
|
request()->has('saburl') ? str_finish(request()->input('saburl'), '/') : '',
|
|
request()->input('sabapikey') ?? '',
|
|
request()->input('sabpriority') ?? '',
|
|
request()->input('sabapikeytype') ?? '',
|
|
request()->input('nzbvortex_server_url') ?? '',
|
|
request()->input('nzbvortex_api_key') ?? '',
|
|
request()->input('cp_url') ?? '',
|
|
request()->input('cp_api') ?? '',
|
|
(int) Settings::settingValue('site.main.userselstyle') === 1 ? request()->input('style') : 'None'
|
|
);
|
|
|
|
request()->merge(['exccat' => (! request()->has('exccat') || ! is_array(request()->input('exccat'))) ? [] : request()->input('exccat')]);
|
|
UserExcludedCategory::addCategoryExclusions($userid, request()->input('exccat'));
|
|
|
|
if (request()->input('password') !== null) {
|
|
User::updatePassword($userid, request()->input('password'));
|
|
}
|
|
|
|
redirect('/profile');
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'view':
|
|
default:
|
|
break;
|
|
}
|
|
if ((int) Settings::settingValue('site.main.userselstyle') === 1) {
|
|
// Get the list of themes.
|
|
$page->smarty->assign('themelist', Utility::getThemesList());
|
|
}
|
|
|
|
$page->smarty->assign('error', $errorStr);
|
|
$page->smarty->assign('user', $data);
|
|
$page->smarty->assign('userexccat', User::getCategoryExclusion($userid));
|
|
|
|
$page->smarty->assign('saburl_selected', $sab->url);
|
|
$page->smarty->assign('sabapikey_selected', $sab->apikey);
|
|
|
|
$page->smarty->assign('sabapikeytype_ids', [SABnzbd::API_TYPE_NZB, SABnzbd::API_TYPE_FULL]);
|
|
$page->smarty->assign('sabapikeytype_names', ['Nzb Api Key', 'Full Api Key']);
|
|
$page->smarty->assign('sabapikeytype_selected', ($sab->apikeytype === '') ? SABnzbd::API_TYPE_NZB : $sab->apikeytype);
|
|
|
|
$page->smarty->assign('sabpriority_ids', [SABnzbd::PRIORITY_FORCE, SABnzbd::PRIORITY_HIGH, SABnzbd::PRIORITY_NORMAL, SABnzbd::PRIORITY_LOW, SABnzbd::PRIORITY_PAUSED]);
|
|
$page->smarty->assign('sabpriority_names', ['Force', 'High', 'Normal', 'Low', 'Paused']);
|
|
$page->smarty->assign('sabpriority_selected', ($sab->priority === '') ? SABnzbd::PRIORITY_NORMAL : $sab->priority);
|
|
|
|
$page->smarty->assign('sabsetting_ids', [1, 2]);
|
|
$page->smarty->assign('sabsetting_names', ['Site', 'Cookie']);
|
|
$page->smarty->assign('sabsetting_selected', ($sab->checkCookie() === true ? 2 : 1));
|
|
|
|
switch ($sab->integrated) {
|
|
case SABnzbd::INTEGRATION_TYPE_USER:
|
|
$queueTypes = ['None', 'Sabnzbd', 'NZBGet'];
|
|
$queueTypeIDs = [User::QUEUE_NONE, User::QUEUE_SABNZBD, User::QUEUE_NZBGET];
|
|
break;
|
|
case SABnzbd::INTEGRATION_TYPE_NONE:
|
|
$queueTypes = ['None', 'NZBGet'];
|
|
$queueTypeIDs = [User::QUEUE_NONE, User::QUEUE_NZBGET];
|
|
break;
|
|
}
|
|
|
|
$page->smarty->assign(
|
|
[
|
|
'queuetypes' => $queueTypes,
|
|
'queuetypeids' => $queueTypeIDs,
|
|
]
|
|
);
|
|
|
|
$page->meta_title = 'Edit User Profile';
|
|
$page->meta_keywords = 'edit,profile,user,details';
|
|
$page->meta_description = 'Edit User Profile for '.$data['username'];
|
|
|
|
$page->smarty->assign('cp_url_selected', $data['cp_url']);
|
|
$page->smarty->assign('cp_api_selected', $data['cp_api']);
|
|
|
|
$page->smarty->assign('catlist', Category::getForSelect(false));
|
|
|
|
$page->content = $page->smarty->fetch('profileedit.tpl');
|
|
$page->pagerender();
|