diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php
index 4a328966..6cb159a4 100644
--- a/app/Controllers/AdminController.php
+++ b/app/Controllers/AdminController.php
@@ -4,8 +4,10 @@ namespace App\Controllers;
use App\Models\User;
use App\Models\UserModel;
+use App\Models\Player;
+use App\Models\PlayerModel;
+use App\Models\Texture;
use App\Exceptions\E;
-use Option;
use Utils;
use View;
@@ -14,10 +16,83 @@ class AdminController extends BaseController
public function index()
{
- echo View::make('admin.index')->render();
+ View::show('admin.index');
}
- public function ajaxHandler()
+ public function customize()
+ {
+ View::show('admin.customize');
+ }
+
+ public function options()
+ {
+ View::show('admin.options');
+ }
+
+ public function users()
+ {
+ $page = isset($_GET['page']) ? $_GET['page'] : 1;
+
+ $filter = isset($_GET['filter']) ? $_GET['filter'] : "";
+
+ $q = isset($_GET['q']) ? $_GET['q'] : "";
+
+ if ($filter == "") {
+ $users = UserModel::orderBy('uid');
+ $total_pages = ceil($users->count() / 30);
+ $users = $users->skip(($page - 1) * 30)->take(30)->get();
+ } else if ($filter == "email") {
+ $users = UserModel::like('email', $q)->orderBy('uid');
+ $total_pages = ceil($users->count() / 30);
+ $users = $users->skip(($page - 1) * 30)->take(30)->get();
+ } else if ($filter == "nickname") {
+ $users = UserModel::like('nickname', $q)->orderBy('uid');
+ $total_pages = ceil($users->count() / 30);
+ $users = $users->skip(($page - 1) * 30)->take(30)->get();
+ }
+
+ echo View::make('admin.users')->with('users', $users)
+ ->with('filter', $filter)
+ ->with('q', $q)
+ ->with('page', $page)
+ ->with('total_pages', $total_pages)
+ ->render();
+ }
+
+ public function players()
+ {
+ $page = isset($_GET['page']) ? $_GET['page'] : 1;
+
+ $filter = isset($_GET['filter']) ? $_GET['filter'] : "";
+
+ $q = isset($_GET['q']) ? $_GET['q'] : "";
+
+ if ($filter == "") {
+ $players = PlayerModel::orderBy('uid');
+ $total_pages = ceil($players->count() / 30);
+ $players = $players->skip(($page - 1) * 30)->take(30)->get();
+ } else if ($filter == "player_name") {
+ $players = PlayerModel::like('player_name', $q)->orderBy('uid');
+ $total_pages = ceil($players->count() / 30);
+ $players = $players->skip(($page - 1) * 30)->take(30)->get();
+ } else if ($filter == "uid") {
+ $players = PlayerModel::where('uid', $q)->orderBy('uid');
+ $total_pages = ceil($players->count() / 30);
+ $players = $players->skip(($page - 1) * 30)->take(30)->get();
+ }
+
+ echo View::make('admin.players')->with('players', $players)
+ ->with('filter', $filter)
+ ->with('q', $q)
+ ->with('page', $page)
+ ->with('total_pages', $total_pages)
+ ->render();
+ }
+
+ /**
+ * Handle ajax request from /admin/users
+ */
+ public function userAjaxHandler()
{
$action = isset($_GET['action']) ? $_GET['action'] : "";
@@ -25,7 +100,7 @@ class AdminController extends BaseController
Utils::checkPost(['color_scheme']);
$color_scheme = str_replace('_', '-', $_POST['color_scheme']);
- Option::set('color_scheme', $color_scheme);
+ \Option::set('color_scheme', $color_scheme);
View::json('修改配色成功', 0);
}
@@ -44,6 +119,7 @@ class AdminController extends BaseController
if ($user->setEmail($_POST['email']))
View::json('邮箱修改成功', 0);
+
} if ($action == "nickname") {
Utils::checkPost(['nickname']);
@@ -52,6 +128,7 @@ class AdminController extends BaseController
if ($user->setNickName($_POST['nickname']))
View::json('昵称已成功设置为 '.$_POST['nickname'], 0);
+
} else if ($action == "password") {
Utils::checkPost(['password']);
@@ -59,67 +136,77 @@ class AdminController extends BaseController
if ($user->changePasswd($_POST['password']))
View::json('密码修改成功', 0);
}
+
} else if ($action == "score") {
Utils::checkPost(['score']);
if ($user->setScore($_POST['score']))
View::json('积分修改成功', 0);
+
+ } else if ($action == "permission") {
+ $permission = $user->getPermission() == "0"
+ ? "-1" : "0";
+
+ if ($user->setPermission($permission))
+ View::json('账号已被'.($permission == "-1"?"封禁":"解封"), 0);
+
} else if ($action == "delete") {
if ($user->delete())
View::json('账号已被成功删除', 0);
+
} else {
throw new E('Illegal parameters', 1);
}
}
- public function customize()
+ /**
+ * Handle ajax request from /admin/players
+ */
+ public function playerAjaxHandler()
{
- echo View::make('admin.customize')->render();
- }
+ $action = isset($_GET['action']) ? $_GET['action'] : "";
- public function options()
- {
- echo View::make('admin.options')->render();
- }
+ // exception will be throw by model if player is not existent
+ $player = new Player(Utils::getValue('pid', $_POST));
- public function users()
- {/*
- for ($i=0; $i < 60; $i++) {
- $user = new UserModel();
- $user->email = Utils::generateRndString(6)."@".Utils::generateRndString(3).".com";
- $user->nickname = Utils::generateRndString(5);
- $user->score = 666;
- $user->ip = '111.111.111.111';
- $user->permission = "0";
- $user->register_at = Utils::getTimeFormatted();
- $user->save();
+ if ($action == "preference") {
+ Utils::checkPost(['preference']);
- echo "Seed: ".$user->email." added.
";
- }
- exit;*/
+ if ($_POST['preference'] != "default" && $_POST['preference'] != "slim")
+ View::json('无效的参数', 0);
- $page = isset($_GET['page']) ? $_GET['page'] : 1;
- $filter = isset($_GET['filter']) ? $_GET['filter'] : "";
+ if ($player->setPreference($_POST['preference']))
+ View::json('角色 '.$player->player_name.' 的优先模型已更改至 '.$_POST['preference'], 0);
+
+ } elseif ($action == "texture") {
+ Utils::checkPost(['model', 'tid']);
+
+ if ($_POST['model'] != "steve" && $_POST['model'] != "alex" && $_POST['model'] != "cape")
+ View::json('无效的参数', 0);
+
+ if (!(is_numeric($_POST['tid']) && Texture::find($_POST['tid'])))
+ View::json('材质 tid.'.$_POST['tid'].' 不存在', 1);
+
+ if ($player->setTexture(['tid_'.$_POST['model'] => $_POST['tid']]))
+ View::json('角色 '.$player->player_name.' 的材质修改成功', 0);
+
+ } elseif ($action == "owner") {
+ Utils::checkPost(['uid']);
+
+ if (!is_numeric($_POST['uid']))
+ View::json('无效的参数', 0);
+
+ $user = new User('', $_POST['uid']);
+
+ if (!$user->is_registered)
+ View::json('不存在的用户', 1);
+
+ if ($player->setOwner($_POST['uid']))
+ View::json('角色 '.$player->player_name.' 已成功让渡至 '.$user->getNickName(), 0);
- if ($filter == "") {
- $users = UserModel::orderBy('uid');
- $total_pages = ceil($users->count() / 30);
- $users = $users->skip(($page - 1) * 30)->take(30)->get();
} else {
- $users = UserModel::like('nickname', $filter)->orderBy('uid');
- $total_pages = ceil($users->count() / 30);
- $users = $users->skip(($page - 1) * 30)->take(30)->get();
+ throw new E('Illegal parameters', 1);
}
-
- echo View::make('admin.users')->with('users', $users)
- ->with('page', $page)
- ->with('total_pages', $total_pages)
- ->render();
- }
-
- public function players()
- {
- echo View::make('admin.players')->render();
}
}
diff --git a/app/Controllers/PlayerController.php b/app/Controllers/PlayerController.php
index 3579d1de..d54a8add 100644
--- a/app/Controllers/PlayerController.php
+++ b/app/Controllers/PlayerController.php
@@ -50,10 +50,11 @@ class PlayerController extends BaseController
if ($user->getScore() < 100)
View::json('积分不够添加角色啦', 7);
- $player = new PlayerModel();
- $player->uid = $user->uid;
- $player->player_name = $player_name;
- $player->preference = "default";
+ $player = new PlayerModel();
+ $player->uid = $user->uid;
+ $player->player_name = $player_name;
+ $player->preference = "default";
+ $player->last_modified = Utils::getTimeFormatted();
$player->save();
$user->setScore(100, 'minus');
@@ -117,6 +118,7 @@ class PlayerController extends BaseController
$field_name = "tid_".$texture->type;
$this->player->eloquent_model->$field_name = $tid;
+ $this->player->eloquent_model->last_modified = Utils::getTimeFormatted();
$this->player->eloquent_model->save();
View::json('材质已成功应用至角色 '.$this->player->eloquent_model->player_name.'', 0);
@@ -131,6 +133,8 @@ class PlayerController extends BaseController
$this->player->eloquent_model->tid_alex = "";
$this->player->eloquent_model->tid_cape = "";
+ $this->player->eloquent_model->last_modified = Utils::getTimeFormatted();
+
$this->player->eloquent_model->save();
View::json('角色 '.$this->player->eloquent_model->player_name.' 的材质已被成功重置', 0);
diff --git a/app/Models/Player.php b/app/Models/Player.php
index 04df2f19..362ca570 100644
--- a/app/Models/Player.php
+++ b/app/Models/Player.php
@@ -100,6 +100,10 @@ class Player
return $this->eloquent_model['preference'];
}
+ public function setOwner($uid) {
+ return $this->eloquent_model->update(['uid' => $uid]);
+ }
+
/**
* Get JSON profile
* @param int $api_type, which API to use, 0 for CustomSkinAPI, 1 for UniSkinAPI
@@ -146,9 +150,14 @@ class Player
class PlayerModel extends \Illuminate\Database\Eloquent\Model
{
- public $primaryKey = 'pid';
- protected $table = 'players';
- public $timestamps = false;
+ public $primaryKey = 'pid';
+ protected $table = 'players';
+ public $timestamps = false;
protected $fillable = ['preference', 'last_modified'];
+
+ public function scopeLike($query, $field, $value)
+ {
+ return $query->where($field, 'LIKE', "%$value%");
+ }
}
diff --git a/app/Models/User.php b/app/Models/User.php
index e31e3f55..eb17c449 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -69,6 +69,23 @@ class User
return $this->eloquent_model->save();
}
+ public function getPermission()
+ {
+ return $this->eloquent_model->permission;
+ }
+
+ /**
+ * Set user permission
+ * @param int $permission
+ * -1 - banned
+ * 0 - normal
+ * 1 - admin
+ */
+ public function setPermission($permission)
+ {
+ return $this->eloquent_model->update(['permission' => $permission]);
+ }
+
public function setEmail($new_email)
{
$this->eloquent_model->email = $new_email;
@@ -233,6 +250,8 @@ class UserModel extends \Illuminate\Database\Eloquent\Model
protected $table = 'users';
public $timestamps = false;
+ protected $fillable = ['email', 'nickname', 'permission'];
+
public function scopeLike($query, $field, $value)
{
return $query->where($field, 'LIKE', "%$value%");
diff --git a/assets/src/js/admin.js b/assets/src/js/admin.js
index 5077d2d9..1c193e2d 100644
--- a/assets/src/js/admin.js
+++ b/assets/src/js/admin.js
@@ -2,7 +2,7 @@
* @Author: printempw
* @Date: 2016-07-22 14:02:44
* @Last Modified by: printempw
-* @Last Modified time: 2016-07-22 19:27:20
+* @Last Modified time: 2016-07-23 15:17:22
*/
'use strict';
@@ -21,10 +21,9 @@ $('#layout-skins-list [data-skin]').click(function(e) {
});
$('#color-submit').click(function() {
-
$.ajax({
type: "POST",
- url: "../admin?action=color",
+ url: "../admin/users?action=color",
dataType: "json",
data: { "color_scheme": current_skin },
success: function(json) {
@@ -40,7 +39,16 @@ $('#color-submit').click(function() {
});
$('#page-select').on('change', function() {
- window.location = "?page=" + $(this).val();
+ // if has query strings
+ if (getQueryString('filter') != "" || getQueryString('q') != "") {
+ if (getQueryString('page') == "")
+ window.location = location.href + "&page=" + $(this).val();
+ else
+ window.location = "?filter="+getQueryString('filter')+"&q="+getQueryString('q')+"&page="+$(this).val();
+ } else {
+ window.location = "?page=" + $(this).val();
+ }
+
});
function changeUserEmail(uid) {
@@ -50,7 +58,7 @@ function changeUserEmail(uid) {
$.ajax({
type: "POST",
- url: "../admin?action=email",
+ url: "../admin/users?action=email",
dataType: "json",
data: { 'uid': uid, 'email': email },
success: function(json) {
@@ -74,7 +82,7 @@ function changeUserNickName(uid) {
$.ajax({
type: "POST",
- url: "../admin?action=nickname",
+ url: "../admin/users?action=nickname",
dataType: "json",
data: { 'uid': uid, 'nickname': nickname },
success: function(json) {
@@ -98,7 +106,7 @@ function changeUserPwd(uid) {
$.ajax({
type: "POST",
- url: "../admin?action=password",
+ url: "../admin/users?action=password",
dataType: "json",
data: { 'uid': uid, 'password': password },
success: function(json) {
@@ -116,7 +124,7 @@ function changeUserPwd(uid) {
function changeUserScore(uid, score) {
$.ajax({
type: "POST",
- url: "../admin?action=score",
+ url: "../admin/users?action=score",
dataType: "json",
data: { 'uid': uid, 'score': score },
success: function(json) {
@@ -133,12 +141,36 @@ function changeUserScore(uid, score) {
});
}
+function changePermission(uid) {
+ $.ajax({
+ type: "POST",
+ url: "../admin/users?action=permission",
+ dataType: "json",
+ data: { 'uid': uid },
+ success: function(json) {
+ if (json.errno == 0) {
+ var object = $($('#'+uid).find('ul').children()[6]);
+ var dom = '' +
+ (object.text() == '封禁' ? '解封' : '封禁') + '';
+ object.html(dom);
+ $('#'+uid).find('#permission').text(object.text() == '封禁' ? '正常' : '封禁');
+ toastr.success(json.msg);
+ } else {
+ toastr.warning(json.msg);
+ }
+ },
+ error: function(json) {
+ showModal(json.responseText.replace(/\n/g, '
'), 'Fatal Error(请联系作者)', 'danger');
+ }
+ });
+}
+
function deleteUserAccount(uid) {
if (!window.confirm('真的要删除此用户吗?此操作不可恢复')) return;
$.ajax({
type: "POST",
- url: "../admin?action=delete",
+ url: "../admin/users?action=delete",
dataType: "json",
data: { 'uid': uid },
success: function(json) {
@@ -160,4 +192,96 @@ $('.score').on('keypress', function(event){
changeUserScore($(this).parent().parent().attr('id'), $(this).val());
}).click(function() {
$(this).tooltip('show');
-})
+});
+
+$('body').on('change', '#preference', function() {
+ $.ajax({
+ type: "POST",
+ url: "../admin/players?action=preference",
+ dataType: "json",
+ data: { 'pid': $(this).parent().parent().attr('id'), 'preference': $(this).val() },
+ success: function(json) {
+ if (json.errno == 0) {
+ toastr.success(json.msg);
+ } else {
+ toastr.warning(json.msg);
+ }
+ },
+ error: function(json) {
+ showModal(json.responseText.replace(/\n/g, '
'), 'Fatal Error(请联系作者)', 'danger');
+ }
+ });
+});
+
+function changeTexture(pid) {
+ var dom = '
'+
+ ''+
+ ''+
+ '
'+
+ ''+
+ ''+
+ ''+
+ '
';
+
+ var player_name = $('#'+pid).find('#player-name').text();
+ showModal(dom, '更换角色 '+player_name+' 的材质', 'default', 'ajaxChangeTexture('+pid+')');
+ return;
+}
+
+function ajaxChangeTexture(pid) {
+ // remove interference of modal which is hide
+ $('.modal').each(function() {
+ if ($(this).css('display') == "none")
+ $(this).remove();
+ });
+
+ var model = $('#model').val();
+ var tid = $('#tid').val();
+
+ $.ajax({
+ type: "POST",
+ url: "../admin/players?action=texture",
+ dataType: "json",
+ data: { 'pid': pid, 'model': model, 'tid': tid },
+ success: function(json) {
+ if (json.errno == 0) {
+ $('#'+pid+'-'+model).attr('src', '../preview/64/'+tid+'.png');
+ $('.modal').modal('hide');
+ toastr.success(json.msg);
+ } else {
+ toastr.warning(json.msg);
+ }
+ },
+ error: function(json) {
+ showModal(json.responseText.replace(/\n/g, '
'), 'Fatal Error(请联系作者)', 'danger');
+ }
+ });
+}
+
+function changeOwner(pid) {
+ var uid = prompt("请输入此角色要让渡至的用户 UID:");
+
+ if (!uid) return;
+
+ $.ajax({
+ type: "POST",
+ url: "../admin/players?action=owner",
+ dataType: "json",
+ data: { 'pid': pid, 'uid': uid },
+ success: function(json) {
+ if (json.errno == 0) {
+ $($('#'+pid).children()[1]).text(uid);
+ toastr.success(json.msg);
+ } else {
+ toastr.warning(json.msg);
+ }
+ },
+ error: function(json) {
+ showModal(json.responseText.replace(/\n/g, '
'), 'Fatal Error(请联系作者)', 'danger');
+ }
+ });
+}
diff --git a/assets/src/js/utils.js b/assets/src/js/utils.js
index f5fb10e7..a5531bbb 100644
--- a/assets/src/js/utils.js
+++ b/assets/src/js/utils.js
@@ -23,6 +23,16 @@ function isMobile() {
return false;
}
+function getQueryString(key) {
+ result = location.search.match(new RegExp('[\?\&]'+key+'=([^\&]+)','i'));
+
+ if (result == null || result.length < 1){
+ return "";
+ } else {
+ return result[1];
+ }
+}
+
function logout(with_out_confirm, callback) {
if (!with_out_confirm) {
if (!window.confirm('确定要登出吗?')) return;
diff --git a/assets/src/sass/admin.scss b/assets/src/sass/admin.scss
index 9316f049..b96ea174 100644
--- a/assets/src/sass/admin.scss
+++ b/assets/src/sass/admin.scss
@@ -2,14 +2,16 @@
* @Author: printempw
* @Date: 2016-07-22 14:08:41
* @Last Modified by: printempw
-* @Last Modified time: 2016-07-22 19:33:23
+* @Last Modified time: 2016-07-23 12:35:32
*/
@import "style.scss";
-.info-box > a {
- color: #333;
- font-size: 18px;
+.info-box {
+ a {
+ color: #333;
+ font-size: 18px;
+ }
}
.key {
@@ -29,23 +31,42 @@ td[class='key'], td[class='value'] {
}
}
-#page-select {
- padding-left: 0;
- margin: 0 20px 0 0;
- border-radius: 4px;
- padding: 5.5px 14px;
-}
-
input.score {
width: 80px;
}
.user-search-form {
display: inline;
+
+ .user-search-input {
+ display: inline;
+ width: 30%;
+ float: right;
+ margin: 0;
+ }
+
+ select.user-search-input {
+ padding-left: 0;
+ margin: 0 20px 0 0;
+ padding: 5.5px 14px;
+ width: 120px;
+ }
}
-.user-search-input {
- display: inline;
- width: 30%;
- float: right;
- margin: 0;
+
+td {
+ a {
+ color: inherit;
+
+ img {
+ margin-left: 10px;
+ }
+ }
+
+ a:first-child > img {
+ margin-left: 0;
+ }
+
+ a:last-child > img {
+ margin-left: 0;
+ }
}
diff --git a/assets/src/sass/style.scss b/assets/src/sass/style.scss
index e2dd53ba..5da4a289 100644
--- a/assets/src/sass/style.scss
+++ b/assets/src/sass/style.scss
@@ -1,5 +1,8 @@
/*
* @Author: printempw
+* @Date: 2016-06-04 20:55:09
+* @Last Modified by: printempw
+* @Last Modified time: 2016-07-23 10:47:50
*/
@font-face {
@@ -26,6 +29,13 @@ input:-webkit-autofill {
-webkit-box-shadow: 0 0 0px 1000px #fff inset !important;
}
+#page-select {
+ padding-left: 0;
+ margin: 0 20px 0 0;
+ border-radius: 4px;
+ padding: 5.5px 14px;
+}
+
.item {
display: block;
background: #EFF1F0;
@@ -75,29 +85,54 @@ input:-webkit-autofill {
padding: 3px 8px;
}
-.item-footer > .more {
+.item-footer {
+ .more {
+ float: right;
+ margin-left: 6px;
+ margin-right: 3px;
+ color: #fff;
+ }
+
+ .more:hover {
+ color: #dadada;
+ }
+
+ small {
+ font-size: 50%;
+ }
+}
+
+.operations {
+ display: inline; float: right;
+
+ i {
+ padding: .5em .5em;
+ display: inline !important;
+ }
+
+ i:hover {
+ color: #555;
+ cursor: pointer;
+ }
+}
+
+.skin2d {
float: right;
- margin-left: 6px;
- margin-right: 3px;
- color: #fff;
+ max-height: 64px;
+ width: 64px;
+ font-size: 16px;
}
-.item-footer > .more:hover {
- color: #dadada;
+#canvas3d {
+ margin: 0 auto;
+ display: block;
}
-.item-footer > small {
- font-size: 50%;
+#preview-2d > p {
+ height: 64px;
+ line-height: 64px;
}
-.operations { display: inline; float: right; }
-.operations > i { padding: .5em .5em; display: inline !important; }
-.operations > i:hover { color: #555; cursor: pointer; }
-.skin2d { float: right; max-height: 64px; width: 64px; font-size: 16px; }
-
-#canvas3d { margin: 0 auto; display: block; }
-#preview-2d > p { height: 64px; line-height: 64px; }
-
#toast-container > div {
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
diff --git a/config/routes.php b/config/routes.php
index 7401166e..0854b176 100644
--- a/config/routes.php
+++ b/config/routes.php
@@ -97,14 +97,15 @@ Route::group(['prefix' => 'skinlib'], function()
Route::group(['middleware' => 'App\Middlewares\CheckAdminMiddleware', 'prefix' => 'admin'], function()
{
Route::get('/', 'AdminController@index');
- Route::post('/', 'AdminController@ajaxHandler');
- Route::all('/customize', 'AdminController@customize');
+ Route::all('/customize', 'AdminController@customize');
+ Route::all('/options', 'AdminController@options');
- Route::all('/options', 'AdminController@options');
-
- Route::get('/users', 'AdminController@users');
- Route::get('/players', 'AdminController@players');
+ Route::get('/users', 'AdminController@users');
+ Route::get('/players', 'AdminController@players');
+ // ajax handlers
+ Route::post('/users', 'AdminController@userAjaxHandler');
+ Route::post('/players', 'AdminController@playerAjaxHandler');
});
/**
diff --git a/resources/views/admin/master.tpl b/resources/views/admin/master.tpl
index 96e68ae5..be0b6685 100644
--- a/resources/views/admin/master.tpl
+++ b/resources/views/admin/master.tpl
@@ -101,9 +101,6 @@
@endforeach
-
- 材质管理
-
@if ($user->is_admin)
用户中心
diff --git a/resources/views/admin/players.tpl b/resources/views/admin/players.tpl
new file mode 100644
index 00000000..906e9b93
--- /dev/null
+++ b/resources/views/admin/players.tpl
@@ -0,0 +1,166 @@
+@extends('admin.master')
+
+@section('title', '角色管理')
+
+@section('content')
+
+
+
+
+
+
+@endsection
diff --git a/resources/views/admin/users.tpl b/resources/views/admin/users.tpl
index c02ede1e..db734292 100644
--- a/resources/views/admin/users.tpl
+++ b/resources/views/admin/users.tpl
@@ -9,15 +9,20 @@
@@ -32,6 +37,7 @@
邮箱 |
昵称 |
积分 |
+ 状态 |
注册时间 |
操作 |
@@ -44,6 +50,7 @@
{{ $user->email }} |
{{ $user->nickname }} |
|
+ {{ $user->permission == "-1" ? "封禁" : "正常" }} |
{{ $user->register_at }} |
@@ -55,46 +62,59 @@
修改邮箱
修改昵称
更改密码
+
+ 查看该用户拥有的角色
+
+
+ @if ($user->permission == "1")
+ 无法封禁管理员
+ @elseif ($user->permission == "0")
+ 封禁
+ @else
+ 解封
+ @endif
- permission == "1")
- disabled="disabled" data-toggle="tooltip" data-placement="bottom" title="少年,不要作死哦"
- @else
- href="javascript:deleteUserAccount('{{ $user->uid }}');"
- @endif>
- 删除用户
-
+
+ @if ($user->permission == "1")
+ 删除用户
+ @else
+ 删除用户
+ @endif
|
@empty
| 0 |
无结果 |
+ (´・ω・`) |
@endforelse