mirror of
https://github.com/bs-community/blessing-skin-server.git
synced 2025-03-01 15:05:39 +08:00
Refactor
This commit is contained in:
parent
aec3fe4a87
commit
b4ef665848
@ -404,7 +404,8 @@ class AdminController extends Controller
|
||||
return json(trans('admin.users.operations.email.existed', ['email' => $request->input('email')]), 1);
|
||||
}
|
||||
|
||||
$user->setEmail($request->input('email'));
|
||||
$user->email = $request->input('email');
|
||||
$user->save();
|
||||
|
||||
return json(trans('admin.users.operations.email.success'), 0);
|
||||
} elseif ($action == 'verification') {
|
||||
@ -417,7 +418,8 @@ class AdminController extends Controller
|
||||
'nickname' => 'required|no_special_chars',
|
||||
]);
|
||||
|
||||
$user->setNickName($request->input('nickname'));
|
||||
$user->nickname = $request->input('nickname');
|
||||
$user->save();
|
||||
|
||||
return json(trans('admin.users.operations.nickname.success', [
|
||||
'new' => $request->input('nickname'),
|
||||
@ -486,7 +488,9 @@ class AdminController extends Controller
|
||||
return json(trans('admin.players.textures.non-existent', ['tid' => $request->tid]), 1);
|
||||
}
|
||||
|
||||
$player->setTexture(['tid_'.$request->type => $request->tid]);
|
||||
$field = 'tid_'.$request->type;
|
||||
$player->$field = $request->tid;
|
||||
$player->save();
|
||||
|
||||
return json(trans('admin.players.textures.success', ['player' => $player->name]), 0);
|
||||
} elseif ($action == 'owner') {
|
||||
@ -500,9 +504,10 @@ class AdminController extends Controller
|
||||
return json(trans('admin.users.operations.non-existent'), 1);
|
||||
}
|
||||
|
||||
$player->setOwner($request->input('uid'));
|
||||
$player->uid = $request->input('uid');
|
||||
$player->save();
|
||||
|
||||
return json(trans('admin.players.owner.success', ['player' => $player->name, 'user' => $user->getNickName()]), 0);
|
||||
return json(trans('admin.players.owner.success', ['player' => $player->name, 'user' => $user->nickname]), 0);
|
||||
} elseif ($action == 'delete') {
|
||||
$player->delete();
|
||||
|
||||
@ -512,7 +517,8 @@ class AdminController extends Controller
|
||||
'name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'),
|
||||
])['name'];
|
||||
|
||||
$player->rename($name);
|
||||
$player->name = $name;
|
||||
$player->save();
|
||||
|
||||
if (option('single_player', false)) {
|
||||
$owner = $player->user;
|
||||
|
@ -66,7 +66,7 @@ class ClosetController extends Controller
|
||||
|
||||
$user = Auth::user();
|
||||
|
||||
if ($user->getScore() < option('score_per_closet_item')) {
|
||||
if ($user->score < option('score_per_closet_item')) {
|
||||
return json(trans('user.closet.add.lack-score'), 7);
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,13 @@ class PlayerController extends Controller
|
||||
$this->middleware(function ($request, $next) {
|
||||
if ($request->has('pid')) {
|
||||
if ($this->player = Player::find($request->pid)) {
|
||||
$this->player->checkForInvalidTextures();
|
||||
foreach (['skin', 'cape'] as $type) {
|
||||
$field = "tid_$type";
|
||||
if (! Texture::find($this->player->$field)) {
|
||||
$this->player->$field = 0;
|
||||
}
|
||||
}
|
||||
$this->player->save();
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +85,7 @@ class PlayerController extends Controller
|
||||
return json(trans('user.player.add.repeated'), 6);
|
||||
}
|
||||
|
||||
if ($user->getScore() < Option::get('score_per_player')) {
|
||||
if ($user->score < Option::get('score_per_player')) {
|
||||
return json(trans('user.player.add.lack-score'), 7);
|
||||
}
|
||||
|
||||
@ -138,8 +144,8 @@ class PlayerController extends Controller
|
||||
}
|
||||
|
||||
$oldName = $this->player->name;
|
||||
|
||||
$this->player->rename($newName);
|
||||
$this->player->name = $newName;
|
||||
$this->player->save();
|
||||
|
||||
if (option('single_player', false)) {
|
||||
$user = auth()->user();
|
||||
@ -150,12 +156,6 @@ class PlayerController extends Controller
|
||||
return json(trans('user.player.rename.success', ['old' => $oldName, 'new' => $newName]), 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* A wrapper of Player::setTexture().
|
||||
*
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function setTexture(Request $request)
|
||||
{
|
||||
foreach ($request->input('tid') as $key => $value) {
|
||||
@ -165,9 +165,10 @@ class PlayerController extends Controller
|
||||
return json(trans('skinlib.un-existent'), 6);
|
||||
}
|
||||
|
||||
$fieldName = $texture->type == 'cape' ? 'tid_cape' : 'tid_skin';
|
||||
$field = $texture->type == 'cape' ? 'tid_cape' : 'tid_skin';
|
||||
|
||||
$this->player->setTexture([$fieldName => $value]);
|
||||
$this->player->$field = $value;
|
||||
$this->player->save();
|
||||
}
|
||||
|
||||
return json(trans('user.player.set.success', ['name' => $this->player->name]), 0);
|
||||
@ -175,12 +176,13 @@ class PlayerController extends Controller
|
||||
|
||||
public function clearTexture(Request $request)
|
||||
{
|
||||
$types = array_filter(['skin', 'cape'], function ($type) use ($request) {
|
||||
return $request->input($type);
|
||||
});
|
||||
|
||||
$this->player->clearTexture($types);
|
||||
|
||||
array_map(function ($type) use ($request) {
|
||||
if ($request->input($type)) {
|
||||
$field = "tid_$type";
|
||||
$this->player->$field = 0;
|
||||
}
|
||||
}, ['skin', 'cape']);
|
||||
$this->player->save();
|
||||
return json(trans('user.player.clear.success', ['name' => $this->player->name]), 0);
|
||||
}
|
||||
|
||||
|
@ -191,7 +191,7 @@ class SkinlibController extends Controller
|
||||
$cost += option('score_per_closet_item');
|
||||
$cost -= option('score_award_per_texture', 0);
|
||||
|
||||
if ($user->getScore() < $cost) {
|
||||
if ($user->score < $cost) {
|
||||
return json(trans('skinlib.upload.lack-score'), 7);
|
||||
}
|
||||
|
||||
@ -292,7 +292,7 @@ class SkinlibController extends Controller
|
||||
if ($t->public && option('take_back_scores_after_deletion', true)) {
|
||||
$score_diff -= option('score_award_per_texture', 0);
|
||||
}
|
||||
if ($users->get($t->uploader)->getScore() + $score_diff < 0) {
|
||||
if ($users->get($t->uploader)->score + $score_diff < 0) {
|
||||
return json(trans('skinlib.upload.lack-score'), 1);
|
||||
}
|
||||
|
||||
|
@ -132,7 +132,7 @@ class TextureController extends Controller
|
||||
$user = $users->get(base64_decode($base64_email), 'email');
|
||||
|
||||
if ($user) {
|
||||
return $this->avatarByTid($user->getAvatarId(), $size);
|
||||
return $this->avatarByTid($user->avatar, $size);
|
||||
}
|
||||
|
||||
return response()->file(storage_path('static_textures/avatar.png'));
|
||||
|
@ -76,7 +76,7 @@ class UserController extends Controller
|
||||
$result['percentage'] = 0;
|
||||
|
||||
if ($rate != 0) {
|
||||
$result['total'] = $used + floor($user->getScore() / $rate);
|
||||
$result['total'] = $used + floor($user->score / $rate);
|
||||
$result['percentage'] = $result['total'] ? $used / $result['total'] * 100 : 100;
|
||||
}
|
||||
|
||||
@ -98,7 +98,7 @@ class UserController extends Controller
|
||||
return json([
|
||||
'errno' => 0,
|
||||
'msg' => trans('user.sign-success', ['score' => $acquiredScore]),
|
||||
'score' => $user->getScore(),
|
||||
'score' => $user->score,
|
||||
'storage' => $this->calculatePercentageUsed($user->getStorageUsed(), option('score_per_storage')),
|
||||
'remaining_time' => $gap > 1 ? round($gap) : $gap,
|
||||
]);
|
||||
@ -184,14 +184,11 @@ class UserController extends Controller
|
||||
]);
|
||||
|
||||
$nickname = $request->input('new_nickname');
|
||||
$user->nickname = $nickname;
|
||||
$user->save();
|
||||
event(new UserProfileUpdated($action, $user));
|
||||
|
||||
if ($user->setNickName($nickname)) {
|
||||
event(new UserProfileUpdated($action, $user));
|
||||
|
||||
return json(trans('user.profile.nickname.success', ['nickname' => $nickname]), 0);
|
||||
}
|
||||
|
||||
break; // @codeCoverageIgnore
|
||||
return json(trans('user.profile.nickname.success', ['nickname' => $nickname]), 0);
|
||||
|
||||
case 'password':
|
||||
$this->validate($request, [
|
||||
@ -227,19 +224,15 @@ class UserController extends Controller
|
||||
return json(trans('user.profile.email.wrong-password'), 1);
|
||||
}
|
||||
|
||||
if ($user->setEmail($request->input('new_email'))) {
|
||||
// Set account status to unverified
|
||||
$user->verified = false;
|
||||
$user->save();
|
||||
$user->email = $request->input('new_email');
|
||||
$user->verified = false;
|
||||
$user->save();
|
||||
|
||||
event(new UserProfileUpdated($action, $user));
|
||||
event(new UserProfileUpdated($action, $user));
|
||||
|
||||
Auth::logout();
|
||||
Auth::logout();
|
||||
|
||||
return json(trans('user.profile.email.success'), 0);
|
||||
}
|
||||
|
||||
break; // @codeCoverageIgnore
|
||||
return json(trans('user.profile.email.success'), 0);
|
||||
|
||||
case 'delete':
|
||||
$this->validate($request, [
|
||||
@ -301,9 +294,9 @@ class UserController extends Controller
|
||||
return json(trans('user.profile.avatar.wrong-type'), 1);
|
||||
}
|
||||
|
||||
if ($user->setAvatar($tid)) {
|
||||
return json(trans('user.profile.avatar.success'), 0);
|
||||
}
|
||||
$user->avatar = $tid;
|
||||
$user->save();
|
||||
return json(trans('user.profile.avatar.success'), 0);
|
||||
} else {
|
||||
return json(trans('skinlib.non-existent'), 1);
|
||||
}
|
||||
|
@ -44,7 +44,8 @@ class CheckAuthenticated
|
||||
if (isset($request->email)) {
|
||||
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
|
||||
if (User::where('email', $request->email)->get()->isEmpty()) {
|
||||
$user->setEmail($request->email);
|
||||
$user->email = $request->input('email');
|
||||
$user->save();
|
||||
|
||||
return $next($request);
|
||||
} else {
|
||||
|
@ -12,25 +12,14 @@ class Player extends Model
|
||||
public const CREATED_AT = null;
|
||||
public const UPDATED_AT = 'last_modified';
|
||||
|
||||
/**
|
||||
* Json APIs.
|
||||
*/
|
||||
const CSL_API = 0;
|
||||
const USM_API = 1;
|
||||
|
||||
protected static $types = ['skin', 'cape'];
|
||||
|
||||
/**
|
||||
* Properties for Eloquent Model.
|
||||
*/
|
||||
public $primaryKey = 'pid';
|
||||
protected $fillable = ['uid', 'name', 'last_modified'];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast to native types.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $casts = [
|
||||
'pid' => 'integer',
|
||||
'uid' => 'integer',
|
||||
@ -38,21 +27,15 @@ class Player extends Model
|
||||
'tid_cape' => 'integer',
|
||||
];
|
||||
|
||||
/**
|
||||
* Check if the player is banned.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected $dispatchesEvents = [
|
||||
'updated' => PlayerProfileUpdated::class,
|
||||
];
|
||||
|
||||
public function isBanned()
|
||||
{
|
||||
return $this->user->getPermission() == User::BANNED;
|
||||
return $this->user->permission == User::BANNED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the owner of the player.
|
||||
*
|
||||
* @return \App\Models\User
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo('App\Models\User', 'uid');
|
||||
@ -73,111 +56,6 @@ class Player extends Model
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set textures for the player.
|
||||
*
|
||||
* @param array $tids
|
||||
* @return $this
|
||||
*/
|
||||
public function setTexture(array $tids)
|
||||
{
|
||||
foreach (self::$types as $type) {
|
||||
$property = "tid_$type";
|
||||
|
||||
if (isset($tids[$property])) {
|
||||
$this->$property = $tids[$property];
|
||||
}
|
||||
}
|
||||
|
||||
$this->save();
|
||||
|
||||
event(new PlayerProfileUpdated($this));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check and delete invalid textures from player profile.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function checkForInvalidTextures()
|
||||
{
|
||||
foreach (self::$types as $type) {
|
||||
$property = "tid_$type";
|
||||
|
||||
if (! Texture::find($this->$property)) {
|
||||
// reset texture
|
||||
$this->$property = 0;
|
||||
}
|
||||
}
|
||||
|
||||
$this->save();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the textures of player.
|
||||
*
|
||||
* @param array|string $types
|
||||
* @return $this
|
||||
*/
|
||||
public function clearTexture($types)
|
||||
{
|
||||
$types = (array) $types;
|
||||
|
||||
$map = [];
|
||||
|
||||
foreach ($types as $type) {
|
||||
$map["tid_$type"] = 0;
|
||||
}
|
||||
|
||||
$this->setTexture($map);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Rename the player.
|
||||
*
|
||||
* @param string $newName
|
||||
* @return $this
|
||||
*/
|
||||
public function rename($newName)
|
||||
{
|
||||
$this->update([
|
||||
'name' => $newName,
|
||||
]);
|
||||
|
||||
$this->name = $newName;
|
||||
|
||||
event(new PlayerProfileUpdated($this));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a new owner for the player.
|
||||
*
|
||||
* @param int $uid
|
||||
* @return $this
|
||||
*/
|
||||
public function setOwner($uid)
|
||||
{
|
||||
$this->update(['uid' => $uid]);
|
||||
|
||||
event(new PlayerProfileUpdated($this));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Json profile of player.
|
||||
*
|
||||
* @param int $api_type Which API to use, 0 for CustomSkinAPI, 1 for UniSkinAPI
|
||||
* @return string User profile in json format
|
||||
*/
|
||||
public function getJsonProfile($api_type)
|
||||
{
|
||||
// Support both CustomSkinLoader API & UniSkinAPI
|
||||
@ -195,12 +73,6 @@ class Player extends Model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate player profile in json format.
|
||||
*
|
||||
* @param int $api_type
|
||||
* @return string
|
||||
*/
|
||||
public function generateJsonProfile($api_type)
|
||||
{
|
||||
$json[($api_type == self::CSL_API) ? 'username' : 'player_name'] = $this->name;
|
||||
|
@ -130,77 +130,6 @@ class User extends Authenticatable
|
||||
return $this->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user permission.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getPermission()
|
||||
{
|
||||
return $this->permission;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set user permission.
|
||||
*
|
||||
* @param int $permission
|
||||
* @return bool
|
||||
*/
|
||||
public function setPermission($permission)
|
||||
{
|
||||
return $this->update(['permission' => $permission]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set new email for user.
|
||||
*
|
||||
* @param string $new_email
|
||||
* @return bool
|
||||
*/
|
||||
public function setEmail($new_email)
|
||||
{
|
||||
$this->email = $new_email;
|
||||
|
||||
return $this->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return Email if nickname is not set.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNickName()
|
||||
{
|
||||
if (! $this->uid) {
|
||||
return trans('general.unexistent-user');
|
||||
} else {
|
||||
return ($this->nickname == '') ? $this->email : $this->nickname;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set nickname for the user.
|
||||
*
|
||||
* @param string $newNickName
|
||||
* @return bool
|
||||
*/
|
||||
public function setNickName($newNickName)
|
||||
{
|
||||
$this->nickname = $newNickName;
|
||||
|
||||
return $this->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current score of user.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getScore()
|
||||
{
|
||||
return $this->score;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set user score.
|
||||
*
|
||||
@ -276,7 +205,7 @@ class User extends Authenticatable
|
||||
*/
|
||||
public function getSignRemainingTime()
|
||||
{
|
||||
$lastSignTime = Carbon::parse($this->getLastSignTime());
|
||||
$lastSignTime = Carbon::parse($this->last_sign_at);
|
||||
|
||||
if (option('sign_after_zero')) {
|
||||
return Carbon::now()->diffInSeconds(
|
||||
@ -298,39 +227,6 @@ class User extends Authenticatable
|
||||
return $this->getSignRemainingTime() <= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the last time of signing in.
|
||||
*
|
||||
* @return string Formatted time string.
|
||||
*/
|
||||
public function getLastSignTime()
|
||||
{
|
||||
return $this->last_sign_at;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the texture id of user's avatar.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getAvatarId()
|
||||
{
|
||||
return $this->avatar;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set user avatar.
|
||||
*
|
||||
* @param int $tid
|
||||
* @return bool
|
||||
*/
|
||||
public function setAvatar($tid)
|
||||
{
|
||||
$this->avatar = $tid;
|
||||
|
||||
return $this->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the user.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@ if (! function_exists('get_base_url')) {
|
||||
if (! function_exists('avatar')) {
|
||||
function avatar(User $user, $size)
|
||||
{
|
||||
$fname = base64_encode($user->email).'.png?tid='.$user->getAvatarId();
|
||||
$fname = base64_encode($user->email).'.png?tid='.$user->avatar;
|
||||
|
||||
return url("avatar/$size/$fname");
|
||||
}
|
||||
@ -259,7 +259,7 @@ if (! function_exists('bs_role')) {
|
||||
User::SUPER_ADMIN => 'super-admin',
|
||||
];
|
||||
|
||||
$role = Arr::get($roles, $user->getPermission());
|
||||
$role = Arr::get($roles, $user->permission);
|
||||
|
||||
return trans("admin.users.status.$role");
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
</div>
|
||||
|
||||
<div class="login-box-body">
|
||||
<p class="login-box-msg">@lang('auth.reset.message', ['username' => $user->getNickName()])</p>
|
||||
<p class="login-box-msg">@lang('auth.reset.message', ['username' => $user->nickname])</p>
|
||||
|
||||
<form></form>
|
||||
</div>
|
||||
|
@ -480,7 +480,7 @@ class AdminControllerTest extends BrowserKitTestCase
|
||||
'msg' => trans('validation.in', ['attribute' => 'permission']),
|
||||
]);
|
||||
$user = User::find($user->uid);
|
||||
$this->assertEquals(User::NORMAL, $user->getPermission());
|
||||
$this->assertEquals(User::NORMAL, $user->permission);
|
||||
|
||||
// Update permission successfully
|
||||
$this->postJson('/admin/users', [
|
||||
@ -492,7 +492,7 @@ class AdminControllerTest extends BrowserKitTestCase
|
||||
'msg' => trans('admin.users.operations.permission'),
|
||||
]);
|
||||
$user = User::find($user->uid);
|
||||
$this->assertEquals(User::BANNED, $user->getPermission());
|
||||
$this->assertEquals(User::BANNED, $user->permission);
|
||||
|
||||
// Delete a user
|
||||
$this->postJson('/admin/users', ['uid' => $user->uid, 'action' => 'delete'])
|
||||
|
@ -19,15 +19,6 @@ class UserTest extends TestCase
|
||||
$this->assertFalse($user->sign());
|
||||
}
|
||||
|
||||
public function testGetNickName()
|
||||
{
|
||||
$user = new User();
|
||||
$this->assertEquals(
|
||||
trans('general.unexistent-user'),
|
||||
$user->getNickName()
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetPlayerNameAttribute()
|
||||
{
|
||||
$user = factory(User::class)->create();
|
||||
|
@ -174,6 +174,7 @@ class PlayerControllerTest extends TestCase
|
||||
|
||||
public function testRename()
|
||||
{
|
||||
Event::fake();
|
||||
$player = factory(Player::class)->create();
|
||||
$user = $player->user;
|
||||
|
||||
@ -219,7 +220,6 @@ class PlayerControllerTest extends TestCase
|
||||
]);
|
||||
|
||||
// Success
|
||||
$this->expectsEvents(Events\PlayerProfileUpdated::class);
|
||||
$this->postJson('/user/player/rename', [
|
||||
'pid' => $player->pid,
|
||||
'new_player_name' => 'new_name',
|
||||
@ -230,6 +230,7 @@ class PlayerControllerTest extends TestCase
|
||||
['old' => $player->name, 'new' => 'new_name']
|
||||
),
|
||||
]);
|
||||
Event::assertDispatched(Events\PlayerProfileUpdated::class);
|
||||
|
||||
// Single player
|
||||
option(['single_player' => true]);
|
||||
@ -289,16 +290,15 @@ class PlayerControllerTest extends TestCase
|
||||
|
||||
public function testClearTexture()
|
||||
{
|
||||
Event::fake();
|
||||
$player = factory(Player::class)->create();
|
||||
$user = $player->user;
|
||||
|
||||
$player->setTexture([
|
||||
'tid_skin' => 1,
|
||||
'tid_cape' => 2,
|
||||
]);
|
||||
$player = Player::find($player->pid);
|
||||
$player->tid_skin = 1;
|
||||
$player->tid_cape = 2;
|
||||
$player->save();
|
||||
$player->refresh();
|
||||
|
||||
$this->expectsEvents(Events\PlayerProfileUpdated::class);
|
||||
$this->actAs($user)
|
||||
->postJson('/user/player/texture/clear', [
|
||||
'pid' => $player->pid,
|
||||
@ -311,6 +311,7 @@ class PlayerControllerTest extends TestCase
|
||||
]);
|
||||
$this->assertEquals(0, Player::find($player->pid)->tid_skin);
|
||||
$this->assertEquals(0, Player::find($player->pid)->tid_cape);
|
||||
Event::assertDispatched(Events\PlayerProfileUpdated::class);
|
||||
}
|
||||
|
||||
public function testBind()
|
||||
|
@ -27,12 +27,14 @@ class TextureControllerTest extends TestCase
|
||||
|
||||
// Player is banned
|
||||
$player = factory(Player::class)->create(['tid_skin' => $steve->tid]);
|
||||
$player->user->setPermission(User::BANNED);
|
||||
$player->user->permission = User::BANNED;
|
||||
$player->user->save();
|
||||
$this->get("/{$player->name}.json")
|
||||
->assertSee(trans('general.player-banned'))
|
||||
->assertStatus(403);
|
||||
|
||||
$player->user->setPermission(User::NORMAL);
|
||||
$player->user->permission = User::NORMAL;
|
||||
$player->user->save();
|
||||
|
||||
// Default API is CSL API
|
||||
$this->getJson("/{$player->name}.json")
|
||||
|
Loading…
Reference in New Issue
Block a user