mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 13:35:54 +00:00
wip
This commit is contained in:
@@ -15,6 +15,7 @@ class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
public function boot()
|
||||
{
|
||||
UriFactory::registerScheme('capacitor', Uri::class);
|
||||
UriFactory::registerScheme('chrome-extension', Uri::class);
|
||||
}
|
||||
|
||||
|
||||
54
app/Server/Http/Controllers/Admin/UpdateUsersController.php
Normal file
54
app/Server/Http/Controllers/Admin/UpdateUsersController.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Server\Http\Controllers\Admin;
|
||||
|
||||
use App\Contracts\UserRepository;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Str;
|
||||
use Ratchet\ConnectionInterface;
|
||||
|
||||
class StoreUsersController extends AdminController
|
||||
{
|
||||
protected $keepConnectionOpen = true;
|
||||
|
||||
/** @var UserRepository */
|
||||
protected $userRepository;
|
||||
|
||||
public function __construct(UserRepository $userRepository)
|
||||
{
|
||||
$this->userRepository = $userRepository;
|
||||
}
|
||||
|
||||
public function handle(Request $request, ConnectionInterface $httpConnection)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required',
|
||||
], [
|
||||
'required' => 'The :attribute field is required.',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
$httpConnection->send(respond_json(['errors' => $validator->getMessageBag()], 401));
|
||||
$httpConnection->close();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$insertData = [
|
||||
'name' => $request->get('name'),
|
||||
'auth_token' => $request->get('token', (string) Str::uuid()),
|
||||
'can_specify_subdomains' => (int) $request->get('can_specify_subdomains'),
|
||||
'can_specify_domains' => (int) $request->get('can_specify_domains'),
|
||||
'can_share_tcp_ports' => (int) $request->get('can_share_tcp_ports'),
|
||||
'max_connections' => (int) $request->get('max_connections'),
|
||||
];
|
||||
|
||||
$this->userRepository
|
||||
->storeUser($insertData)
|
||||
->then(function ($user) use ($httpConnection) {
|
||||
$httpConnection->send(respond_json(['user' => $user], 200));
|
||||
$httpConnection->close();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -70,14 +70,14 @@ class TunnelMessageController extends Controller
|
||||
|
||||
protected function detectSubdomain(Request $request): ?string
|
||||
{
|
||||
$subdomain = Str::before($request->getHost(), '.');
|
||||
$subdomain = Str::before($request->header('Host'), '.');
|
||||
|
||||
return $subdomain === $request->getHost() ? null : $subdomain;
|
||||
return $subdomain === $request->header('Host') ? null : $subdomain;
|
||||
}
|
||||
|
||||
protected function detectServerHost(Request $request): ?string
|
||||
{
|
||||
return Str::after($request->getHost(), '.');
|
||||
return Str::after($request->header('Host'), '.');
|
||||
}
|
||||
|
||||
protected function sendRequestToClient(Request $request, ControlConnection $controlConnection, ConnectionInterface $httpConnection)
|
||||
|
||||
@@ -168,7 +168,7 @@ class DatabaseUserRepository implements UserRepository
|
||||
{
|
||||
$deferred = new Deferred();
|
||||
|
||||
$this->database->query('DELETE FROM users WHERE id = :id', ['id' => $id])
|
||||
$this->database->query('DELETE FROM users WHERE id = :id OR auth_token = :id', ['id' => $id])
|
||||
->then(function (Result $result) use ($deferred) {
|
||||
$deferred->resolve($result);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user