diff --git a/app/Http/Controllers/SkinlibController.php b/app/Http/Controllers/SkinlibController.php
index 51787cd4..4ee3eb78 100644
--- a/app/Http/Controllers/SkinlibController.php
+++ b/app/Http/Controllers/SkinlibController.php
@@ -86,12 +86,12 @@ class SkinlibController extends Controller
if ($anonymous) {
// Show public textures only to anonymous visitors
- $query = $query->where('public', 1);
+ $query = $query->where('public', true);
} else {
// Show private textures when show uploaded textures of current user
if ($uploader != $this->user->uid && !$this->user->isAdmin()) {
$query = $query->where(function ($innerQuery) {
- $innerQuery->where('public', '=', '1')->orWhere('uploader', '=', $this->user->uid);
+ $innerQuery->where('public', true)->orWhere('uploader', '=', $this->user->uid);
});
}
}
@@ -132,7 +132,7 @@ class SkinlibController extends Controller
abort(404, trans('skinlib.show.deleted').trans('skinlib.show.contact-admin'));
}
- if ($texture->public == "0") {
+ if (!$texture->public) {
if (is_null($this->user) || ($this->user->uid != $texture->uploader && !$this->user->isAdmin()))
abort(403, trans('skinlib.show.private'));
}
@@ -171,11 +171,11 @@ class SkinlibController extends Controller
$t->likes = 1;
$t->hash = bs_hash_file($request->file('file'));
$t->size = ceil($request->file('file')->getSize() / 1024);
- $t->public = ($request->input('public') == 'true') ? "1" : "0";
+ $t->public = $request->input('public') == 'true';
$t->uploader = $this->user->uid;
$t->upload_at = Utils::getTimeFormatted();
- $cost = $t->size * (($t->public == "1") ? Option::get('score_per_storage') : Option::get('private_score_per_storage'));
+ $cost = $t->size * ($t->public ? Option::get('score_per_storage') : Option::get('private_score_per_storage'));
$cost += option('score_per_closet_item');
if ($this->user->getScore() < $cost)
@@ -187,7 +187,7 @@ class SkinlibController extends Controller
foreach ($results as $result) {
// if the texture already uploaded was set to private,
// then allow to re-upload it.
- if ($result->type == $t->type && $result->public == "1") {
+ if ($result->type == $t->type && $result->public) {
return json(trans('skinlib.upload.repeated'), 0, [
'tid' => $result->tid
]);
@@ -229,7 +229,7 @@ class SkinlibController extends Controller
if (option('return_score')) {
if ($u = $users->get($result->uploader)) {
- if ($result->public == 1) {
+ if ($result->public) {
$u->setScore(
$result->size * option('score_per_storage'), 'plus'
);
@@ -256,7 +256,7 @@ class SkinlibController extends Controller
if ($t->uploader != $this->user->uid && !$this->user->isAdmin())
return json(trans('skinlib.no-permission'), 1);
- $score_diff = $t->size * (option('private_score_per_storage') - option('score_per_storage')) * ($t->public == 1 ? -1 : 1);
+ $score_diff = $t->size * (option('private_score_per_storage') - option('score_per_storage')) * ($t->public ? -1 : 1);
if ($users->get($t->uploader)->getScore() + $score_diff < 0) {
return json(trans('skinlib.upload.lack-score'), 1);
}
@@ -274,7 +274,7 @@ class SkinlibController extends Controller
if ($t->setPrivacy(!$t->public)) {
return json([
'errno' => 0,
- 'msg' => trans('skinlib.privacy.success', ['privacy' => ($t->public == "0" ? trans('general.private') : trans('general.public'))]),
+ 'msg' => trans('skinlib.privacy.success', ['privacy' => (!$t->public ? trans('general.private') : trans('general.public'))]),
'public' => $t->public
]);
}
diff --git a/app/Models/Closet.php b/app/Models/Closet.php
index b94bad7e..87bc2f55 100644
--- a/app/Models/Closet.php
+++ b/app/Models/Closet.php
@@ -63,7 +63,7 @@ class Closet
return true;
}
- if ($t->public == 0 && $t->uploader != $uid && !app('users')->get($uid)->isAdmin()) {
+ if (!$t->public && $t->uploader != $uid && !app('users')->get($uid)->isAdmin()) {
return true;
}
diff --git a/app/Models/Texture.php b/app/Models/Texture.php
index 61ced018..e5334ca9 100644
--- a/app/Models/Texture.php
+++ b/app/Models/Texture.php
@@ -19,12 +19,12 @@ class Texture extends Model
'likes' => 'integer',
'size' => 'integer',
'uploader' => 'integer',
- 'public' => 'integer',
+ 'public' => 'boolean',
];
public function setPrivacy($public)
{
- $this->public = $public ? "1" : "0";
+ $this->public = $public;
return $this->save();
}
diff --git a/database/migrations/2016_11_18_133939_create_all_tables.php b/database/migrations/2016_11_18_133939_create_all_tables.php
index 623d2126..673754d3 100644
--- a/database/migrations/2016_11_18_133939_create_all_tables.php
+++ b/database/migrations/2016_11_18_133939_create_all_tables.php
@@ -49,7 +49,7 @@ class CreateAllTables extends Migration
$table->string('hash', 64);
$table->integer('size');
$table->integer('uploader');
- $table->integer('public');
+ $table->tinyInteger('public');
$table->dateTime('upload_at');
});
diff --git a/resources/assets/src/js/__tests__/skinlib.test.js b/resources/assets/src/js/__tests__/skinlib.test.js
index 7e09eca1..5a55b776 100644
--- a/resources/assets/src/js/__tests__/skinlib.test.js
+++ b/resources/assets/src/js/__tests__/skinlib.test.js
@@ -58,7 +58,7 @@ describe('tests for "index" module', () => {
tid: 1,
name: 'name',
type: 'steve',
- public: 0
+ public: false
}]);
expect($('#skinlib-paginator').css('display')).not.toBe('none');
expect($('.item').attr('tid')).toBe('1');
@@ -75,7 +75,7 @@ describe('tests for "index" module', () => {
tid: 1,
name: 'name',
type: 'steve',
- public: 0,
+ public: false,
liked: true
}]);
expect($('a.more.like').attr('title')).toBe('skinlib.removeFromCloset');
@@ -88,7 +88,7 @@ describe('tests for "index" module', () => {
tid: 1,
name: 'name',
type: 'steve',
- public: 0,
+ public: false,
liked: false
}]);
expect($('a.more.like').attr('title')).toBe('skinlib.addToCloset');
@@ -101,7 +101,7 @@ describe('tests for "index" module', () => {
tid: 1,
name: 'name',
type: 'steve',
- public: 1,
+ public: true,
liked: false
}]);
expect($('small.more').hasClass('hide')).toBe(true);
@@ -560,8 +560,8 @@ describe('tests for "operations" module', () => {
it('change privacy', async () => {
const fetch = jest.fn()
- .mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success', public: '0' }))
- .mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success' }))
+ .mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success', public: false }))
+ .mockReturnValueOnce(Promise.resolve({ errno: 0, msg: 'success', public: true }))
.mockReturnValueOnce(Promise.resolve({ errno: 1, msg: 'warning' }))
.mockReturnValueOnce(Promise.reject());
window.fetch = fetch;
diff --git a/resources/assets/src/js/skinlib/index.js b/resources/assets/src/js/skinlib/index.js
index 9922f727..ec718c94 100644
--- a/resources/assets/src/js/skinlib/index.js
+++ b/resources/assets/src/js/skinlib/index.js
@@ -120,7 +120,7 @@ function renderSkinlibItemComponent(item) {
-
+
${ trans('skinlib.private') }
diff --git a/resources/assets/src/js/skinlib/operations.js b/resources/assets/src/js/skinlib/operations.js
index dc4c962f..e4723fe2 100644
--- a/resources/assets/src/js/skinlib/operations.js
+++ b/resources/assets/src/js/skinlib/operations.js
@@ -179,7 +179,7 @@ async function changePrivacy(tid) {
if (errno === 0) {
toastr.success(msg);
- if (result.public === '0') {
+ if (!result.public) {
$(`a:contains("${trans('skinlib.setAsPrivate')}")`).html(trans('skinlib.setAsPublic'));
} else {
$(`a:contains("${trans('skinlib.setAsPublic')}")`).html(trans('skinlib.setAsPrivate'));
diff --git a/tests/ModelsTest/ClosetTest.php b/tests/ModelsTest/ClosetTest.php
index 7609e56c..843907c0 100644
--- a/tests/ModelsTest/ClosetTest.php
+++ b/tests/ModelsTest/ClosetTest.php
@@ -25,7 +25,7 @@ class ClosetTest extends TestCase
$other = factory(User::class)->create();
$texture = factory(Texture::class)->create([
'uploader' => $other->uid,
- 'public' => 0
+ 'public' => true
]);
$user = factory(User::class)->create();
$closet = new Closet($user->uid);
diff --git a/tests/SkinlibControllerTest.php b/tests/SkinlibControllerTest.php
index 0b1ee51f..00f60d83 100644
--- a/tests/SkinlibControllerTest.php
+++ b/tests/SkinlibControllerTest.php
@@ -37,7 +37,7 @@ class SkinlibControllerTest extends TestCase
'hash' => $texture->hash,
'size' => $texture->size,
'uploader' => $texture->uploader,
- 'public' => $texture->public ? 1 : 0,
+ 'public' => $texture->public,
'upload_at' => $texture->upload_at->format('Y-m-d H:i:s')
];
})
@@ -374,7 +374,7 @@ class SkinlibControllerTest extends TestCase
'hash' => $texture->hash,
'size' => $texture->size,
'uploader' => $texture->uploader,
- 'public' => $texture->public ? 1 : 0,
+ 'public' => $texture->public,
'upload_at' => $texture->upload_at->format('Y-m-d H:i:s')
]);
}
@@ -605,8 +605,8 @@ class SkinlibControllerTest extends TestCase
$this->assertEquals('steve', $t->type);
$this->assertEquals(1, $t->likes);
$this->assertEquals(1, $t->size);
- $this->assertEquals('1', $t->public);
$this->assertEquals($user->uid, $t->uploader);
+ $this->assertTrue($t->public);
// Upload a duplicated texture
$user = factory(User::class)->create();
@@ -744,7 +744,7 @@ class SkinlibControllerTest extends TestCase
->assertJson([
'errno' => 0,
'msg' => trans('skinlib.privacy.success', ['privacy' => trans('general.private')]),
- 'public' => 0
+ 'public' => false
]);
$this->assertEquals(0, Texture::find($texture->tid)->public);
@@ -769,7 +769,7 @@ class SkinlibControllerTest extends TestCase
->assertJson([
'errno' => 0,
'msg' => trans('skinlib.privacy.success', ['privacy' => trans('general.private')]),
- 'public' => 0
+ 'public' => false
]);
$this->assertEquals(0, User::find($uploader->uid)->score);
@@ -783,7 +783,7 @@ class SkinlibControllerTest extends TestCase
->assertJson([
'errno' => 0,
'msg' => trans('skinlib.privacy.success', ['privacy' => trans('general.private')]),
- 'public' => 0
+ 'public' => false
]);
$this->assertEquals(0, Player::find($player->pid)->tid_steve);
}