mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 07:54:03 +00:00
Begin work on HTTPS
This commit is contained in:
parent
349832c64b
commit
aa46cb8e35
10 changed files with 148 additions and 0 deletions
|
|
@ -44,6 +44,11 @@ class DatabaseManager
|
|||
return DB::statement("CREATE DATABASE `$name` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
// todo: delete database. similar to create()
|
||||
}
|
||||
|
||||
public function getDriver(): ?string
|
||||
{
|
||||
return config("database.connections.tenant.driver");
|
||||
|
|
|
|||
7
src/Interfaces/ServerConfigManager.php
Normal file
7
src/Interfaces/ServerConfigManager.php
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy\Interfaces;
|
||||
|
||||
interface ServerConfigManager
|
||||
{
|
||||
}
|
||||
9
src/ServerConfigManagers/NginxConfigManager.php
Normal file
9
src/ServerConfigManagers/NginxConfigManager.php
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy\ServerConfigManagers;
|
||||
|
||||
use Stancl\Tenancy\Interfaces\ServerConfigManager;
|
||||
|
||||
class NginxConfigManager implements ServerConfigManager
|
||||
{
|
||||
}
|
||||
32
src/ServerManager.php
Normal file
32
src/ServerManager.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
namespace Stancl\Tenancy;
|
||||
|
||||
use Stancl\Tenancy\Interfaces\ServerConfigManager;
|
||||
|
||||
class ServerManager
|
||||
{
|
||||
public function __construct(ServerConfigManager $serverConfigManager, TenantManager $tenantManager)
|
||||
{
|
||||
$this->serverConfigManager = $serverConfigManager;
|
||||
$this->tenantManager = $tenantManager;
|
||||
}
|
||||
|
||||
public function getConfigFilePath()
|
||||
{
|
||||
if (config('tenancy.server.file.single')) {
|
||||
return config('tenancy.server.file.path');
|
||||
}
|
||||
|
||||
return config('tenancy.server.file.path.prefix') . $this->tenantManager('uuid') . config('tenancy.server.file.path.suffix');
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
// todo
|
||||
}
|
||||
}
|
||||
|
|
@ -54,6 +54,7 @@ class TenancyServiceProvider extends ServiceProvider
|
|||
$this->mergeConfigFrom(__DIR__ . '/config/tenancy.php', 'tenancy');
|
||||
|
||||
$this->app->bind(StorageDriver::class, $this->app['config']['tenancy.storage_driver']);
|
||||
$this->app->bind(ServerConfigManager::class, $this->app['config']['tenancy.server.manager']);
|
||||
$this->app->singleton(DatabaseManager::class);
|
||||
$this->app->singleton(TenantManager::class, function ($app) {
|
||||
return new TenantManager($app, $app[StorageDriver::class], $app[DatabaseManager::class]);
|
||||
|
|
|
|||
|
|
@ -264,4 +264,19 @@ class TenantManager
|
|||
|
||||
return $this->put($this->put($key, $value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the identified tenant's attribute(s).
|
||||
*
|
||||
* @param string $attribute
|
||||
* @return mixed
|
||||
*/
|
||||
public function __invoke($attribute)
|
||||
{
|
||||
if (is_null($attribute)) {
|
||||
return $this->tenant;
|
||||
}
|
||||
|
||||
return $this->tenant[(string) $attribute];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,4 +30,19 @@ return [
|
|||
// 's3',
|
||||
],
|
||||
],
|
||||
'server' => [
|
||||
'manager' => 'Stancl\Tenancy\ServerConfigManagers\NginxConfigManager',
|
||||
'file' => [
|
||||
'single' => true, // single file for all tenant vhosts
|
||||
'path' => '/etc/nginx/sites-available/tenants.conf',
|
||||
/*
|
||||
'single' => false,
|
||||
'path' => [
|
||||
'prefix' => '/etc/nginx/sites-available/tenants/tenant',
|
||||
'suffix' => '.conf',
|
||||
// results in: '/etc/nginx/sites-available/tenants/tenant' . $uuid . '.conf'
|
||||
]
|
||||
*/
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue