parent
9aaaa20d52
commit
98522a5cce
|
|
@ -233,6 +233,7 @@ class AuthController extends Controller
|
|||
{
|
||||
$builder->build(100, 34);
|
||||
session(['captcha' => $builder->getPhrase()]);
|
||||
|
||||
return response($builder->output(), 200, [
|
||||
'Content-Type' => 'image/jpeg',
|
||||
'Cache-Control' => 'no-store',
|
||||
|
|
|
|||
|
|
@ -39,15 +39,18 @@ class PluginController extends Controller
|
|||
if (! $detail['version']) {
|
||||
$plugin = $plugins->get($name);
|
||||
$name = $plugin ? trans($plugin->title) : $name;
|
||||
|
||||
return trans('admin.plugins.operations.unsatisfied.disabled', compact('name'));
|
||||
} else {
|
||||
$title = trans($plugins->get($name)->title);
|
||||
|
||||
return trans('admin.plugins.operations.unsatisfied.version', compact('title', 'constraint'));
|
||||
}
|
||||
})->values()->all();
|
||||
|
||||
$conflicts = $result['conflicts']->map(function ($detail, $name) use ($plugins) {
|
||||
$title = trans($plugins->get($name)->title);
|
||||
|
||||
return trans('admin.plugins.operations.unsatisfied.conflict', compact('title'));
|
||||
})->values()->all();
|
||||
|
||||
|
|
|
|||
|
|
@ -165,6 +165,7 @@ class SetupController extends Controller
|
|||
collect($filesystem->files(database_path('update_scripts')))
|
||||
->filter(function (SplFileInfo $file) {
|
||||
$name = $file->getFilenameWithoutExtension();
|
||||
|
||||
return preg_match('/^\d+\.\d+\.\d+$/', $name) > 0
|
||||
&& Comparator::greaterThanOrEqualTo($name, option('version'));
|
||||
})
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class UserController extends Controller
|
|||
'score-to' => $to,
|
||||
'return-score' => option('return_score')
|
||||
? trans('user.score-intro.will-return-score')
|
||||
: trans('user.score-intro.no-return-score')
|
||||
: trans('user.score-intro.no-return-score'),
|
||||
]));
|
||||
|
||||
return view('user.index')->with([
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
use App\Http\Controllers\SetupController;
|
||||
|
||||
class CheckInstallation
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,12 +2,10 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Laravel\Passport\HasApiTokens;
|
||||
use App\Models\Concerns\HasPassword;
|
||||
use Tymon\JWTAuth\Contracts\JWTSubject;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
|
||||
class User extends Authenticatable implements JWTSubject
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class Captcha implements Rule
|
|||
}
|
||||
|
||||
$builder = new CaptchaBuilder(session()->pull('captcha'));
|
||||
|
||||
return $builder->testPhrase($value);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ class Option
|
|||
$cachePath = storage_path('options/cache.php');
|
||||
if ($filesystem->exists($cachePath)) {
|
||||
$this->items = collect($filesystem->getRequire($cachePath));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ class Yaml implements TranslationLoader
|
|||
public function loadYaml(string $path): array
|
||||
{
|
||||
$key = 'yaml-trans-'.md5($path).'-'.filemtime($path);
|
||||
|
||||
return $this->cache->rememberForever($key, function () use ($path) {
|
||||
return YamlParser::parseFile($path);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ Route::group(['middleware' => ['authorize', 'admin'], 'prefix' => 'admin'], func
|
|||
});
|
||||
});
|
||||
|
||||
/**
|
||||
/*
|
||||
* Setup and Update
|
||||
*/
|
||||
Route::group(['prefix' => 'setup'], function () {
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class AdminControllerTest extends TestCase
|
|||
$this->mock(\App\Services\PluginManager::class, function ($mock) {
|
||||
$mock->shouldReceive('getEnabledPlugins')
|
||||
->andReturn(collect([
|
||||
'a' => new Plugin('', ['title' => 'MyPlugin', 'version' => '0.0.0'])
|
||||
'a' => new Plugin('', ['title' => 'MyPlugin', 'version' => '0.0.0']),
|
||||
]));
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use DB;
|
||||
use Artisan;
|
||||
use Laravel\BrowserKitTesting\TestCase;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use Schema;
|
||||
use App\Models\User;
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ use App\Models\User;
|
|||
use App\Models\Player;
|
||||
use App\Services\Facades\Option;
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class MiddlewareTest extends TestCase
|
||||
|
|
|
|||
|
|
@ -2,11 +2,8 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use Schema;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\User;
|
||||
use App\Models\Player;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class UserTest extends TestCase
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ class PlayerControllerTest extends TestCase
|
|||
$pid = $player->pid;
|
||||
$filter->add('user_can_rename_player', function ($can, $player, $newName) {
|
||||
$this->assertEquals('new', $newName);
|
||||
|
||||
return new Rejection('rejected');
|
||||
});
|
||||
$name = factory(Player::class)->create()->name;
|
||||
|
|
@ -219,12 +220,14 @@ class PlayerControllerTest extends TestCase
|
|||
[$player, $newName] = $payload;
|
||||
$this->assertEquals($pid, $player->pid);
|
||||
$this->assertEquals('new_name', $newName);
|
||||
|
||||
return true;
|
||||
});
|
||||
Event::assertDispatched('player.renamed', function ($event, $payload) use ($pid) {
|
||||
[$player, $oldName] = $payload;
|
||||
$this->assertEquals($pid, $player->pid);
|
||||
$this->assertNotEquals('new_name', $oldName);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ class PluginControllerTest extends TestCase
|
|||
->with('whatever')
|
||||
->once()
|
||||
->andReturn(null);
|
||||
$mock->shouldReceive('get')
|
||||
$mock->shouldReceive('get')
|
||||
->with('conf')
|
||||
->once()
|
||||
->andReturn(new Plugin('', ['title' => 'conf']));
|
||||
|
|
|
|||
|
|
@ -9,8 +9,10 @@ class FilterTest extends TestCase
|
|||
public function testAdd()
|
||||
{
|
||||
$filter = new Filter();
|
||||
$filter->add('hook', function () {});
|
||||
$filter->add('hook', function () {}, 10);
|
||||
$filter->add('hook', function () {
|
||||
});
|
||||
$filter->add('hook', function () {
|
||||
}, 10);
|
||||
$this->assertCount(2, $filter->getListeners('hook'));
|
||||
}
|
||||
|
||||
|
|
@ -21,6 +23,7 @@ class FilterTest extends TestCase
|
|||
|
||||
$filter->add('hook', function ($value, $addition) {
|
||||
$this->assertEquals('add', $addition);
|
||||
|
||||
return $value.'_medium';
|
||||
});
|
||||
$filter->add('hook', function ($value) {
|
||||
|
|
@ -38,7 +41,8 @@ class FilterTest extends TestCase
|
|||
$filter->remove('hook');
|
||||
$this->assertCount(0, $filter->getListeners('hook'));
|
||||
|
||||
$filter->add('hook', function () {});
|
||||
$filter->add('hook', function () {
|
||||
});
|
||||
$this->assertCount(1, $filter->getListeners('hook'));
|
||||
$filter->remove('hook');
|
||||
$this->assertCount(0, $filter->getListeners('hook'));
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use App\Services\OptionForm;
|
||||
use Symfony\Component\DomCrawler\Crawler;
|
||||
|
||||
|
|
|
|||
|
|
@ -368,6 +368,7 @@ class PluginManagerTest extends TestCase
|
|||
resolve(PluginManager::class)->boot();
|
||||
Event::assertDispatched(Events\PluginBootFailed::class, function ($event) {
|
||||
$this->assertEquals('mayaka', $event->plugin->name);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
namespace Tests;
|
||||
|
||||
use DB;
|
||||
use Artisan;
|
||||
|
||||
class TestCase extends \Illuminate\Foundation\Testing\TestCase
|
||||
|
|
|
|||
|
|
@ -233,6 +233,7 @@ class UserControllerTest extends TestCase
|
|||
$filter->add('user_can_edit_profile', function ($can, $action, $addition) {
|
||||
$this->assertEquals('nope', $action);
|
||||
$this->assertEquals([], $addition);
|
||||
|
||||
return new Rejection('rejected');
|
||||
});
|
||||
$this->actingAs($user)
|
||||
|
|
@ -252,6 +253,7 @@ class UserControllerTest extends TestCase
|
|||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals('', $action);
|
||||
$this->assertEquals([], $addition);
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
|
|
@ -292,6 +294,7 @@ class UserControllerTest extends TestCase
|
|||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals('nickname', $action);
|
||||
$this->assertEquals(['new_nickname' => 'nickname'], $addition);
|
||||
|
||||
return true;
|
||||
});
|
||||
Event::assertDispatched(Events\UserProfileUpdated::class);
|
||||
|
|
@ -356,6 +359,7 @@ class UserControllerTest extends TestCase
|
|||
'current_password' => '12345678',
|
||||
'new_password' => '87654321',
|
||||
], $addition);
|
||||
|
||||
return true;
|
||||
});
|
||||
Event::assertDispatched(Events\EncryptUserPassword::class);
|
||||
|
|
@ -430,6 +434,7 @@ class UserControllerTest extends TestCase
|
|||
'new_email' => 'a@b.c',
|
||||
'password' => '87654321',
|
||||
], $addition);
|
||||
|
||||
return true;
|
||||
});
|
||||
$this->assertEquals('a@b.c', User::find($user->uid)->email);
|
||||
|
|
@ -480,10 +485,12 @@ class UserControllerTest extends TestCase
|
|||
]);
|
||||
Event::assertDispatched('user.deleting', function ($eventName, $payload) use ($uid) {
|
||||
$this->assertEquals($uid, $payload[0]->uid);
|
||||
|
||||
return true;
|
||||
});
|
||||
Event::assertDispatched('user.deleted', function ($eventName, $payload) use ($uid) {
|
||||
$this->assertEquals($uid, $payload[0]->uid);
|
||||
|
||||
return true;
|
||||
});
|
||||
$this->assertNull(User::find($user->uid));
|
||||
|
|
@ -547,6 +554,7 @@ class UserControllerTest extends TestCase
|
|||
[$user, $tid] = $payload;
|
||||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals($steve->tid, $tid);
|
||||
|
||||
return true;
|
||||
}
|
||||
);
|
||||
|
|
@ -556,6 +564,7 @@ class UserControllerTest extends TestCase
|
|||
[$user, $tid] = $payload;
|
||||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals($steve->tid, $tid);
|
||||
|
||||
return true;
|
||||
}
|
||||
);
|
||||
|
|
@ -571,6 +580,7 @@ class UserControllerTest extends TestCase
|
|||
[$user, $tid] = $payload;
|
||||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals(0, $tid);
|
||||
|
||||
return true;
|
||||
}
|
||||
);
|
||||
|
|
@ -580,6 +590,7 @@ class UserControllerTest extends TestCase
|
|||
$filter->add('user_can_update_avatar', function ($can, $user, $tid) use ($uid, $steve) {
|
||||
$this->assertEquals($uid, $user->uid);
|
||||
$this->assertEquals($steve->tid, $tid);
|
||||
|
||||
return new Rejection('rejected');
|
||||
});
|
||||
$this->actingAs($user)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user