feat: ✨ Add readable name for permissions
This commit is contained in:
parent
f9a102509b
commit
8fdac0ee46
|
@ -38,7 +38,7 @@ class UserController extends Controller
|
||||||
const CHANGE_USERNAME_PERMISSION = "admin.users.write.username";
|
const CHANGE_USERNAME_PERMISSION = "admin.users.write.username";
|
||||||
const CHANGE_PASSWORD_PERMISSION = "admin.users.write.password";
|
const CHANGE_PASSWORD_PERMISSION = "admin.users.write.password";
|
||||||
const CHANGE_ROLE_PERMISSION ="admin.users.write.role";
|
const CHANGE_ROLE_PERMISSION ="admin.users.write.role";
|
||||||
const CHANGE_REFERAL_PERMISSION ="admin.users.write.referal";
|
const CHANGE_REFERAL_PERMISSION ="admin.users.write.referral";
|
||||||
const CHANGE_PTERO_PERMISSION = "admin.users.write.pterodactyl";
|
const CHANGE_PTERO_PERMISSION = "admin.users.write.pterodactyl";
|
||||||
const DELETE_PERMISSION = "admin.users.delete";
|
const DELETE_PERMISSION = "admin.users.delete";
|
||||||
const NOTIFY_PERMISSION = "admin.users.notify";
|
const NOTIFY_PERMISSION = "admin.users.notify";
|
||||||
|
@ -361,10 +361,10 @@ class UserController extends Controller
|
||||||
|
|
||||||
return datatables($query)
|
return datatables($query)
|
||||||
->addColumn('avatar', function (User $user) {
|
->addColumn('avatar', function (User $user) {
|
||||||
return '<img width="28px" height="28px" class="rounded-circle ml-1" src="' . $user->getAvatar() . '">';
|
return '<img width="28px" height="28px" class="ml-1 rounded-circle" src="' . $user->getAvatar() . '">';
|
||||||
})
|
})
|
||||||
->addColumn('credits', function (User $user) {
|
->addColumn('credits', function (User $user) {
|
||||||
return '<i class="fas fa-coins mr-2"></i> ' . $user->credits();
|
return '<i class="mr-2 fas fa-coins"></i> ' . $user->credits();
|
||||||
})
|
})
|
||||||
->addColumn('verified', function (User $user) {
|
->addColumn('verified', function (User $user) {
|
||||||
return $user->getVerifiedStatus();
|
return $user->getVerifiedStatus();
|
||||||
|
@ -378,10 +378,10 @@ class UserController extends Controller
|
||||||
$suspendText = $user->isSuspended() ? __('Unsuspend') : __('Suspend');
|
$suspendText = $user->isSuspended() ? __('Unsuspend') : __('Suspend');
|
||||||
|
|
||||||
return '
|
return '
|
||||||
<a data-content="' . __('Login as User') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.loginas', $user->id) . '" class="btn btn-sm btn-primary mr-1"><i class="fas fa-sign-in-alt"></i></a>
|
<a data-content="' . __('Login as User') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.loginas', $user->id) . '" class="mr-1 btn btn-sm btn-primary"><i class="fas fa-sign-in-alt"></i></a>
|
||||||
<a data-content="' . __('Verify') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.verifyEmail', $user->id) . '" class="btn btn-sm btn-secondary mr-1"><i class="fas fa-envelope"></i></a>
|
<a data-content="' . __('Verify') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.verifyEmail', $user->id) . '" class="mr-1 btn btn-sm btn-secondary"><i class="fas fa-envelope"></i></a>
|
||||||
<a data-content="' . __('Show') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.show', $user->id) . '" class="btn btn-sm text-white btn-warning mr-1"><i class="fas fa-eye"></i></a>
|
<a data-content="' . __('Show') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.show', $user->id) . '" class="mr-1 text-white btn btn-sm btn-warning"><i class="fas fa-eye"></i></a>
|
||||||
<a data-content="' . __('Edit') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.edit', $user->id) . '" class="btn btn-sm btn-info mr-1"><i class="fas fa-pen"></i></a>
|
<a data-content="' . __('Edit') . '" data-toggle="popover" data-trigger="hover" data-placement="top" href="' . route('admin.users.edit', $user->id) . '" class="mr-1 btn btn-sm btn-info"><i class="fas fa-pen"></i></a>
|
||||||
<form class="d-inline" method="post" action="' . route('admin.users.togglesuspend', $user->id) . '">
|
<form class="d-inline" method="post" action="' . route('admin.users.togglesuspend', $user->id) . '">
|
||||||
' . csrf_field() . '
|
' . csrf_field() . '
|
||||||
<button data-content="' . $suspendText . '" data-toggle="popover" data-trigger="hover" data-placement="top" class="btn btn-sm ' . $suspendColor . ' text-white mr-1"><i class="far ' . $suspendIcon . '"></i></button>
|
<button data-content="' . $suspendText . '" data-toggle="popover" data-trigger="hover" data-placement="top" class="btn btn-sm ' . $suspendColor . ' text-white mr-1"><i class="far ' . $suspendIcon . '"></i></button>
|
||||||
|
@ -389,7 +389,7 @@ class UserController extends Controller
|
||||||
<form class="d-inline" onsubmit="return submitResult();" method="post" action="' . route('admin.users.destroy', $user->id) . '">
|
<form class="d-inline" onsubmit="return submitResult();" method="post" action="' . route('admin.users.destroy', $user->id) . '">
|
||||||
' . csrf_field() . '
|
' . csrf_field() . '
|
||||||
' . method_field('DELETE') . '
|
' . method_field('DELETE') . '
|
||||||
<button data-content="' . __('Delete') . '" data-toggle="popover" data-trigger="hover" data-placement="top" class="btn btn-sm btn-danger mr-1"><i class="fas fa-trash"></i></button>
|
<button data-content="' . __('Delete') . '" data-toggle="popover" data-trigger="hover" data-placement="top" class="mr-1 btn btn-sm btn-danger"><i class="fas fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
';
|
';
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,137 +1,138 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'*',
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Permissions for admin
|
* Permissions for admin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'admin.roles.read',
|
'All Permissions' => '*',
|
||||||
'admin.roles.create',
|
|
||||||
'admin.roles.edit',
|
'View Roles' => 'admin.roles.read',
|
||||||
'admin.roles.delete',
|
'Create Role' => 'admin.roles.create',
|
||||||
|
'Edit Role' => 'admin.roles.edit',
|
||||||
|
'Delete Role' => 'admin.roles.delete',
|
||||||
|
|
||||||
|
|
||||||
'admin.ticket.read',
|
'View Tickets' => 'admin.ticket.read',
|
||||||
'admin.tickets.write',
|
'Manage Ticket' => 'admin.tickets.write',
|
||||||
'admin.tickets.get_notification',
|
'Receive Ticket Notifications' => 'admin.tickets.get_notification',
|
||||||
|
|
||||||
'admin.tickets.category.read',
|
'Create Ticket Category' => 'admin.tickets.category.read',
|
||||||
'admin.tickets.category.write',
|
'Manage Ticket Category' => 'admin.tickets.category.write',
|
||||||
|
|
||||||
'admin.ticket_blacklist.read',
|
'View Blacklist Tickets' => 'admin.ticket_blacklist.read',
|
||||||
'admin.ticket_blacklist.write',
|
'Manage Blacklist Tickets' => 'admin.ticket_blacklist.write',
|
||||||
|
|
||||||
'admin.overview.read',
|
'View Overview' => 'admin.overview.read',
|
||||||
'admin.overview.sync',
|
'Overview Sync' => 'admin.overview.sync',
|
||||||
|
|
||||||
'admin.api.read',
|
'View Api Keys' => 'admin.api.read',
|
||||||
'admin.api.write',
|
'Manage Api Keys' => 'admin.api.write',
|
||||||
|
|
||||||
'admin.users.read',
|
'View Users' => 'admin.users.read',
|
||||||
'admin.users.write',
|
'Manage Users' => 'admin.users.write',
|
||||||
'admin.users.suspend',
|
'Suspend Users' => 'admin.users.suspend',
|
||||||
'admin.users.write.credits',
|
'Manage User Credits' => 'admin.users.write.credits',
|
||||||
'admin.users.write.username',
|
'Manage User Name' => 'admin.users.write.username',
|
||||||
'admin.users.write.password',
|
'Manage User Email' => 'admin.users.write.email',
|
||||||
'admin.users.write.role',
|
'Manage User Password' => 'admin.users.write.password',
|
||||||
'admin.users.write.referal',
|
'Manage User Role' => 'admin.users.write.role',
|
||||||
'admin.users.write.pterodactyl',
|
'Manage User Referral' => 'admin.users.write.referral',
|
||||||
'admin.users.write.email',
|
'Manage User Pterodactyl' => 'admin.users.write.pterodactyl',
|
||||||
'admin.users.notify',
|
|
||||||
'admin.users.login_as',
|
|
||||||
'admin.users.delete',
|
|
||||||
|
|
||||||
'admin.servers.read',
|
'Notify Users' => 'admin.users.notify',
|
||||||
'admin.servers.write',
|
'Login As User' => 'admin.users.login_as',
|
||||||
'admin.servers.suspend',
|
'Delete User' => 'admin.users.delete',
|
||||||
'admin.servers.write.owner',
|
|
||||||
'admin.servers.write.identifier',
|
|
||||||
'admin.servers.delete',
|
|
||||||
'admin.servers.bypass_creation_enabled',
|
|
||||||
|
|
||||||
'admin.products.read',
|
'View Servers' => 'admin.servers.read',
|
||||||
'admin.products.create',
|
'Manage Servers' => 'admin.servers.write',
|
||||||
'admin.products.edit',
|
'Suspend Server' => 'admin.servers.suspend',
|
||||||
'admin.products.delete',
|
'Change Server Owner' => 'admin.servers.write.owner',
|
||||||
|
'Manage Server Identifier' => 'admin.servers.write.identifier',
|
||||||
|
'Create Server' => 'admin.servers.bypass_creation_enabled',
|
||||||
|
'Delete Server' => 'admin.servers.delete',
|
||||||
|
|
||||||
'admin.store.read',
|
'View Products' => 'admin.products.read',
|
||||||
'admin.store.write',
|
'Create Product' => 'admin.products.create',
|
||||||
'admin.store.disable',
|
'Edit Product' => 'admin.products.edit',
|
||||||
|
'Delete Product' => 'admin.products.delete',
|
||||||
|
|
||||||
'admin.voucher.read',
|
'View Store' => 'admin.store.read',
|
||||||
'admin.voucher.write',
|
'Manage Store' => 'admin.store.write',
|
||||||
|
'Disable Store' => 'admin.store.disable',
|
||||||
|
|
||||||
'admin.useful_links.read',
|
'View Vouchers' => 'admin.voucher.read',
|
||||||
'admin.useful_links.write',
|
'Manage Voucher' => 'admin.voucher.write',
|
||||||
|
|
||||||
'admin.legal.read',
|
'View Useful Links' => 'admin.useful_links.read',
|
||||||
'admin.legal.write',
|
'Manage Useful Links' => 'admin.useful_links.write',
|
||||||
|
|
||||||
'admin.payments.read',
|
'View Legal' => 'admin.legal.read',
|
||||||
|
'Manage Legal' => 'admin.legal.write',
|
||||||
|
|
||||||
'admin.partners.read',
|
'View Payments' => 'admin.payments.read',
|
||||||
'admin.partners.write',
|
|
||||||
|
|
||||||
'admin.coupons.read',
|
'View Partners' => 'admin.partners.read',
|
||||||
'admin.coupons.write',
|
'Manage Partners' => 'admin.partners.write',
|
||||||
|
|
||||||
'admin.logs.read',
|
'View Coupons' => 'admin.coupons.read',
|
||||||
|
'Manage Coupons' => 'admin.coupons.write',
|
||||||
|
|
||||||
|
'View Logs' => 'admin.logs.read',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Settings Permissions
|
* Settings Permissions
|
||||||
*/
|
*/
|
||||||
'settings.discord.read',
|
'View Discord Settings' => 'settings.discord.read',
|
||||||
'settings.discord.write',
|
'Manage Discord Settings' => 'settings.discord.write',
|
||||||
|
|
||||||
'settings.general.read',
|
'View General Settings' => 'settings.general.read',
|
||||||
'settings.general.write',
|
'Manage General Settings' => 'settings.general.write',
|
||||||
|
|
||||||
'settings.invoice.read',
|
'View Invoice Settings' => 'settings.invoice.read',
|
||||||
'settings.invoice.write',
|
'Manage Invoice Settings' => 'settings.invoice.write',
|
||||||
|
|
||||||
'settings.locale.read',
|
'View Locale Settings' => 'settings.locale.read',
|
||||||
'settings.locale.write',
|
'Manage Locale Settings' => 'settings.locale.write',
|
||||||
|
|
||||||
'settings.mail.read',
|
'View Mail Settings' => 'settings.mail.read',
|
||||||
'settings.mail.write',
|
'Manage Mail Settings' => 'settings.mail.write',
|
||||||
|
|
||||||
'settings.pterodactyl.read',
|
'View Pterodactyl Settings' => 'settings.pterodactyl.read',
|
||||||
'settings.pterodactyl.write',
|
'Manage Pterodactyl Settings' => 'settings.pterodactyl.write',
|
||||||
|
|
||||||
'settings.referral.read',
|
'View Referral Settings' => 'settings.referral.read',
|
||||||
'settings.referral.write',
|
'Manage Referral Settings' => 'settings.referral.write',
|
||||||
|
|
||||||
'settings.server.read',
|
'View Server Settings' => 'settings.server.read',
|
||||||
'settings.server.write',
|
'Manage Server Settings' => 'settings.server.write',
|
||||||
|
|
||||||
'settings.ticket.read',
|
'View Ticket Settings' => 'settings.ticket.read',
|
||||||
'settings.ticket.write',
|
'Manage Ticket Settings' => 'settings.ticket.write',
|
||||||
|
|
||||||
'settings.user.read',
|
'View User Settings' => 'settings.user.read',
|
||||||
'settings.user.write',
|
'Manage User Settings' => 'settings.user.write',
|
||||||
|
|
||||||
'settings.website.read',
|
'View Website Settings' => 'settings.website.read',
|
||||||
'settings.website.write',
|
'Manage Website Settings' => 'settings.website.write',
|
||||||
|
|
||||||
'settings.paypal.read',
|
'View Paypal Settings' => 'settings.paypal.read',
|
||||||
'settings.paypal.write',
|
'Manage Paypal Settings' => 'settings.paypal.write',
|
||||||
|
|
||||||
'settings.stripe.read',
|
'View Stripe Settings' => 'settings.stripe.read',
|
||||||
'settings.stripe.write',
|
'Manage Stripe Settings' => 'settings.stripe.write',
|
||||||
|
|
||||||
'settings.mollie.read',
|
'View Mollie Settings' => 'settings.mollie.read',
|
||||||
'settings.mollie.write',
|
'Manage Mollie Settings' => 'settings.mollie.write',
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Permissions for users
|
* Permissions for users
|
||||||
*/
|
*/
|
||||||
'user.server.create',
|
'User Create Server' => 'user.server.create',
|
||||||
'user.server.upgrade',
|
'User Upgrade Server' => 'user.server.upgrade',
|
||||||
'user.shop.buy',
|
'User Shop Buy' => 'user.shop.buy',
|
||||||
'user.ticket.read',
|
'User View Tickets' => 'user.ticket.read',
|
||||||
'user.ticket.write',
|
'User Manage Ticket' => 'user.ticket.write',
|
||||||
'user.referral',
|
'User View Referral' => 'user.referral',
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('permissions', function (Blueprint $table) {
|
||||||
|
$table->string('readable_name')->after('name');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('permissions', function (Blueprint $table) {
|
||||||
|
$table->removeColumn('readable_name');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
|
@ -3,7 +3,6 @@
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use Spatie\Permission\Models\Permission;
|
use Spatie\Permission\Models\Permission;
|
||||||
use Spatie\Permission\Models\Role;
|
use Spatie\Permission\Models\Role;
|
||||||
|
@ -24,33 +23,29 @@ class PermissionsSeeder extends Seeder
|
||||||
|
|
||||||
$users = User::all();
|
$users = User::all();
|
||||||
foreach($users as $user){
|
foreach($users as $user){
|
||||||
$user->assignRole(4);
|
$user->assignRole(Role::findByName('user'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$admins = User::where("role","admin")->get();
|
$admins = User::where("role","admin")->get();
|
||||||
foreach($admins as $admin) {
|
foreach($admins as $admin) {
|
||||||
$admin->syncRoles(1);
|
$admin->syncRoles(Role::findByName('Admin'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$mods = User::where("role","moderator")->get();
|
$mods = User::where("role","moderator")->get();
|
||||||
foreach($mods as $mod) {
|
foreach($mods as $mod) {
|
||||||
$mod->syncRoles(2);
|
$mod->syncRoles(Role::findByName('Support-Team'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$clients = User::where("role","client")->get();
|
$clients = User::where("role","client")->get();
|
||||||
foreach($clients as $client) {
|
foreach($clients as $client) {
|
||||||
$client->syncRoles(3);
|
$client->syncRoles(Role::findByName('Client'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createPermissions()
|
public function createPermissions()
|
||||||
{
|
{
|
||||||
foreach (config('permissions_web') as $name) {
|
foreach(config('permissions_web') as $permission_name => $permission_value) {
|
||||||
Permission::findOrCreate($name);
|
Permission::create(['name' => $permission_value, 'readable_name' => $permission_name]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,12 +56,12 @@
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<a href="{{ route('home') }}" class="nav-link"><i
|
<a href="{{ route('home') }}" class="nav-link"><i
|
||||||
class="fas fa-home mr-2"></i>{{ __('Home') }}</a>
|
class="mr-2 fas fa-home"></i>{{ __('Home') }}</a>
|
||||||
</li>
|
</li>
|
||||||
@if (!empty($discord_settings->invite_url))
|
@if (!empty($discord_settings->invite_url))
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<a href="{{ $discord_settings->invite_url }}" class="nav-link" target="__blank"><i
|
<a href="{{ $discord_settings->invite_url }}" class="nav-link" target="__blank"><i
|
||||||
class="fab fa-discord mr-2"></i>{{ __('Discord') }}</a>
|
class="mr-2 fab fa-discord"></i>{{ __('Discord') }}</a>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@ -71,13 +71,13 @@
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" id="languageDropdown" role="button" data-toggle="dropdown"
|
<a class="nav-link" href="#" id="languageDropdown" role="button" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false">
|
aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600">
|
<span class="mr-1 text-gray-600 d-lg-inline">
|
||||||
<small><i class="fa fa-language mr-2"></i></small>{{ __('Language') }}
|
<small><i class="mr-2 fa fa-language"></i></small>{{ __('Language') }}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="changeLocale">
|
aria-labelledby="changeLocale">
|
||||||
<form method="post" action="{{ route('changeLocale') }}" class="nav-item text-center">
|
<form method="post" action="{{ route('changeLocale') }}" class="text-center nav-item">
|
||||||
@csrf
|
@csrf
|
||||||
@foreach (explode(',', $locale_settings->available) as $key)
|
@foreach (explode(',', $locale_settings->available) as $key)
|
||||||
<button class="dropdown-item" name="inputLocale" value="{{ $key }}">
|
<button class="dropdown-item" name="inputLocale" value="{{ $key }}">
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- Right navbar links -->
|
<!-- Right navbar links -->
|
||||||
<ul class="navbar-nav ml-auto">
|
<ul class="ml-auto navbar-nav">
|
||||||
<!-- Notifications Dropdown Menu -->
|
<!-- Notifications Dropdown Menu -->
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" data-toggle="dropdown" href="#">
|
<a class="nav-link" data-toggle="dropdown" href="#">
|
||||||
|
@ -117,9 +117,9 @@
|
||||||
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5) as $notification)
|
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5) as $notification)
|
||||||
<a href="{{ route('notifications.show', $notification->id) }}" class="dropdown-item">
|
<a href="{{ route('notifications.show', $notification->id) }}" class="dropdown-item">
|
||||||
<span class="d-inline-block text-truncate" style="max-width: 150px;"><i
|
<span class="d-inline-block text-truncate" style="max-width: 150px;"><i
|
||||||
class="fas fa-envelope mr-2"></i>{{ $notification->data['title'] }}</span>
|
class="mr-2 fas fa-envelope"></i>{{ $notification->data['title'] }}</span>
|
||||||
<span
|
<span
|
||||||
class="float-right text-muted text-sm">{{ $notification->created_at->longAbsoluteDiffForHumans() }}
|
class="float-right text-sm text-muted">{{ $notification->created_at->longAbsoluteDiffForHumans() }}
|
||||||
ago</span>
|
ago</span>
|
||||||
</a>
|
</a>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -136,20 +136,20 @@
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" id="userDropdown" role="button" data-toggle="dropdown"
|
<a class="nav-link" href="#" id="userDropdown" role="button" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false">
|
aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600">
|
<span class="mr-1 text-gray-600 d-lg-inline">
|
||||||
<small><i class="fas fa-coins mr-2"></i></small>{{ Auth::user()->credits() }}
|
<small><i class="mr-2 fas fa-coins"></i></small>{{ Auth::user()->credits() }}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="userDropdown">
|
aria-labelledby="userDropdown">
|
||||||
<a class="dropdown-item" href="{{ route('store.index') }}">
|
<a class="dropdown-item" href="{{ route('store.index') }}">
|
||||||
<i class="fas fa-coins fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-coins fa-sm fa-fw"></i>
|
||||||
{{ __('Store') }}
|
{{ __('Store') }}
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" data-toggle="modal" data-target="#redeemVoucherModal"
|
<a class="dropdown-item" data-toggle="modal" data-target="#redeemVoucherModal"
|
||||||
href="javascript:void(0)">
|
href="javascript:void(0)">
|
||||||
<i class="fas fa-money-check-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-money-check-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Redeem code') }}
|
{{ __('Redeem code') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -158,27 +158,27 @@
|
||||||
<li class="nav-item dropdown no-arrow">
|
<li class="nav-item dropdown no-arrow">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600 small">
|
<span class="mr-1 text-gray-600 d-lg-inline small">
|
||||||
{{ Auth::user()->name }}
|
{{ Auth::user()->name }}
|
||||||
<img width="28px" height="28px" class="rounded-circle ml-1"
|
<img width="28px" height="28px" class="ml-1 rounded-circle"
|
||||||
src="{{ Auth::user()->getAvatar() }}">
|
src="{{ Auth::user()->getAvatar() }}">
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<!-- Dropdown - User Information -->
|
<!-- Dropdown - User Information -->
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="userDropdown">
|
aria-labelledby="userDropdown">
|
||||||
<a class="dropdown-item" href="{{ route('profile.index') }}">
|
<a class="dropdown-item" href="{{ route('profile.index') }}">
|
||||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-user fa-sm fa-fw"></i>
|
||||||
{{ __('Profile') }}
|
{{ __('Profile') }}
|
||||||
</a>
|
</a>
|
||||||
{{-- <a class="dropdown-item" href="#"> --}}
|
{{-- <a class="dropdown-item" href="#"> --}}
|
||||||
{{-- <i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> --}}
|
{{-- <i class="mr-2 text-gray-400 fas fa-list fa-sm fa-fw"></i> --}}
|
||||||
{{-- Activity Log --}}
|
{{-- Activity Log --}}
|
||||||
{{-- </a> --}}
|
{{-- </a> --}}
|
||||||
@if (session()->get('previousUser'))
|
@if (session()->get('previousUser'))
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" href="{{ route('users.logbackin') }}">
|
<a class="dropdown-item" href="{{ route('users.logbackin') }}">
|
||||||
<i class="fas fa-sign-in-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-sign-in-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Log back in') }}
|
{{ __('Log back in') }}
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
@csrf
|
@csrf
|
||||||
<button class="dropdown-item" href="#" data-toggle="modal"
|
<button class="dropdown-item" href="#" data-toggle="modal"
|
||||||
data-target="#logoutModal">
|
data-target="#logoutModal">
|
||||||
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-sign-out-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Logout') }}
|
{{ __('Logout') }}
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -250,7 +250,7 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('ticket.index') }}"
|
<a href="{{ route('ticket.index') }}"
|
||||||
class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
|
class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
|
||||||
<i class="nav-icon fas fas fa-ticket-alt"></i>
|
<i class="nav-icon fas fa-ticket-alt"></i>
|
||||||
<p>{{ __('Support Ticket') }}</p>
|
<p>{{ __('Support Ticket') }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -357,7 +357,7 @@
|
||||||
'admin.users.write.username',
|
'admin.users.write.username',
|
||||||
'admin.users.write.password',
|
'admin.users.write.password',
|
||||||
'admin.users.write.role',
|
'admin.users.write.role',
|
||||||
'admin.users.write.referal',
|
'admin.users.write.referral',
|
||||||
'admin.users.write.pterodactyl','admin.servers.read',
|
'admin.users.write.pterodactyl','admin.servers.read',
|
||||||
'admin.servers.write',
|
'admin.servers.write',
|
||||||
'admin.servers.suspend',
|
'admin.servers.suspend',
|
||||||
|
@ -379,7 +379,7 @@
|
||||||
'admin.users.write.username',
|
'admin.users.write.username',
|
||||||
'admin.users.write.password',
|
'admin.users.write.password',
|
||||||
'admin.users.write.role',
|
'admin.users.write.role',
|
||||||
'admin.users.write.referal',
|
'admin.users.write.referral',
|
||||||
'admin.users.write.pterodactyl'])
|
'admin.users.write.pterodactyl'])
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('admin.users.index') }}"
|
<a href="{{ route('admin.users.index') }}"
|
||||||
|
@ -510,7 +510,7 @@
|
||||||
<!--
|
<!--
|
||||||
@if (!Auth::user()->hasVerifiedEmail())
|
@if (!Auth::user()->hasVerifiedEmail())
|
||||||
@if (Auth::user()->created_at->diffInHours(now(), false) > 1)
|
@if (Auth::user()->created_at->diffInHours(now(), false) > 1)
|
||||||
<div class="alert alert-warning p-2 m-2">
|
<div class="p-2 m-2 alert alert-warning">
|
||||||
<h5><i class="icon fas fa-exclamation-circle"></i> {{ __('Warning!') }}</h5>
|
<h5><i class="icon fas fa-exclamation-circle"></i> {{ __('Warning!') }}</h5>
|
||||||
{{ __('You have not yet verified your email address') }} <a class="text-primary"
|
{{ __('You have not yet verified your email address') }} <a class="text-primary"
|
||||||
href="{{ route('verification.send') }}">{{ __('Click here to resend verification email') }}</a>
|
href="{{ route('verification.send') }}">{{ __('Click here to resend verification email') }}</a>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
@extends('layouts.main')
|
@extends('layouts.main')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="main py-4">
|
<div class="py-4 main">
|
||||||
|
|
||||||
<div class="card card-body border-0 shadow table-wrapper table-responsive">
|
<div class="border-0 shadow card card-body table-wrapper table-responsive">
|
||||||
<h2 class="mb-4 h5">{{ isset($role) ? __('Edit role') : __('Create role') }}</h2>
|
<h2 class="mb-4 h5">{{ isset($role) ? __('Edit role') : __('Create role') }}</h2>
|
||||||
|
|
||||||
<form method="post"
|
<form method="post"
|
||||||
|
@ -43,14 +43,14 @@
|
||||||
multiple>
|
multiple>
|
||||||
@foreach($permissions as $permission)
|
@foreach($permissions as $permission)
|
||||||
<option @if(isset($role) && $role->permissions->contains($permission)) selected
|
<option @if(isset($role) && $role->permissions->contains($permission)) selected
|
||||||
@endif value="{{$permission->id}}">{{$permission->name}}</option>
|
@endif value="{{$permission->id}}">{{$permission->readable_name}}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
</x-input.select>
|
</x-input.select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group d-flex justify-content-end mt-3">
|
<div class="mt-3 form-group d-flex justify-content-end">
|
||||||
<button name="submit" type="submit" class="btn btn-primary">{{__('Submit')}}</button>
|
<button name="submit" type="submit" class="btn btn-primary">{{__('Submit')}}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -61,7 +61,9 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.addEventListener('DOMContentLoaded', (event) => {
|
document.addEventListener('DOMContentLoaded', (event) => {
|
||||||
$('#permissions').select2();
|
$('#permissions').select2({
|
||||||
|
closeOnSelect: false
|
||||||
|
});
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -1,20 +1,36 @@
|
||||||
@extends('layouts.main')
|
@extends('layouts.main')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="main py-4">
|
|
||||||
|
|
||||||
@can('admin.roles.write')
|
<section class="content-header">
|
||||||
<div class="d-flex justify-content-end my-3">
|
<div class="container-fluid">
|
||||||
<a href="{{route('admin.roles.create')}}" class="btn btn-primary"><i
|
<div class="mb-2 row">
|
||||||
class="fa fas fa-shield-alt pe-2"></i>{{__('Create role')}}</a>
|
<div class="col-sm-6">
|
||||||
|
<h1>{{__('Create role')}}</h1>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<ol class="breadcrumb float-sm-right">
|
||||||
|
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||||
|
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.roles.index')}}">{{__('Roles List')}}</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h5 class="card-title"><i class="mr-2 fas fa-user-check"></i>{{__('Roles List')}}</h5>
|
||||||
|
</div>
|
||||||
|
@can('admin.roles.write')
|
||||||
|
<a href="{{route('admin.roles.create')}}" class="float-right btn btn-primary"><i class="fa fas fa-shield-alt pe-2"></i>{{__('Create role')}}</a>
|
||||||
@endcan
|
@endcan
|
||||||
|
</div>
|
||||||
<div class="card card-body border-0 shadow table-wrapper table-responsive">
|
<div class="card-body table-responsive">
|
||||||
<h2 class="mb-4 h5">{{ __('Roles') }}</h2>
|
|
||||||
|
|
||||||
<div class="card-body table-responsive">
|
<div class="card-body table-responsive">
|
||||||
|
|
||||||
<table id="datatable" class="table table-striped">
|
<table id="datatable" class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
@ -32,10 +48,11 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
$('#datatable').DataTable({
|
$('#datatable').DataTable({
|
||||||
language: {
|
language: {
|
||||||
|
@ -45,18 +62,30 @@
|
||||||
serverSide: true, //increases loading times too much? change back to "true" if it does
|
serverSide: true, //increases loading times too much? change back to "true" if it does
|
||||||
stateSave: true,
|
stateSave: true,
|
||||||
ajax: "{{route('admin.roles.datatable')}}",
|
ajax: "{{route('admin.roles.datatable')}}",
|
||||||
columns: [
|
columns: [{
|
||||||
{data: 'id'},
|
data: 'id'
|
||||||
{data: 'name'},
|
},
|
||||||
{data: 'usercount'},
|
{
|
||||||
{data: 'permissionscount'},
|
data: 'name'
|
||||||
{data: 'power'},
|
},
|
||||||
{data: 'actions' , sortable : false},
|
{
|
||||||
|
data: 'usercount'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'permissionscount'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'power'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'actions',
|
||||||
|
sortable: false
|
||||||
|
}
|
||||||
],
|
],
|
||||||
fnDrawCallback: function(oSettings) {
|
fnDrawCallback: function(oSettings) {
|
||||||
$('[data-toggle="popover"]').popover();
|
$('[data-toggle="popover"]').popover();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<!-- CONTENT HEADER -->
|
<!-- CONTENT HEADER -->
|
||||||
<section class="content-header">
|
<section class="content-header">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row mb-2">
|
<div class="mb-2 row">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h1>{{__('Ticket')}}</h1>
|
<h1>{{__('Ticket')}}</h1>
|
||||||
</div>
|
</div>
|
||||||
|
@ -28,9 +28,9 @@
|
||||||
|
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<h5 class="card-title"><i class="fas fa-ticket-alt mr-2"></i>{{__('Ticket List')}}</h5>
|
<h5 class="card-title"><i class="mr-2 fas fa-ticket-alt"></i>{{__('Ticket List')}}</h5>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{route("admin.ticket.category.index")}}"><button class="btn btn-primary float-right">+ {{__("Add Category")}}</button></a>
|
<a href="{{route("admin.ticket.category.index")}}"><button class="float-right btn btn-primary">+ {{__("Add Category")}}</button></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,12 +56,12 @@
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<a href="{{ route('home') }}" class="nav-link"><i
|
<a href="{{ route('home') }}" class="nav-link"><i
|
||||||
class="fas fa-home mr-2"></i>{{ __('Home') }}</a>
|
class="mr-2 fas fa-home"></i>{{ __('Home') }}</a>
|
||||||
</li>
|
</li>
|
||||||
@if (!empty($discord_settings->invite_url))
|
@if (!empty($discord_settings->invite_url))
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<a href="{{ $discord_settings->invite_url }}" class="nav-link" target="__blank"><i
|
<a href="{{ $discord_settings->invite_url }}" class="nav-link" target="__blank"><i
|
||||||
class="fab fa-discord mr-2"></i>{{ __('Discord') }}</a>
|
class="mr-2 fab fa-discord"></i>{{ __('Discord') }}</a>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@ -71,13 +71,13 @@
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" id="languageDropdown" role="button" data-toggle="dropdown"
|
<a class="nav-link" href="#" id="languageDropdown" role="button" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false">
|
aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600">
|
<span class="mr-1 text-gray-600 d-lg-inline">
|
||||||
<small><i class="fa fa-language mr-2"></i></small>{{ __('Language') }}
|
<small><i class="mr-2 fa fa-language"></i></small>{{ __('Language') }}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="changeLocale">
|
aria-labelledby="changeLocale">
|
||||||
<form method="post" action="{{ route('changeLocale') }}" class="nav-item text-center">
|
<form method="post" action="{{ route('changeLocale') }}" class="text-center nav-item">
|
||||||
@csrf
|
@csrf
|
||||||
@foreach (explode(',', $locale_settings->available) as $key)
|
@foreach (explode(',', $locale_settings->available) as $key)
|
||||||
<button class="dropdown-item" name="inputLocale" value="{{ $key }}">
|
<button class="dropdown-item" name="inputLocale" value="{{ $key }}">
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- Right navbar links -->
|
<!-- Right navbar links -->
|
||||||
<ul class="navbar-nav ml-auto">
|
<ul class="ml-auto navbar-nav">
|
||||||
<!-- Notifications Dropdown Menu -->
|
<!-- Notifications Dropdown Menu -->
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" data-toggle="dropdown" href="#">
|
<a class="nav-link" data-toggle="dropdown" href="#">
|
||||||
|
@ -117,9 +117,9 @@
|
||||||
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5) as $notification)
|
@foreach (Auth::user()->unreadNotifications->sortBy('created_at')->take(5) as $notification)
|
||||||
<a href="{{ route('notifications.show', $notification->id) }}" class="dropdown-item">
|
<a href="{{ route('notifications.show', $notification->id) }}" class="dropdown-item">
|
||||||
<span class="d-inline-block text-truncate" style="max-width: 150px;"><i
|
<span class="d-inline-block text-truncate" style="max-width: 150px;"><i
|
||||||
class="fas fa-envelope mr-2"></i>{{ $notification->data['title'] }}</span>
|
class="mr-2 fas fa-envelope"></i>{{ $notification->data['title'] }}</span>
|
||||||
<span
|
<span
|
||||||
class="float-right text-muted text-sm">{{ $notification->created_at->longAbsoluteDiffForHumans() }}
|
class="float-right text-sm text-muted">{{ $notification->created_at->longAbsoluteDiffForHumans() }}
|
||||||
ago</span>
|
ago</span>
|
||||||
</a>
|
</a>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -136,20 +136,20 @@
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link" href="#" id="userDropdown" role="button" data-toggle="dropdown"
|
<a class="nav-link" href="#" id="userDropdown" role="button" data-toggle="dropdown"
|
||||||
aria-haspopup="true" aria-expanded="false">
|
aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600">
|
<span class="mr-1 text-gray-600 d-lg-inline">
|
||||||
<small><i class="fas fa-coins mr-2"></i></small>{{ Auth::user()->credits() }}
|
<small><i class="mr-2 fas fa-coins"></i></small>{{ Auth::user()->credits() }}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="userDropdown">
|
aria-labelledby="userDropdown">
|
||||||
<a class="dropdown-item" href="{{ route('store.index') }}">
|
<a class="dropdown-item" href="{{ route('store.index') }}">
|
||||||
<i class="fas fa-coins fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-coins fa-sm fa-fw"></i>
|
||||||
{{ __('Store') }}
|
{{ __('Store') }}
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" data-toggle="modal" data-target="#redeemVoucherModal"
|
<a class="dropdown-item" data-toggle="modal" data-target="#redeemVoucherModal"
|
||||||
href="javascript:void(0)">
|
href="javascript:void(0)">
|
||||||
<i class="fas fa-money-check-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-money-check-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Redeem code') }}
|
{{ __('Redeem code') }}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -158,27 +158,27 @@
|
||||||
<li class="nav-item dropdown no-arrow">
|
<li class="nav-item dropdown no-arrow">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
<span class="mr-1 d-lg-inline text-gray-600 small">
|
<span class="mr-1 text-gray-600 d-lg-inline small">
|
||||||
{{ Auth::user()->name }}
|
{{ Auth::user()->name }}
|
||||||
<img width="28px" height="28px" class="rounded-circle ml-1"
|
<img width="28px" height="28px" class="ml-1 rounded-circle"
|
||||||
src="{{ Auth::user()->getAvatar() }}">
|
src="{{ Auth::user()->getAvatar() }}">
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<!-- Dropdown - User Information -->
|
<!-- Dropdown - User Information -->
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
<div class="shadow dropdown-menu dropdown-menu-right animated--grow-in"
|
||||||
aria-labelledby="userDropdown">
|
aria-labelledby="userDropdown">
|
||||||
<a class="dropdown-item" href="{{ route('profile.index') }}">
|
<a class="dropdown-item" href="{{ route('profile.index') }}">
|
||||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-user fa-sm fa-fw"></i>
|
||||||
{{ __('Profile') }}
|
{{ __('Profile') }}
|
||||||
</a>
|
</a>
|
||||||
{{-- <a class="dropdown-item" href="#"> --}}
|
{{-- <a class="dropdown-item" href="#"> --}}
|
||||||
{{-- <i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i> --}}
|
{{-- <i class="mr-2 text-gray-400 fas fa-list fa-sm fa-fw"></i> --}}
|
||||||
{{-- Activity Log --}}
|
{{-- Activity Log --}}
|
||||||
{{-- </a> --}}
|
{{-- </a> --}}
|
||||||
@if (session()->get('previousUser'))
|
@if (session()->get('previousUser'))
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<a class="dropdown-item" href="{{ route('users.logbackin') }}">
|
<a class="dropdown-item" href="{{ route('users.logbackin') }}">
|
||||||
<i class="fas fa-sign-in-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-sign-in-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Log back in') }}
|
{{ __('Log back in') }}
|
||||||
</a>
|
</a>
|
||||||
@endif
|
@endif
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
@csrf
|
@csrf
|
||||||
<button class="dropdown-item" href="#" data-toggle="modal"
|
<button class="dropdown-item" href="#" data-toggle="modal"
|
||||||
data-target="#logoutModal">
|
data-target="#logoutModal">
|
||||||
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
<i class="mr-2 text-gray-400 fas fa-sign-out-alt fa-sm fa-fw"></i>
|
||||||
{{ __('Logout') }}
|
{{ __('Logout') }}
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -250,7 +250,7 @@
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('ticket.index') }}"
|
<a href="{{ route('ticket.index') }}"
|
||||||
class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
|
class="nav-link @if (Request::routeIs('ticket.*')) active @endif">
|
||||||
<i class="nav-icon fas fas fa-ticket-alt"></i>
|
<i class="nav-icon fas fa-ticket-alt"></i>
|
||||||
<p>{{ __('Support Ticket') }}</p>
|
<p>{{ __('Support Ticket') }}</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -357,7 +357,7 @@
|
||||||
'admin.users.write.username',
|
'admin.users.write.username',
|
||||||
'admin.users.write.password',
|
'admin.users.write.password',
|
||||||
'admin.users.write.role',
|
'admin.users.write.role',
|
||||||
'admin.users.write.referal',
|
'admin.users.write.referral',
|
||||||
'admin.users.write.pterodactyl','admin.servers.read',
|
'admin.users.write.pterodactyl','admin.servers.read',
|
||||||
'admin.servers.write',
|
'admin.servers.write',
|
||||||
'admin.servers.suspend',
|
'admin.servers.suspend',
|
||||||
|
@ -379,7 +379,7 @@
|
||||||
'admin.users.write.username',
|
'admin.users.write.username',
|
||||||
'admin.users.write.password',
|
'admin.users.write.password',
|
||||||
'admin.users.write.role',
|
'admin.users.write.role',
|
||||||
'admin.users.write.referal',
|
'admin.users.write.referral',
|
||||||
'admin.users.write.pterodactyl'])
|
'admin.users.write.pterodactyl'])
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('admin.users.index') }}"
|
<a href="{{ route('admin.users.index') }}"
|
||||||
|
@ -520,7 +520,7 @@
|
||||||
<!--
|
<!--
|
||||||
@if (!Auth::user()->hasVerifiedEmail())
|
@if (!Auth::user()->hasVerifiedEmail())
|
||||||
@if (Auth::user()->created_at->diffInHours(now(), false) > 1)
|
@if (Auth::user()->created_at->diffInHours(now(), false) > 1)
|
||||||
<div class="alert alert-warning p-2 m-2">
|
<div class="p-2 m-2 alert alert-warning">
|
||||||
<h5><i class="icon fas fa-exclamation-circle"></i> {{ __('Warning!') }}</h5>
|
<h5><i class="icon fas fa-exclamation-circle"></i> {{ __('Warning!') }}</h5>
|
||||||
{{ __('You have not yet verified your email address') }} <a class="text-primary"
|
{{ __('You have not yet verified your email address') }} <a class="text-primary"
|
||||||
href="{{ route('verification.send') }}">{{ __('Click here to resend verification email') }}</a>
|
href="{{ route('verification.send') }}">{{ __('Click here to resend verification email') }}</a>
|
||||||
|
|
Loading…
Reference in a new issue