Remove requirement for userid when using RSS, API and APIv2, its useless as we already have the token

This commit is contained in:
DariusIII
2018-12-12 20:26:38 +01:00
parent 89c3204d79
commit 327b6be8b2
7 changed files with 28 additions and 26 deletions
+1
View File
@@ -1,4 +1,5 @@
2018-12-12 DariusIII
* Chg: Remove requirement for userid when using RSS, API and APIv2, its useless as we already have the token
* Chg: Update code style of movieinfo table migration
* Chg: Update font-awesome to version 5.6.1 and update all-css.css and all-js.js files, also update package.json
* Chg: Update laravel/framework to version 5.7.17
+7 -7
View File
@@ -116,7 +116,7 @@ class ApiController extends BasePageController
$api->verifyEmptyParameter('q');
$maxAge = $api->maxAge();
$groupName = $api->group();
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$categoryID = $api->categoryID();
$limit = $api->limit();
@@ -170,7 +170,7 @@ class ApiController extends BasePageController
$api->verifyEmptyParameter('season');
$api->verifyEmptyParameter('ep');
$maxAge = $api->maxAge();
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$siteIdArr = [
'id' => $request->input('vid') ?? '0',
@@ -214,7 +214,7 @@ class ApiController extends BasePageController
$api->verifyEmptyParameter('q');
$api->verifyEmptyParameter('imdbid');
$maxAge = $api->maxAge();
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$imdbId = $request->has('imdbid') && ! empty($request->input('imdbid')) ? $request->input('imdbid') : -1;
$tmdbId = $request->has('tmdbid') && ! empty($request->input('tmdbid')) ? $request->input('tmdbid') : -1;
@@ -247,10 +247,10 @@ class ApiController extends BasePageController
// Get NZB.
case 'g':
$api->verifyEmptyParameter('g');
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$relData = Release::checkGuidForApi($request->input('id'));
if ($relData !== false) {
return redirect(WWW_TOP.'/getnzb?i='.$uid.'&r='.$apiKey.'&id='.$request->input('id').(($request->has('del') && $request->input('del') === '1') ? '&del=1' : ''));
return redirect(WWW_TOP.'/getnzb?r='.$apiKey.'&id='.$request->input('id').(($request->has('del') && $request->input('del') === '1') ? '&del=1' : ''));
}
Utility::showApiError(300, 'No such item (the guid you provided has no release in our database)');
@@ -262,7 +262,7 @@ class ApiController extends BasePageController
Utility::showApiError(200, 'Missing parameter (guid is required for single release details)');
}
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$data = Release::getByGuid($request->input('id'));
$api->output($data, $params, $outputXML, $offset, 'api');
@@ -274,7 +274,7 @@ class ApiController extends BasePageController
Utility::showApiError(200, 'Missing parameter (id is required for retrieving an NFO)');
}
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($apiKey, $request->getRequestUri());
$rel = Release::query()->where('guid', $request->input('id'))->first(['id', 'searchname']);
$data = ReleaseNfo::getReleaseNfo($rel['id']);
+6 -6
View File
@@ -72,7 +72,7 @@ class ApiV2Controller extends BasePageController
$minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0;
$maxAge = $api->maxAge();
$catExclusions = User::getCategoryExclusion($this->userdata->id);
UserRequest::addApiRequest($this->userdata->id, $request->getRequestUri());
UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri());
$imdbId = $request->has('imdbid') && ! empty($request->input('imdbid')) ? $request->input('imdbid') : -1;
$tmdbId = $request->has('tmdbid') && ! empty($request->input('tmdbid')) ? $request->input('tmdbid') : -1;
@@ -117,7 +117,7 @@ class ApiV2Controller extends BasePageController
$tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : [];
$maxAge = $api->maxAge();
$groupName = $api->group();
UserRequest::addApiRequest($this->userdata->id, $request->getRequestUri());
UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri());
$categoryID = $api->categoryID();
$limit = $api->limit();
@@ -180,7 +180,7 @@ class ApiV2Controller extends BasePageController
$api->verifyEmptyParameter('season');
$api->verifyEmptyParameter('ep');
$maxAge = $api->maxAge();
UserRequest::addApiRequest($this->userdata->id, $request->getRequestUri());
UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri());
$siteIdArr = [
'id' => $request->input('vid') ?? '0',
@@ -231,10 +231,10 @@ class ApiV2Controller extends BasePageController
*/
public function getNzb(Request $request)
{
UserRequest::addApiRequest($this->userdata->id, $request->getRequestUri());
UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri());
$relData = Release::checkGuidForApi($request->input('id'));
if ($relData !== false) {
return redirect('/getnzb?i='.$this->userdata->id.'&r='.$this->userdata->api_token.'&id='.$request->input('id').(($request->has('del') && $request->input('del') === '1') ? '&del=1' : ''));
return redirect('/getnzb?r='.$this->userdata->api_token.'&id='.$request->input('id').(($request->has('del') && $request->input('del') === '1') ? '&del=1' : ''));
}
Utility::showApiError(300, 'No such item (the guid you provided has no release in our database)');
@@ -251,7 +251,7 @@ class ApiV2Controller extends BasePageController
Utility::showApiError(200, 'Missing parameter (guid is required for single release details)');
}
UserRequest::addApiRequest($this->userdata->id, $request->getRequestUri());
UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri());
$relData = Release::getByGuid($request->input('id'));
$relData = fractal($relData, new DetailsTransformer($this->userdata));
@@ -16,13 +16,13 @@ class FailedReleasesController extends BasePageController
*/
public function show(Request $request)
{
if (! $request->has('userid') || ! $request->has('api_token')) {
if (! $request->has('api_token')) {
return response('Bad request, please supply all parameters!', 400)->withHeaders(['X-DNZB-RCode' => 400, 'X-DNZB-RText' => 'Bad request, please supply all parameters!']);
}
$res = User::getByIdAndRssToken($request->input('userid'), $request->input('api_token'));
$res = User::getByRssToken($request->input('api_token'));
if ($res === null) {
return response('Unauthorised, wrong user ID or rss key!', 401)->withHeaders(['X-DNZB-RCode' => 401, 'X-DNZB-RText' => 'Unauthorised, wrong user ID or rss key!']);
return response('Unauthorised, wrong rss key!', 401)->withHeaders(['X-DNZB-RCode' => 401, 'X-DNZB-RText' => 'Unauthorised, wrong rss key!']);
}
$uid = $res['id'];
@@ -35,7 +35,7 @@ class FailedReleasesController extends BasePageController
return response('No NZB found for alternate match!', 404)->withHeaders(['X-DNZB-RCode' => 404, 'X-DNZB-RText' => 'No NZB found for alternate match.']);
}
return response('Success', 200)->withHeaders(['Location' => url('/').'/getnzb?id='.$alt['guid'].'&i='.$uid.'&r='.$rssToken]);
return response('Success', 200)->withHeaders(['Location' => url('/').'/getnzb?id='.$alt['guid'].'&r='.$rssToken]);
}
return response('Bad request, please supply all parameters!', 400)->withHeaders(['X-DNZB-RCode' => 400, 'X-DNZB-RText' => 'Bad request, please supply all parameters!']);
+2 -2
View File
@@ -35,11 +35,11 @@ class GetNzbController extends BasePageController
Utility::showApiError(101);
}
} else {
if (! $request->has('i') || ! $request->has('r')) {
if (! $request->has('r')) {
Utility::showApiError(200);
}
$res = User::getByIdAndRssToken($request->input('i'), $request->input('r'));
$res = User::getByRssToken($request->input('r'));
if (! $res) {
Utility::showApiError(100);
}
+5 -5
View File
@@ -14,7 +14,7 @@ class RssController extends BasePageController
{
/**
* @param \Illuminate\Http\Request $request
* @throws \Exception
* @throws \Throwable
*/
public function rss(Request $request)
{
@@ -72,11 +72,11 @@ class RssController extends BasePageController
$rssToken = $this->userdata['api_token'];
$maxRequests = $this->userdata->role->apirequests;
} else {
if (! $request->has('i') || ! $request->has('r')) {
Utility::showApiError(100, 'Both the User ID and API key are required for viewing the RSS!');
if (! $request->has('r')) {
Utility::showApiError(100, 'API key is required for viewing the RSS!');
}
$res = User::getByIdAndRssToken($request->input('i'), $request->input('r'));
$res = User::getByRssToken($request->input('r'));
if (! $res) {
Utility::showApiError(100);
@@ -94,7 +94,7 @@ class RssController extends BasePageController
if (UserRequest::getApiRequests($uid) > $maxRequests) {
Utility::showApiError(500, 'You have reached your daily limit for API requests!');
} else {
UserRequest::addApiRequest($uid, $request->getRequestUri());
UserRequest::addApiRequest($rssToken, $request->getRequestUri());
}
// Valid or logged in user, get them the requested feed.
+3 -2
View File
@@ -84,11 +84,12 @@ class UserRequest extends Model
/**
* If a user accesses the API, log it.
*
* @param int $userID ID of the user.
* @param string $token API token of the user
* @param string $request The API request.
*/
public static function addApiRequest($userID, $request): void
public static function addApiRequest($token, $request): void
{
$userID = User::query()->select(['id'])->where('api_token', $token)->value('id');
self::query()->insert(['users_id' => $userID, 'request' => $request, 'timestamp'=> now()]);
}