mirror of
https://github.com/NNTmux/newznab-tmux.git
synced 2026-08-30 17:58:59 +00:00
Add option to edit profile to ProfileController
This commit is contained in:
@@ -2,11 +2,14 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\User;
|
||||
use Blacklight\NZBGet;
|
||||
use Blacklight\SABnzbd;
|
||||
use App\Models\Settings;
|
||||
use App\Models\UserRequest;
|
||||
use App\Models\UserDownload;
|
||||
use Blacklight\utility\Utility;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\ReleaseComment;
|
||||
use App\Models\UserExcludedCategory;
|
||||
@@ -113,4 +116,170 @@ class ProfileController extends BasePageController
|
||||
);
|
||||
$this->pagerender();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function edit(Request $request)
|
||||
{
|
||||
$this->setPrefs();
|
||||
$sab = new SABnzbd();
|
||||
$nzbGet = new NZBGet($this);
|
||||
|
||||
$action = $request->input('action') ?? 'view';
|
||||
|
||||
$userid = Auth::id();
|
||||
$data = User::find($userid);
|
||||
if (! $data) {
|
||||
$this->show404();
|
||||
}
|
||||
|
||||
$errorStr = '';
|
||||
|
||||
switch ($action) {
|
||||
case 'newapikey':
|
||||
User::updateRssKey($userid);
|
||||
return redirect('profileedit');
|
||||
break;
|
||||
case 'clearcookies':
|
||||
$sab->unsetCookie();
|
||||
return 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->has('password') && $request->input('password') !== $request->input('password_confirmation')) {
|
||||
$errorStr = 'Password Mismatch';
|
||||
} elseif ($request->has('password') && ! 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 ((! $request->has('saburl') && $request->has('sabapikey')) || ($request->has('saburl') && ! $request->has('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->has('password')) {
|
||||
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.
|
||||
$this->smarty->assign('themelist', Utility::getThemesList());
|
||||
}
|
||||
|
||||
$this->smarty->assign('error', $errorStr);
|
||||
$this->smarty->assign('user', $data);
|
||||
$this->smarty->assign('userexccat', User::getCategoryExclusion($userid));
|
||||
|
||||
$this->smarty->assign('saburl_selected', $sab->url);
|
||||
$this->smarty->assign('sabapikey_selected', $sab->apikey);
|
||||
|
||||
$this->smarty->assign('sabapikeytype_ids', [SABnzbd::API_TYPE_NZB, SABnzbd::API_TYPE_FULL]);
|
||||
$this->smarty->assign('sabapikeytype_names', ['Nzb Api Key', 'Full Api Key']);
|
||||
$this->smarty->assign('sabapikeytype_selected', ($sab->apikeytype === '') ? SABnzbd::API_TYPE_NZB : $sab->apikeytype);
|
||||
|
||||
$this->smarty->assign('sabpriority_ids', [SABnzbd::PRIORITY_FORCE, SABnzbd::PRIORITY_HIGH, SABnzbd::PRIORITY_NORMAL, SABnzbd::PRIORITY_LOW, SABnzbd::PRIORITY_PAUSED]);
|
||||
$this->smarty->assign('sabpriority_names', ['Force', 'High', 'Normal', 'Low', 'Paused']);
|
||||
$this->smarty->assign('sabpriority_selected', ($sab->priority === '') ? SABnzbd::PRIORITY_NORMAL : $sab->priority);
|
||||
|
||||
$this->smarty->assign('sabsetting_ids', [1, 2]);
|
||||
$this->smarty->assign('sabsetting_names', ['Site', 'Cookie']);
|
||||
$this->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;
|
||||
}
|
||||
|
||||
$this->smarty->assign(
|
||||
[
|
||||
'queuetypes' => $queueTypes,
|
||||
'queuetypeids' => $queueTypeIDs,
|
||||
]
|
||||
);
|
||||
|
||||
$meta_title = 'Edit User Profile';
|
||||
$meta_keywords = 'edit,profile,user,details';
|
||||
$meta_description = 'Edit User Profile for '.$data['username'];
|
||||
|
||||
$this->smarty->assign('cp_url_selected', $data['cp_url']);
|
||||
$this->smarty->assign('cp_api_selected', $data['cp_api']);
|
||||
|
||||
$this->smarty->assign('catlist', Category::getForSelect(false));
|
||||
|
||||
$content = $this->smarty->fetch('profileedit.tpl');
|
||||
|
||||
$this->smarty->assign(
|
||||
[
|
||||
'content' => $content,
|
||||
'meta_title' => $meta_title,
|
||||
'meta_keywords' => $meta_keywords,
|
||||
'meta_description' => $meta_description,
|
||||
]
|
||||
);
|
||||
$this->pagerender();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user