diff --git a/Changelog b/Changelog index d5926673c..7ab71fbb0 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-12-12 DariusIII + * Chg: Update user category exclusion handling in API and APIv2 * 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 diff --git a/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php index f3f1b9f12..149f15e6a 100644 --- a/app/Http/Controllers/Api/ApiController.php +++ b/app/Http/Controllers/Api/ApiController.php @@ -83,7 +83,7 @@ class ApiController extends BasePageController } $uid = $res['id']; - $catExclusions = User::getCategoryExclusion($uid); + $catExclusions = User::getCategoryExclusionForApi($request); $maxRequests = $res->role->apirequests; } diff --git a/app/Http/Controllers/Api/ApiV2Controller.php b/app/Http/Controllers/Api/ApiV2Controller.php index d200ae11c..357660a78 100644 --- a/app/Http/Controllers/Api/ApiV2Controller.php +++ b/app/Http/Controllers/Api/ApiV2Controller.php @@ -71,7 +71,7 @@ class ApiV2Controller extends BasePageController $releases = new Releases(); $minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0; $maxAge = $api->maxAge(); - $catExclusions = User::getCategoryExclusion($this->userdata->id); + $catExclusions = User::getCategoryExclusionForApi($request); UserRequest::addApiRequest($request->input('api_token'), $request->getRequestUri()); $imdbId = $request->has('imdbid') && ! empty($request->input('imdbid')) ? $request->input('imdbid') : -1; @@ -112,7 +112,7 @@ class ApiV2Controller extends BasePageController $api = new API(); $releases = new Releases(); $offset = $api->offset(); - $catExclusions = User::getCategoryExclusion($this->userdata->id); + $catExclusions = User::getCategoryExclusionForApi($request); $minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0; $tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : []; $maxAge = $api->maxAge(); @@ -166,7 +166,7 @@ class ApiV2Controller extends BasePageController { $api = new API(); $releases = new Releases(); - $catExclusions = User::getCategoryExclusion($this->userdata->id); + $catExclusions = User::getCategoryExclusionForApi($request); $minSize = $request->has('minsize') && $request->input('minsize') > 0 ? $request->input('minsize') : 0; $tags = $request->has('tags') && ! empty($request->input('tags')) ? explode(',', $request->input('tags')) : []; $api->verifyEmptyParameter('id'); diff --git a/app/Http/Controllers/BasePageController.php b/app/Http/Controllers/BasePageController.php index 3b1363979..12f2c8b8c 100644 --- a/app/Http/Controllers/BasePageController.php +++ b/app/Http/Controllers/BasePageController.php @@ -229,7 +229,7 @@ class BasePageController extends Controller */ protected function setUserPreferences(): void { - $this->userdata['categoryexclusions'] = User::getCategoryExclusion(Auth::id()); + $this->userdata['categoryexclusions'] = User::getCategoryExclusionById(Auth::id()); // Change the theme to user's selected theme if they selected one, else use the admin one. if ((int) Settings::settingValue('site.main.userselstyle') === 1) { diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 1be275ea9..4a3659439 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -288,7 +288,7 @@ class ProfileController extends BasePageController $this->smarty->assign('error', $errorStr); $this->smarty->assign('user', $data); - $this->smarty->assign('userexccat', User::getCategoryExclusion($userid)); + $this->smarty->assign('userexccat', User::getCategoryExclusionById($userid)); $this->smarty->assign('saburl_selected', $sab->url); $this->smarty->assign('sabapikey_selected', $sab->apikey); diff --git a/app/Http/Controllers/RssController.php b/app/Http/Controllers/RssController.php index d96923d0b..cc6bfbb0e 100644 --- a/app/Http/Controllers/RssController.php +++ b/app/Http/Controllers/RssController.php @@ -122,9 +122,9 @@ class RssController extends BasePageController ]; if ($userCat === -3) { - $relData = $rss->getShowsRss($userNum, $uid, User::getCategoryExclusion($uid), $userAirDate); + $relData = $rss->getShowsRss($userNum, $uid, User::getCategoryExclusionById($uid), $userAirDate); } elseif ($userCat === -4) { - $relData = $rss->getMyMoviesRss($userNum, $uid, User::getCategoryExclusion($uid)); + $relData = $rss->getMyMoviesRss($userNum, $uid, User::getCategoryExclusionById($uid)); } else { $relData = $rss->getRss(explode(',', $userCat), $userShow, $userAnidb, $uid, $userAirDate, $userLimit, $userNum); } diff --git a/app/Models/User.php b/app/Models/User.php index 3e6c11aea..3da841c37 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,6 +3,7 @@ namespace App\Models; use Blacklight\ColorCLI; +use Illuminate\Http\Request; use Illuminate\Support\Str; use App\Jobs\SendInviteEmail; use Illuminate\Support\Facades\DB; @@ -803,7 +804,7 @@ class User extends Authenticatable * @return array * @throws \Exception */ - public static function getCategoryExclusion($userID): array + public static function getCategoryExclusionById($userID): array { $ret = []; @@ -854,6 +855,17 @@ class User extends Authenticatable return $exclusion; } + /** + * @param \Illuminate\Http\Request $request + * @return array + * @throws \Exception + */ + public static function getCategoryExclusionForApi(Request $request): array + { + $user = self::getByRssToken($request->input('api_token')); + return self::getCategoryExclusionById($user->id); + } + /** * @return \Illuminate\Database\Eloquent\Collection|\Illuminate\Support\Collection|static[] */