index options added

This commit is contained in:
carodej
2020-07-13 09:49:25 +02:00
parent a74c1c7b6e
commit 2ae60003d6
50 changed files with 1106 additions and 135 deletions

View File

@@ -60,7 +60,7 @@ class DashboardController extends Controller
public function new_registrations()
{
return new UsersCollection(
User::take(5)->orderByDesc('created_at')->get()
User::take(7)->orderByDesc('created_at')->get()
);
}
}

View File

@@ -45,9 +45,7 @@ class PagesController extends Controller
public function update(Request $request, $slug) {
$page = Page::where('slug', $slug)->first();
$page->update([
$request->name => $request->value
]);
$page->update(make_single_input($request));
return response('Done', 204);
}

View File

@@ -122,7 +122,9 @@ class UserController extends Controller
return new UserResource($user);
}
$user->update($request->input('attributes'));
// Update user role
$user->role = $request->input('attributes.role');
$user->save();
return new UserResource($user);
}
@@ -181,7 +183,7 @@ class UserController extends Controller
}
// Create user
$user = User::create([
$user = User::forceCreate([
'avatar' => $request->hasFile('avatar') ? $avatar : null,
'name' => $request->name,
'role' => $request->role,
@@ -190,7 +192,7 @@ class UserController extends Controller
]);
// Create settings
$settings = UserSettings::create([
$settings = UserSettings::forceCreate([
'user_id' => $user->id,
'storage_capacity' => $request->storage_capacity,
]);

View File

@@ -18,6 +18,33 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
class AppFunctionsController extends Controller
{
/**
* List of allowed settings to get from public request
*
* @var array
*/
private $whitelist = [
'footer_content',
'get_started_description',
'get_started_title',
'pricing_description',
'pricing_title',
'feature_description_3',
'feature_title_3',
'feature_description_2',
'feature_title_2',
'feature_description_1',
'feature_title_1',
'features_description',
'features_title',
'header_description',
'header_title',
'section_get_started',
'section_pricing_content',
'section_feature_boxes',
'section_features',
];
/**
* Show index page
*
@@ -31,6 +58,7 @@ class AppFunctionsController extends Controller
$connection = $this->get_setup_status();
$settings = json_decode(Setting::all()->pluck('value', 'name')->toJson());
$legal = Page::whereIn('slug', ['terms-of-service', 'privacy-policy', 'cookie-policy'])->get(['visibility', 'title', 'slug']);
} catch (PDOException $e) {
$connection = 'setup-database';
@@ -39,6 +67,7 @@ class AppFunctionsController extends Controller
return view("index")
->with('settings', $settings)
->with('legal', $legal)
->with('installation', $connection);
}
@@ -72,6 +101,32 @@ class AppFunctionsController extends Controller
);
}
/**
* Get selected settings from public route
*
* @param Request $request
* @return mixed
*/
public function get_settings(Request $request)
{
$column = $request->get('column');
if (strpos($column, '|') !== false) {
$columns = collect(explode('|', $column));
$columns->each(function ($column) {
if (! in_array($column, $this->whitelist)) abort(401);
});
return Setting::whereIn('name', $columns)->pluck('value', 'name');
}
if (! in_array($column, $this->whitelist)) abort(401);
return Setting::where('name', $column)->pluck('value', 'name');
}
/**
* Check if setup wizard was passed
*

View File

@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Auth;
use App\Http\Requests\Auth\CheckAccountRequest;
use App\Setting;
use App\User;
use App\UserSettings;
use Illuminate\Http\Request;
@@ -64,8 +65,10 @@ class AuthController extends Controller
*/
public function register(Request $request)
{
$settings = Setting::whereIn('name', ['storage_default', 'registration'])->pluck('value', 'name');
// Check if account registration is enabled
if (!config('vuefilemanager.registration')) abort(401);
if (! intval($settings['registration'])) abort(401);
// Validate request
$request->validate([
@@ -81,11 +84,12 @@ class AuthController extends Controller
'password' => Hash::make($request->password),
]);
$default_storage = Setting::where('name', 'storage_default')->first();
// Create settings
// TODO: set default storage capacity
$settings = UserSettings::create([
'user_id' => $user->id,
'storage_capacity' => 5,
'storage_capacity' => $settings['storage_default'],
]);
$response = Route::dispatch(self::make_login_request($request));

View File

@@ -569,7 +569,7 @@ class SetupWizardController extends Controller
$storage_capacity = Setting::where('name', 'storage_default')->first();
// Create settings
UserSettings::create([
UserSettings::forceCreate([
'user_id' => $user->id,
'storage_capacity' => $storage_capacity->value,
]);
@@ -592,9 +592,10 @@ class SetupWizardController extends Controller
'value' => $request->purchase_code,
]);
// Create legal pages
// Create legal pages and index content
if ($request->license === 'Extended') {
Artisan::call('db:seed --class=PageSeeder');
Artisan::call('db:seed --class=ContentSeeder');
}
// Retrieve access token

View File

@@ -99,7 +99,7 @@ class SettingController extends Controller
setEnvironmentValue($col['name'], $col['value']);
});
// Clear cache
// Clear config cache
Artisan::call('config:clear');
return response('Done', 204);

View File

@@ -81,9 +81,6 @@ class AccountController extends Controller
return Demo::response_204();
}
// Check role
if ($request->has('role')) abort(403);
// Update data
if ($request->hasFile('avatar')) {

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Setting;
use App\User;
use Illuminate\Http\Request;
@@ -12,15 +13,19 @@ class WebhookController extends CashierController
/**
* Handle a cancelled customer from a Stripe subscription.
*
* @param array $payload
* @param array $payload
* @return \Symfony\Component\HttpFoundation\Response
*/
public function handleCustomerSubscriptionDeleted($payload) {
public function handleCustomerSubscriptionDeleted($payload)
{
// Get user
$user = User::where('stripe_id', $payload['data']['object']['customer'])->firstOrFail();
// TODO: set default capacity
$user->settings->update(['storage_capacity' => 1]);
// Get default storage capacity
$default_storage = Setting::where('name', 'storage_default')->first();
// Update storage capacity
$user->settings()->update(['storage_capacity' => $default_storage->value]);
return $this->successMethod();
}