Rename column player_name to name

This commit is contained in:
Pig Fang 2019-03-13 13:16:51 +08:00
parent 891676c7ef
commit ceac906771
20 changed files with 108 additions and 76 deletions

View File

@ -267,7 +267,7 @@ class AdminController extends Controller
$isSpecifiedUser = $request->has('uid');
if ($isSpecifiedUser) {
$players = Player::select(['pid', 'uid', 'player_name', 'tid_skin', 'tid_cape', 'last_modified'])
$players = Player::select(['pid', 'uid', 'name', 'tid_skin', 'tid_cape', 'last_modified'])
->where('uid', intval($request->input('uid')))
->get();
} else {
@ -277,10 +277,10 @@ class AdminController extends Controller
$page = $request->input('page', 1);
$perPage = $request->input('perPage', 10);
$players = Player::select(['pid', 'uid', 'player_name', 'tid_skin', 'tid_cape', 'last_modified'])
$players = Player::select(['pid', 'uid', 'name', 'tid_skin', 'tid_cape', 'last_modified'])
->where('pid', 'like', '%'.$search.'%')
->orWhere('uid', 'like', '%'.$search.'%')
->orWhere('player_name', 'like', '%'.$search.'%')
->orWhere('name', 'like', '%'.$search.'%')
->orderBy($sortField, $sortType)
->offset(($page - 1) * $perPage)
->limit($perPage)
@ -418,7 +418,7 @@ class AdminController extends Controller
$player->setTexture(['tid_'.$request->type => $request->tid]);
return json(trans('admin.players.textures.success', ['player' => $player->player_name]), 0);
return json(trans('admin.players.textures.success', ['player' => $player->name]), 0);
} elseif ($action == 'owner') {
$this->validate($request, [
'uid' => 'required|integer',
@ -432,7 +432,7 @@ class AdminController extends Controller
$player->setOwner($request->input('uid'));
return json(trans('admin.players.owner.success', ['player' => $player->player_name, 'user' => $user->getNickName()]), 0);
return json(trans('admin.players.owner.success', ['player' => $player->name, 'user' => $user->getNickName()]), 0);
} elseif ($action == 'delete') {
$player->delete();
@ -444,7 +444,7 @@ class AdminController extends Controller
$player->rename($request->input('name'));
return json(trans('admin.players.name.success', ['player' => $player->player_name]), 0, ['name' => $player->player_name]);
return json(trans('admin.players.name.success', ['player' => $player->name]), 0, ['name' => $player->name]);
} else {
return json(trans('admin.users.operations.invalid'), 1);
}

View File

@ -107,7 +107,7 @@ class AuthController extends Controller
if (option('register_with_player_name')) {
event(new Events\CheckPlayerExists($request->get('player_name')));
if (Player::where('player_name', $request->get('player_name'))->first()) {
if (Player::where('name', $request->get('player_name'))->first()) {
return json(trans('user.player.add.repeated'), 2);
}
}
@ -137,7 +137,7 @@ class AuthController extends Controller
if (option('register_with_player_name')) {
$player = new Player;
$player->uid = $user->uid;
$player->player_name = $request->get('player_name');
$player->name = $request->get('player_name');
$player->tid_skin = 0;
$player->save();

View File

@ -57,7 +57,7 @@ class PlayerController extends Controller
{
return Auth::user()
->players()
->select('pid', 'player_name', 'tid_skin', 'tid_cape')
->select('pid', 'name', 'tid_skin', 'tid_cape')
->get();
}
@ -71,7 +71,7 @@ class PlayerController extends Controller
event(new CheckPlayerExists($request->input('player_name')));
if (! Player::where('player_name', $request->input('player_name'))->get()->isEmpty()) {
if (! Player::where('name', $request->input('player_name'))->get()->isEmpty()) {
return json(trans('user.player.add.repeated'), 6);
}
@ -84,7 +84,7 @@ class PlayerController extends Controller
$player = new Player;
$player->uid = $user->uid;
$player->player_name = $request->input('player_name');
$player->name = $request->input('player_name');
$player->tid_skin = 0;
$player->save();
@ -97,7 +97,7 @@ class PlayerController extends Controller
public function delete()
{
$playerName = $this->player->player_name;
$playerName = $this->player->name;
event(new PlayerWillBeDeleted($this->player));
@ -125,11 +125,11 @@ class PlayerController extends Controller
$newName = $request->input('new_player_name');
if (! Player::where('player_name', $newName)->get()->isEmpty()) {
if (! Player::where('name', $newName)->get()->isEmpty()) {
return json(trans('user.player.rename.repeated'), 6);
}
$oldName = $this->player->player_name;
$oldName = $this->player->name;
$this->player->rename($newName);
@ -156,7 +156,7 @@ class PlayerController extends Controller
$this->player->setTexture([$fieldName => $value]);
}
return json(trans('user.player.set.success', ['name' => $this->player->player_name]), 0);
return json(trans('user.player.set.success', ['name' => $this->player->name]), 0);
}
public function clearTexture(Request $request)
@ -167,6 +167,6 @@ class PlayerController extends Controller
$this->player->clearTexture($types);
return json(trans('user.player.clear.success', ['name' => $this->player->player_name]), 0);
return json(trans('user.player.clear.success', ['name' => $this->player->name]), 0);
}
}

View File

@ -204,7 +204,7 @@ class TextureController extends Controller
protected function getPlayerInstance($player_name)
{
$player = Player::where('player_name', $player_name)->first();
$player = Player::where('name', $player_name)->first();
if ($player->isBanned()) {
abort(403, trans('general.player-banned'));

View File

@ -37,7 +37,7 @@ class CheckPlayerExist
} // @codeCoverageIgnore
}
if (! Player::where('player_name', $player_name)->get()->isEmpty()) {
if (! Player::where('name', $player_name)->get()->isEmpty()) {
return $next($request);
}

View File

@ -24,7 +24,7 @@ class Player extends Model
* Properties for Eloquent Model.
*/
public $primaryKey = 'pid';
protected $fillable = ['uid', 'player_name', 'last_modified'];
protected $fillable = ['uid', 'name', 'last_modified'];
/**
* The attributes that should be cast to native types.
@ -147,10 +147,10 @@ class Player extends Model
public function rename($newName)
{
$this->update([
'player_name' => $newName,
'name' => $newName,
]);
$this->player_name = $newName;
$this->name = $newName;
event(new PlayerProfileUpdated($this));
@ -203,7 +203,7 @@ class Player extends Model
*/
public function generateJsonProfile($api_type)
{
$json[($api_type == self::CSL_API) ? 'username' : 'player_name'] = $this->player_name;
$json[($api_type == self::CSL_API) ? 'username' : 'player_name'] = $this->name;
$texture = Texture::find($this->tid_skin);
$model = empty($texture) ? 'default' : ($texture->type === 'steve' ? 'default' : 'slim');

View File

@ -41,7 +41,7 @@ class UserRepository extends Repository
{
if (! $this->has($identification, $type)) {
if ($type == 'username') {
$player = Player::where('player_name', $identification)->first();
$player = Player::where('name', $identification)->first();
if ($player) {
$identification = $player->uid;

View File

@ -5,7 +5,7 @@ use App\Models\Player;
$factory->define(Player::class, function (Faker\Generator $faker) {
return [
'uid' => factory(App\Models\User::class)->create()->uid,
'player_name' => $faker->firstName,
'name' => $faker->firstName,
'tid_skin' => 0,
];
});

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class RenamePlayersTableColumns extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('players', function (Blueprint $table) {
$table->renameColumn('player_name', 'name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('players', function (Blueprint $table) {
$table->renameColumn('name', 'player_name');
});
}
}

View File

@ -14,7 +14,7 @@
styleClass="vgt-table striped"
>
<template slot="table-row" slot-scope="props">
<span v-if="props.column.field === 'player_name'">
<span v-if="props.column.field === 'name'">
{{ props.formattedRow[props.column.field] }}
<a @click="changeName(props.row)" :title="$t('admin.changePlayerName')" data-test="name">
<i class="fas fa-edit btn-edit"></i>
@ -135,7 +135,7 @@ export default {
totalRecords: 0,
columns: [
{ field: 'pid', label: 'PID', type: 'number' },
{ field: 'player_name', label: this.$t('general.player.player-name') },
{ field: 'name', label: this.$t('general.player.player-name') },
{ field: 'uid', label: this.$t('general.player.owner'), type: 'number' },
{ field: 'preview', label: this.$t('general.player.previews'), globalSearchDisabled: true, sortable: false },
{ field: 'last_modified', label: this.$t('general.player.last-modified') },
@ -218,7 +218,7 @@ export default {
const { dismiss, value } = await swal({
text: this.$t('admin.changePlayerNameNotice'),
input: 'text',
inputValue: player.player_name,
inputValue: player.name,
inputValidator: name => !name && this.$t('admin.emptyPlayerName')
});
if (dismiss) {
@ -230,7 +230,7 @@ export default {
{ pid: player.pid, name: value }
);
if (errno === 0) {
player.player_name = value;
player.name = value;
toastr.success(msg);
} else {
toastr.warning(msg);

View File

@ -173,7 +173,7 @@
v-model="selectedPlayer"
/>
<img :src="avatarUrl(player)" width="35" height="35" />
<span>{{ player.player_name }}</span>
<span>{{ player.name }}</span>
</label>
</div>
</template>

View File

@ -22,7 +22,7 @@
@click="preview(player)"
>
<td class="pid">{{ player.pid }}</td>
<td class="player-name">{{ player.player_name }}</td>
<td class="player-name">{{ player.name }}</td>
<td>
<a
class="btn btn-default btn-sm"
@ -279,7 +279,7 @@ export default {
async changeName(player) {
const { dismiss, value } = await swal({
title: this.$t('user.changePlayerName'),
inputValue: player.player_name,
inputValue: player.name,
input: 'text',
showCancelButton: true,
inputValidator: value => !value && this.$t('user.emptyPlayerName')
@ -294,7 +294,7 @@ export default {
);
if (errno === 0) {
swal({ type: 'success', text: msg });
player.player_name = value;
player.name = value;
} else {
swal({ type: 'warning', text: msg });
}

View File

@ -77,7 +77,7 @@ test('change texture', async () => {
test('change player name', async () => {
Vue.prototype.$http.get.mockResolvedValue({ data: [
{ pid: 1, player_name: 'old' }
{ pid: 1, name: 'old' }
] });
Vue.prototype.$http.post
.mockResolvedValueOnce({ errno: 1, msg: '1' })
@ -139,7 +139,7 @@ test('change owner', async () => {
test('delete player', async () => {
Vue.prototype.$http.get.mockResolvedValue({ data: [
{ pid: 1, player_name: 'to-be-deleted' }
{ pid: 1, name: 'to-be-deleted' }
] });
Vue.prototype.$http.post
.mockResolvedValueOnce({ errno: 1, msg: '1' })

View File

@ -190,7 +190,7 @@ test('apply texture', async () => {
.mockResolvedValueOnce({})
.mockResolvedValueOnce([])
.mockResolvedValueOnce([
{ pid: 1, player_name: 'name', tid_skin: 10 }
{ pid: 1, name: 'name', tid_skin: 10 }
]);
const wrapper = mount(Closet);

View File

@ -55,7 +55,7 @@ test('click to preview player', async () => {
test('change player name', async () => {
Vue.prototype.$http.get
.mockResolvedValueOnce([
{ pid: 1, player_name: 'old' },
{ pid: 1, name: 'old' },
]);
Vue.prototype.$http.post
.mockResolvedValueOnce({ errno: 1 })
@ -111,7 +111,7 @@ test('load iCheck', async () => {
test('delete player', async () => {
Vue.prototype.$http.get
.mockResolvedValueOnce([
{ pid: 1, player_name: 'to-be-deleted' },
{ pid: 1, name: 'to-be-deleted' },
]);
Vue.prototype.$http.post
.mockResolvedValueOnce({ errno: 1 })

View File

@ -196,7 +196,7 @@ class AdminControllerTest extends BrowserKitTestCase
'data' => [[
'pid',
'uid',
'player_name',
'name',
'tid_skin',
'tid_cape',
'last_modified',
@ -208,7 +208,7 @@ class AdminControllerTest extends BrowserKitTestCase
'data' => [[
'pid' => $player->pid,
'uid' => $user->uid,
'player_name' => $player->player_name,
'name' => $player->name,
'tid_skin' => $player->tid_skin,
'tid_cape' => $player->tid_cape,
]],
@ -555,7 +555,7 @@ class AdminControllerTest extends BrowserKitTestCase
'tid' => $skin->tid,
])->seeJson([
'errno' => 0,
'msg' => trans('admin.players.textures.success', ['player' => $player->player_name]),
'msg' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
$player = Player::find($player->pid);
$this->assertEquals($skin->tid, $player->tid_skin);
@ -568,7 +568,7 @@ class AdminControllerTest extends BrowserKitTestCase
'tid' => $cape->tid,
])->seeJson([
'errno' => 0,
'msg' => trans('admin.players.textures.success', ['player' => $player->player_name]),
'msg' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
$player = Player::find($player->pid);
$this->assertEquals($cape->tid, $player->tid_cape);
@ -581,7 +581,7 @@ class AdminControllerTest extends BrowserKitTestCase
'tid' => 0,
])->seeJson([
'errno' => 0,
'msg' => trans('admin.players.textures.success', ['player' => $player->player_name]),
'msg' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
$player = Player::find($player->pid);
$this->assertEquals(0, $player->tid_skin);
@ -594,7 +594,7 @@ class AdminControllerTest extends BrowserKitTestCase
'tid' => 0,
])->seeJson([
'errno' => 0,
'msg' => trans('admin.players.textures.success', ['player' => $player->player_name]),
'msg' => trans('admin.players.textures.success', ['player' => $player->name]),
]);
$player = Player::find($player->pid);
$this->assertEquals(0, $player->tid_cape);
@ -642,7 +642,7 @@ class AdminControllerTest extends BrowserKitTestCase
'errno' => 0,
'msg' => trans(
'admin.players.owner.success',
['player' => $player->player_name, 'user' => $user->nickname]
['player' => $player->name, 'user' => $user->nickname]
),
]);

View File

@ -143,7 +143,7 @@ class AuthControllerTest extends TestCase
// Logged in should be in success if logged in with player name
$this->postJson(
'/auth/login', [
'identification' => $player->player_name,
'identification' => $player->name,
'password' => '12345678',
]
)->assertJson(
@ -304,7 +304,7 @@ class AuthControllerTest extends TestCase
[
'email' => 'a@b.c',
'password' => '12345678',
'player_name' => $player->player_name,
'player_name' => $player->name,
'captcha' => 'a',
]
)->assertJson([
@ -444,7 +444,7 @@ class AuthControllerTest extends TestCase
'captcha' => 'a',
]
)->assertJson(['errno' => 0]);
$this->assertNotNull(Player::where('player_name', 'name'));
$this->assertNotNull(Player::where('player', 'name'));
}
public function testForgot()

View File

@ -141,11 +141,11 @@ class MiddlewareTest extends TestCase
$this->getJson('/nope.json')->assertStatus(204);
$player = factory(\App\Models\Player::class)->create();
$this->getJson("/{$player->player_name}.json")
->assertJson(['username' => $player->player_name]); // Default is CSL API
$this->getJson("/{$player->name}.json")
->assertJson(['username' => $player->name]); // Default is CSL API
$this->expectsEvents(\App\Events\CheckPlayerExists::class);
$this->getJson("/{$player->player_name}.json");
$this->getJson("/{$player->name}.json");
$player = factory(\App\Models\Player::class)->create();
$user = $player->user;

View File

@ -34,7 +34,7 @@ class PlayerControllerTest extends TestCase
->assertJson([
[
'pid' => $player->pid,
'player_name' => $player->player_name,
'name' => $player->name,
],
]);
}
@ -96,10 +96,10 @@ class PlayerControllerTest extends TestCase
]);
$this->expectsEvents(Events\PlayerWillBeAdded::class);
$this->expectsEvents(Events\PlayerWasAdded::class);
$player = Player::where('player_name', '角色名')->first();
$player = Player::where('name', '角色名')->first();
$this->assertNotNull($player);
$this->assertEquals($user->uid, $player->uid);
$this->assertEquals('角色名', $player->player_name);
$this->assertEquals('角色名', $player->name);
$this->assertEquals(
$score - option('score_per_player'),
User::find($user->uid)->score
@ -123,7 +123,7 @@ class PlayerControllerTest extends TestCase
->postJson('/user/player/delete', ['pid' => $player->pid])
->assertJson([
'errno' => 0,
'msg' => trans('user.player.delete.success', ['name' => $player->player_name]),
'msg' => trans('user.player.delete.success', ['name' => $player->name]),
]);
$this->assertNull(Player::find($player->pid));
$this->expectsEvents(Events\PlayerWasDeleted::class);
@ -140,7 +140,7 @@ class PlayerControllerTest extends TestCase
->postJson('/user/player/delete', ['pid' => $player->pid])
->assertJson([
'errno' => 0,
'msg' => trans('user.player.delete.success', ['name' => $player->player_name]),
'msg' => trans('user.player.delete.success', ['name' => $player->name]),
]);
$this->assertEquals(
$user->score,
@ -196,7 +196,7 @@ class PlayerControllerTest extends TestCase
]);
// Use a duplicated player name
$name = factory(Player::class)->create()->player_name;
$name = factory(Player::class)->create()->name;
$this->postJson('/user/player/rename', [
'pid' => $player->pid,
'new_player_name' => $name,
@ -214,7 +214,7 @@ class PlayerControllerTest extends TestCase
'errno' => 0,
'msg' => trans(
'user.player.rename.success',
['old' => $player->player_name, 'new' => 'new_name']
['old' => $player->name, 'new' => 'new_name']
),
]);
}
@ -242,7 +242,7 @@ class PlayerControllerTest extends TestCase
'tid' => ['skin' => $skin->tid],
])->assertJson([
'errno' => 0,
'msg' => trans('user.player.set.success', ['name' => $player->player_name]),
'msg' => trans('user.player.set.success', ['name' => $player->name]),
]);
$this->assertEquals($skin->tid, Player::find($player->pid)->tid_skin);
@ -252,7 +252,7 @@ class PlayerControllerTest extends TestCase
'tid' => ['cape' => $cape->tid],
])->assertJson([
'errno' => 0,
'msg' => trans('user.player.set.success', ['name' => $player->player_name]),
'msg' => trans('user.player.set.success', ['name' => $player->name]),
]);
$this->assertEquals($cape->tid, Player::find($player->pid)->tid_cape);
@ -262,7 +262,7 @@ class PlayerControllerTest extends TestCase
'tid' => ['nope' => $skin->tid], // TID must be valid
])->assertJson([
'errno' => 0,
'msg' => trans('user.player.set.success', ['name' => $player->player_name]),
'msg' => trans('user.player.set.success', ['name' => $player->name]),
]);
}
@ -286,7 +286,7 @@ class PlayerControllerTest extends TestCase
'nope' => 1, // Invalid texture type is acceptable
])->assertJson([
'errno' => 0,
'msg' => trans('user.player.clear.success', ['name' => $player->player_name]),
'msg' => trans('user.player.clear.success', ['name' => $player->name]),
]);
$this->assertEquals(0, Player::find($player->pid)->tid_skin);
$this->assertEquals(0, Player::find($player->pid)->tid_cape);

View File

@ -26,16 +26,16 @@ class TextureControllerTest extends TestCase
// Player is banned
$player = factory(Player::class)->create(['tid_skin' => $steve->tid]);
$player->user->setPermission(User::BANNED);
$this->get("/{$player->player_name}.json")
$this->get("/{$player->name}.json")
->assertSee(trans('general.player-banned'))
->assertStatus(403);
$player->user->setPermission(User::NORMAL);
// Default API is CSL API
$this->getJson("/{$player->player_name}.json")
$this->getJson("/{$player->name}.json")
->assertJson([
'username' => $player->player_name,
'username' => $player->name,
'skins' => [
'default' => $steve->hash,
],
@ -50,9 +50,9 @@ class TextureControllerTest extends TestCase
$player = factory(Player::class)->create(['tid_skin' => $steve->tid]);
// CSL API
$this->getJson("/csl/{$player->player_name}.json")
$this->getJson("/csl/{$player->name}.json")
->assertJson([
'username' => $player->player_name,
'username' => $player->name,
'skins' => [
'default' => $steve->hash,
],
@ -60,9 +60,9 @@ class TextureControllerTest extends TestCase
])->assertHeader('Last-Modified');
// USM API
$this->getJson("/usm/{$player->player_name}.json")
$this->getJson("/usm/{$player->name}.json")
->assertJson([
'player_name' => $player->player_name,
'player_name' => $player->name,
'model_preference' => ['default'],
'skins' => [
'default' => $steve->hash,
@ -74,9 +74,9 @@ class TextureControllerTest extends TestCase
$player->save();
// CSL API
$this->getJson("/csl/{$player->player_name}.json")
$this->getJson("/csl/{$player->name}.json")
->assertJson([
'username' => $player->player_name,
'username' => $player->name,
'skins' => [
'slim' => $alex->hash,
'default' => $alex->hash,
@ -85,9 +85,9 @@ class TextureControllerTest extends TestCase
]);
// USM API
$this->getJson("/usm/{$player->player_name}.json")
$this->getJson("/usm/{$player->name}.json")
->assertJson([
'player_name' => $player->player_name,
'player_name' => $player->name,
'model_preference' => ['slim'],
'skins' => [
'slim' => $alex->hash,
@ -140,16 +140,16 @@ class TextureControllerTest extends TestCase
$skin = factory(Texture::class)->create();
$player = factory(Player::class)->create();
$this->get("/skin/{$player->player_name}.png")
$this->get("/skin/{$player->name}.png")
->assertSee(trans('general.texture-not-uploaded', ['type' => 'skin']));
$player->tid_skin = $skin->tid;
$player->save();
$this->get("/skin/{$player->player_name}.png")
$this->get("/skin/{$player->name}.png")
->assertSee(trans('general.texture-deleted'));
Storage::disk('textures')->put($skin->hash, '');
$this->get("/skin/{$player->player_name}.png")
$this->get("/skin/{$player->name}.png")
->assertHeader('Content-Type', 'image/png')
->assertHeader('Last-Modified')
->assertHeader('Accept-Ranges', 'bytes')
@ -164,7 +164,7 @@ class TextureControllerTest extends TestCase
'tid_cape' => $cape->tid,
]);
$this->get("/cape/{$player->player_name}.png")
$this->get("/cape/{$player->name}.png")
->assertSee(trans('general.texture-deleted'));
}