Remove UserRepository
This commit is contained in:
parent
311e9b61d7
commit
2267a2cadb
@ -14,7 +14,6 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redis;
|
||||
use App\Services\Repositories\UserRepository;
|
||||
|
||||
class AdminController extends Controller
|
||||
{
|
||||
@ -375,16 +374,10 @@ class AdminController extends Controller
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle ajax request from /admin/users.
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function userAjaxHandler(Request $request, UserRepository $users)
|
||||
public function userAjaxHandler(Request $request)
|
||||
{
|
||||
$action = $request->input('action');
|
||||
$user = $users->get($request->input('uid'));
|
||||
$user = User::find($request->uid);
|
||||
$currentUser = Auth::user();
|
||||
|
||||
if (! $user) {
|
||||
@ -400,7 +393,7 @@ class AdminController extends Controller
|
||||
'email' => 'required|email',
|
||||
]);
|
||||
|
||||
if ($users->get($request->input('email'), 'email')) {
|
||||
if (User::where('email', $request->email)->count() != 0) {
|
||||
return json(trans('admin.users.operations.email.existed', ['email' => $request->input('email')]), 1);
|
||||
}
|
||||
|
||||
@ -459,10 +452,7 @@ class AdminController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle ajax request from /admin/players.
|
||||
*/
|
||||
public function playerAjaxHandler(Request $request, UserRepository $users)
|
||||
public function playerAjaxHandler(Request $request)
|
||||
{
|
||||
$action = $request->input('action');
|
||||
$currentUser = Auth::user();
|
||||
@ -498,7 +488,7 @@ class AdminController extends Controller
|
||||
'uid' => 'required|integer',
|
||||
]);
|
||||
|
||||
$user = $users->get($request->input('uid'));
|
||||
$user = User::find($request->uid);
|
||||
|
||||
if (! $user) {
|
||||
return json(trans('admin.users.operations.non-existent'), 1);
|
||||
@ -532,16 +522,9 @@ class AdminController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get one user information.
|
||||
*
|
||||
* @param string $uid
|
||||
* @param UserRepository $users
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function getOneUser($uid, UserRepository $users)
|
||||
public function getOneUser($uid)
|
||||
{
|
||||
$user = $users->get(intval($uid));
|
||||
$user = User::find($uid);
|
||||
if ($user) {
|
||||
return json('success', 0, ['user' => $user->makeHidden([
|
||||
'password', 'ip', 'last_sign_at', 'register_at', 'remember_token',
|
||||
|
@ -14,11 +14,10 @@ use App\Mail\ForgotPassword;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Exceptions\PrettyPageException;
|
||||
use App\Services\Repositories\UserRepository;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
public function handleLogin(Request $request, UserRepository $users)
|
||||
public function handleLogin(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'identification' => 'required',
|
||||
@ -28,14 +27,16 @@ class AuthController extends Controller
|
||||
$identification = $request->input('identification');
|
||||
|
||||
// Guess type of identification
|
||||
$authType = (validate($identification, 'email')) ? 'email' : 'username';
|
||||
$authType = filter_var($identification, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||
|
||||
event(new Events\UserTryToLogin($identification, $authType));
|
||||
|
||||
// Get user instance from repository.
|
||||
// If the given identification is not registered yet,
|
||||
// it will return a null value.
|
||||
$user = $users->get($identification, $authType);
|
||||
if ($authType == 'email') {
|
||||
$user = User::where('email', $identification)->first();
|
||||
} else {
|
||||
$player = Player::where('name', $identification)->first();
|
||||
$user = $player ? $player->user : null;
|
||||
}
|
||||
|
||||
// Require CAPTCHA if user fails to login more than 3 times
|
||||
$loginFailsCacheKey = sha1('login_fails_'.get_client_ip());
|
||||
@ -73,7 +74,6 @@ class AuthController extends Controller
|
||||
{
|
||||
if (Auth::check()) {
|
||||
Auth::logout();
|
||||
|
||||
return json(trans('auth.logout.success'), 0);
|
||||
} else {
|
||||
return json(trans('auth.logout.fail'), 1);
|
||||
@ -161,7 +161,7 @@ class AuthController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function handleForgot(Request $request, UserRepository $users)
|
||||
public function handleForgot(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
'captcha' => 'required'.(app()->environment('testing') ? '' : '|captcha'),
|
||||
@ -184,8 +184,7 @@ class AuthController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
// Get user instance
|
||||
$user = $users->get($request->input('email'), 'email');
|
||||
$user = User::where('email', $request->email)->first();
|
||||
|
||||
if (! $user) {
|
||||
return json(trans('auth.forgot.unregistered'), 1);
|
||||
@ -206,29 +205,29 @@ class AuthController extends Controller
|
||||
return json(trans('auth.forgot.success'), 0);
|
||||
}
|
||||
|
||||
public function reset($uid, UserRepository $users)
|
||||
public function reset($uid)
|
||||
{
|
||||
return view('auth.reset')->with('user', $users->get($uid));
|
||||
return view('auth.reset')->with('user', User::find($uid));
|
||||
}
|
||||
|
||||
public function handleReset($uid, Request $request, UserRepository $users)
|
||||
public function handleReset($uid, Request $request)
|
||||
{
|
||||
$validated = $this->validate($request, [
|
||||
'password' => 'required|min:8|max:32',
|
||||
]);
|
||||
|
||||
$users->get($uid)->changePassword($validated['password']);
|
||||
User::find($uid)->changePassword($validated['password']);
|
||||
|
||||
return json(trans('auth.reset.success'), 0);
|
||||
}
|
||||
|
||||
public function verify(UserRepository $users, $uid)
|
||||
public function verify($uid)
|
||||
{
|
||||
if (! option('require_verification')) {
|
||||
throw new PrettyPageException(trans('user.verification.disabled'), 1);
|
||||
}
|
||||
|
||||
$user = $users->get($uid);
|
||||
$user = User::find($uid);
|
||||
|
||||
if (! $user || $user->verified) {
|
||||
throw new PrettyPageException(trans('auth.verify.invalid'), 1);
|
||||
|
@ -12,7 +12,6 @@ use App\Models\Texture;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Services\Repositories\UserRepository;
|
||||
|
||||
class SkinlibController extends Controller
|
||||
{
|
||||
@ -226,7 +225,7 @@ class SkinlibController extends Controller
|
||||
|
||||
// @codeCoverageIgnore
|
||||
|
||||
public function delete(Request $request, UserRepository $users)
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$result = Texture::find($request->tid);
|
||||
$user = Auth::user();
|
||||
@ -251,7 +250,7 @@ class SkinlibController extends Controller
|
||||
}
|
||||
});
|
||||
|
||||
if ($u = $users->get($result->uploader)) {
|
||||
if ($u = User::find($result->uploader)) {
|
||||
$ret = 0;
|
||||
if (option('return_score')) {
|
||||
$ret += $result->size * (
|
||||
@ -275,7 +274,7 @@ class SkinlibController extends Controller
|
||||
|
||||
// @codeCoverageIgnore
|
||||
|
||||
public function privacy(Request $request, UserRepository $users)
|
||||
public function privacy(Request $request)
|
||||
{
|
||||
$t = Texture::find($request->input('tid'));
|
||||
$user = Auth::user();
|
||||
@ -288,11 +287,12 @@ class SkinlibController extends Controller
|
||||
return json(trans('skinlib.no-permission'), 1);
|
||||
}
|
||||
|
||||
$uploader = User::find($t->uploader);
|
||||
$score_diff = $t->size * (option('private_score_per_storage') - option('score_per_storage')) * ($t->public ? -1 : 1);
|
||||
if ($t->public && option('take_back_scores_after_deletion', true)) {
|
||||
$score_diff -= option('score_award_per_texture', 0);
|
||||
}
|
||||
if ($users->get($t->uploader)->score + $score_diff < 0) {
|
||||
if ($uploader->score + $score_diff < 0) {
|
||||
return json(trans('skinlib.upload.lack-score'), 1);
|
||||
}
|
||||
|
||||
@ -308,7 +308,7 @@ class SkinlibController extends Controller
|
||||
}
|
||||
});
|
||||
|
||||
@$users->get($t->uploader)->setScore($score_diff, 'plus');
|
||||
@$uploader->setScore($score_diff, 'plus');
|
||||
|
||||
$t->public = ! $t->public;
|
||||
$t->save();
|
||||
|
@ -8,11 +8,11 @@ use Storage;
|
||||
use Response;
|
||||
use Exception;
|
||||
use Minecraft;
|
||||
use App\Models\User;
|
||||
use App\Models\Player;
|
||||
use App\Models\Texture;
|
||||
use App\Events\GetSkinPreview;
|
||||
use App\Events\GetAvatarPreview;
|
||||
use App\Services\Repositories\UserRepository;
|
||||
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
|
||||
|
||||
class TextureController extends Controller
|
||||
@ -127,9 +127,9 @@ class TextureController extends Controller
|
||||
return $this->avatarByTid($tid, $size);
|
||||
}
|
||||
|
||||
public function avatar($base64_email, UserRepository $users, $size = 128)
|
||||
public function avatar($base64_email, $size = 128)
|
||||
{
|
||||
$user = $users->get(base64_decode($base64_email), 'email');
|
||||
$user = User::where('email', base64_decode($base64_email))->first();
|
||||
|
||||
if ($user) {
|
||||
return $this->avatarByTid($user->avatar, $size);
|
||||
@ -138,9 +138,9 @@ class TextureController extends Controller
|
||||
return response()->file(storage_path('static_textures/avatar.png'));
|
||||
}
|
||||
|
||||
public function avatarWithSize($size, $base64_email, UserRepository $users)
|
||||
public function avatarWithSize($size, $base64_email)
|
||||
{
|
||||
return $this->avatar($base64_email, $users, $size);
|
||||
return $this->avatar($base64_email, $size);
|
||||
}
|
||||
|
||||
public function preview($tid, $size = 250)
|
||||
|
@ -13,7 +13,6 @@ use Illuminate\Http\Request;
|
||||
use App\Mail\EmailVerification;
|
||||
use App\Events\UserProfileUpdated;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Services\Repositories\UserRepository;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
@ -161,14 +160,7 @@ class UserController extends Controller
|
||||
return view('user.profile')->with('user', Auth::user());
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle changing user profile.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param UserRepository $users
|
||||
* @return mixed
|
||||
*/
|
||||
public function handleProfile(Request $request, UserRepository $users)
|
||||
public function handleProfile(Request $request)
|
||||
{
|
||||
$action = $request->input('action', '');
|
||||
$user = Auth::user();
|
||||
@ -216,7 +208,7 @@ class UserController extends Controller
|
||||
'password' => 'required|min:6|max:32',
|
||||
]);
|
||||
|
||||
if ($users->get($request->input('new_email'), 'email')) {
|
||||
if (User::where('email', $request->new_email)->count() > 0) {
|
||||
return json(trans('user.profile.email.existed'), 1);
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,6 @@ class AppServiceProvider extends ServiceProvider
|
||||
public function register()
|
||||
{
|
||||
$this->app->singleton('cipher', 'App\Services\Cipher\\'.config('secure.cipher'));
|
||||
$this->app->singleton('users', \App\Services\Repositories\UserRepository::class);
|
||||
$this->app->singleton('options', OptionRepository::class);
|
||||
$this->app->singleton('parsedown', \Parsedown::class);
|
||||
}
|
||||
|
@ -8,6 +8,8 @@ use Illuminate\Database\QueryException;
|
||||
|
||||
class OptionRepository extends Repository
|
||||
{
|
||||
protected $items = [];
|
||||
|
||||
/**
|
||||
* Create a new option repository.
|
||||
*
|
||||
|
@ -1,78 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Repositories;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Player;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class UserRepository extends Repository
|
||||
{
|
||||
/**
|
||||
* Determine if a user exists in the repository.
|
||||
*
|
||||
* @param string $identification
|
||||
* @param string $type Must be one of properties defined in User class
|
||||
* @return bool
|
||||
*/
|
||||
public function has($identification, $type = 'uid')
|
||||
{
|
||||
if ($type == 'uid') {
|
||||
return Arr::has($this->items, $identification);
|
||||
} else {
|
||||
return (bool) Arr::where((array) $this->items, function ($value) use ($identification, $type) {
|
||||
if (property_exists($value, $type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value->$type == $identification;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user from repository and cache it.
|
||||
*
|
||||
* @param string $identification
|
||||
* @param string $type
|
||||
* @return mixed
|
||||
*/
|
||||
public function get($identification, $type = 'uid')
|
||||
{
|
||||
if (! $this->has($identification, $type)) {
|
||||
if ($type == 'username') {
|
||||
$player = Player::where('name', $identification)->first();
|
||||
|
||||
if ($player) {
|
||||
$identification = $player->uid;
|
||||
$type = 'uid';
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
$user = User::where($type, $identification)->first();
|
||||
|
||||
if ($user) {
|
||||
$this->set($user->uid, $user);
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
$result = Arr::where((array) $this->items, function ($value) use ($identification, $type) {
|
||||
if (property_exists($value, $type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value->$type == $identification;
|
||||
});
|
||||
|
||||
// Return first element
|
||||
reset($result);
|
||||
|
||||
return current($result);
|
||||
}
|
||||
}
|
@ -303,21 +303,6 @@ if (! function_exists('option_localized')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('validate')) {
|
||||
function validate($value, $type)
|
||||
{
|
||||
switch ($type) {
|
||||
case 'email':
|
||||
return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
|
||||
break;
|
||||
|
||||
default:
|
||||
// code...
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('humanize_db_type')) {
|
||||
function humanize_db_type($type = null)
|
||||
{
|
||||
|
@ -52,7 +52,7 @@ Object.defineProperty(blessing, 'extra', {
|
||||
currentUid: {{ is_null($user) ? '0' : $user->uid }},
|
||||
admin: {{ $user && $user->isAdmin() ? 'true' : 'false' }},
|
||||
inCloset: {{ $user && $user->closet()->where('tid', $texture->tid)->count() > 0 ? 'true' : 'false' }},
|
||||
nickname: @php echo ($up = app('users')->get($texture->uploader)) ? '"'.$up->nickname.'"' : 'null' @endphp
|
||||
nickname: @php echo ($up = \App\Models\User::find($texture->uploader)) ? '"'.$up->nickname.'"' : 'null' @endphp
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
@ -28,11 +28,7 @@ class AuthControllerTest extends TestCase
|
||||
|
||||
$user = factory(User::class)->create();
|
||||
$user->changePassword('12345678');
|
||||
$player = factory(Player::class)->create(
|
||||
[
|
||||
'uid' => $user->uid,
|
||||
]
|
||||
);
|
||||
$player = factory(Player::class)->create(['uid' => $user->uid]);
|
||||
|
||||
// Should return a warning if `identification` is empty
|
||||
$this->postJson('/auth/login')
|
||||
|
@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use App\Services\Repositories\UserRepository;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class UserRepositoryTest extends TestCase
|
||||
{
|
||||
use DatabaseTransactions;
|
||||
|
||||
public function testHas()
|
||||
{
|
||||
$repo = new UserRepository();
|
||||
$this->assertFalse($repo->has('not_found', 'invalid'));
|
||||
}
|
||||
|
||||
public function testGet()
|
||||
{
|
||||
$repo = new UserRepository();
|
||||
$this->assertNull($repo->get('not_found', 'username'));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user