Make it still basically functional if new columns missing

This commit is contained in:
printempw 2018-08-08 12:40:14 +08:00
parent 5119a51012
commit 3c840aca46
3 changed files with 17 additions and 8 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Option;
use Schema;
use Datatables;
use App\Events;
use Carbon\Carbon;
@ -250,9 +251,12 @@ class AdminController extends Controller
public function getUserData(Request $request)
{
$query = User::select([
'uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at'
]);
// Make it still basically functional if new columns are not ready
$columns = array_merge([
'uid', 'email', 'nickname', 'score', 'permission', 'register_at'
], Schema::hasColumn('users', 'verified') ? ['verified'] : []);
$query = User::select($columns);
if ($request->has('uid')) {
$query->where('uid', $request->get('uid'));

View File

@ -8,6 +8,7 @@ use View;
use Cache;
use Cookie;
use Option;
use Schema;
use Session;
use App\Events;
use App\Models\User;
@ -296,14 +297,14 @@ class AuthController extends Controller
public function verify(Request $request, UserRepository $users)
{
if (! option('require_verification')) {
if (!option('require_verification') || !Schema::hasColumn('users', 'verified')) {
throw new PrettyPageException(trans('user.verification.disabled'), 1);
}
// Get user instance from repository
$user = $users->get($request->get('uid'));
if (! $user || $user->verified) {
if (!$user || $user->verified) {
throw new PrettyPageException(trans('auth.verify.invalid'), 1);
}

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App;
use Mail;
use View;
use Schema;
use Session;
use App\Models\User;
use App\Models\Texture;
@ -26,8 +27,11 @@ class UserController extends Controller
{
$this->user = $users->get(session('uid'));
// Send email verification link to new users
$this->user->verification_token || $this->sendVerificationEmail();
// Do nothing if new columns are not ready
if (Schema::hasColumn('users', 'verified') && option('require_verification')) {
// Send email verification link to newly registered users
$this->user->verification_token || $this->sendVerificationEmail();
}
}
public function index()
@ -100,7 +104,7 @@ class UserController extends Controller
public function sendVerificationEmail()
{
if (! option('require_verification')) {
if (!option('require_verification') || !Schema::hasColumn('users', 'verified')) {
return json(trans('user.verification.disabled'), 1);
}