Some things to be adjusted

This commit is contained in:
Ferks-FK 2023-02-07 15:35:04 +00:00 committed by IceToast
parent fc49c6490f
commit 49904b22bf
7 changed files with 82 additions and 26 deletions

View file

@ -12,6 +12,7 @@ use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
use Illuminate\Support\Facades\Http;
use App\Settings\PterodactylSettings;
use App\Settings\ServerSettings;
class PterodactylClient
{
@ -27,11 +28,13 @@ class PterodactylClient
public function __construct(PterodactylSettings $ptero_settings)
{
$server_settings = new ServerSettings();
try {
$this->client = $this->client($ptero_settings);
$this->client_admin = $this->clientAdmin($ptero_settings);
$this->per_page_limit = $ptero_settings->per_page_limit;
$this->allocation_limit = $ptero_settings->allocation_limit;
$this->allocation_limit = $server_settings->allocation_limit;
}
catch (Exception $exception) {
logger('Failed to construct Pterodactyl client, Settings table not available?', ['exception' => $exception]);

View file

@ -256,7 +256,12 @@ class UserController extends Controller
}
$all = $data['all'] ?? false;
$users = $all ? User::all() : User::whereIn('id', $data['users'])->get();
Notification::send($users, new DynamicNotification($data['via'], $database, $mail));
try {
Notification::send($users, new DynamicNotification($data['via'], $database, $mail));
}
catch (Exception $e) {
return redirect()->route('admin.users.notifications')->with('error', __('The attempt to send the email failed with the error: ' . $e->getMessage()));
}
return redirect()->route('admin.users.notifications')->with('success', __('Notification sent!'));
}

View file

@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Notification;
use Illuminate\Support\HtmlString;
use Illuminate\Validation\ValidationException;
use Spatie\ValidationRules\Rules\Delimited;
use Exception;
class NotificationController extends Controller
{
@ -104,8 +105,12 @@ class NotificationController extends Controller
'users' => ['No users found!'],
]);
}
Notification::send($users, new DynamicNotification($via, $database, $mail));
try {
Notification::send($users, new DynamicNotification($via, $database, $mail));
}
catch (Exception $e) {
return response()->json(['message' => 'The attempt to send the email failed with the error: ' . $e->getMessage()], 500);
}
return response()->json(['message' => 'Notification successfully sent.', 'user_count' => $users->count()]);
}

View file

@ -27,6 +27,22 @@ class RegisterController extends Controller
{
private $pterodactyl;
private $credits_display_name;
private $recaptcha_enabled;
private $website_show_tos;
private $register_ip_check;
private $initial_credits;
private $initial_server_limit;
private $referral_mode;
private $referral_reward;
/*
|--------------------------------------------------------------------------
| Register Controller
@ -52,10 +68,18 @@ class RegisterController extends Controller
*
* @return void
*/
public function __construct(PterodactylSettings $ptero_settings)
public function __construct(PterodactylSettings $ptero_settings, GeneralSettings $general_settings, WebsiteSettings $website_settings, UserSettings $user_settings, ReferralSettings $referral_settings)
{
$this->middleware('guest');
$this->pterodactyl = new PterodactylClient($ptero_settings);
$this->credits_display_name = $general_settings->credits_display_name;
$this->recaptcha_enabled = $general_settings->recaptcha_enabled;
$this->website_show_tos = $website_settings->show_tos;
$this->register_ip_check = $user_settings->register_ip_check;
$this->initial_credits = $user_settings->initial_credits;
$this->initial_server_limit = $user_settings->initial_server_limit;
$this->referral_mode = $referral_settings->mode;
$this->referral_reward = $referral_settings->reward;
}
/**
@ -64,21 +88,21 @@ class RegisterController extends Controller
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data, GeneralSettings $general_settings, WebsiteSettings $website_settings, UserSettings $user_settings)
protected function validator(array $data)
{
$validationRules = [
'name' => ['required', 'string', 'max:30', 'min:4', 'alpha_num', 'unique:users'],
'email' => ['required', 'string', 'email', 'max:64', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
];
if ($general_settings->recaptcha_enabled) {
if ($this->recaptcha_enabled) {
$validationRules['g-recaptcha-response'] = ['required', 'recaptcha'];
}
if ($website_settings->show_tos) {
if ($this->website_show_tos) {
$validationRules['terms'] = ['required'];
}
if ($user_settings->register_ip_check) {
if ($this->register_ip_check) {
//check if ip has already made an account
$data['ip'] = session()->get('ip') ?? request()->ip();
@ -102,13 +126,13 @@ class RegisterController extends Controller
* @param array $data
* @return User
*/
protected function create(array $data, GeneralSettings $general_settings, UserSettings $user_settings, ReferralSettings $referral_settings)
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'credits' => $user_settings->initial_credits,
'server_limit' => $user_settings->initial_server_limit,
'credits' => $this->initial_credits,
'server_limit' => $this->initial_server_limit,
'password' => Hash::make($data['password']),
'referral_code' => $this->createReferralCode(),
@ -142,15 +166,15 @@ class RegisterController extends Controller
$ref_code = $data['referral_code'];
$new_user = $user->id;
if ($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) {
if ($referral_settings->mode === 'sign-up' || $referral_settings->mode === 'both') {
$ref_user->increment('credits', $referral_settings->reward);
if ($this->referral_mode === 'sign-up' || $this->referral_mode === 'both') {
$ref_user->increment('credits', $this->referral_reward);
$ref_user->notify(new ReferralNotification($ref_user->id, $new_user));
//LOGS REFERRALS IN THE ACTIVITY LOG
activity()
->performedOn($user)
->causedBy($ref_user)
->log('gained ' . $referral_settings->reward . ' ' . $general_settings->credits_display_name . ' for sign-up-referral of ' . $user->name . ' (ID:' . $user->id . ')');
->log('gained ' . $this->referral_reward . ' ' . $this->credits_display_name . ' for sign-up-referral of ' . $user->name . ' (ID:' . $user->id . ')');
}
//INSERT INTO USER_REFERRALS TABLE
DB::table('user_referrals')->insert([

View file

@ -3,9 +3,9 @@
namespace App\Providers;
use App\Models\UsefulLink;
use App\Settings\MailSettings;
use Exception;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Validator;
@ -62,6 +62,9 @@ class AppServiceProvider extends ServiceProvider
Log::error("Couldnt find useful_links. Probably the installation is not completet. " . $e);
}
$settings = $this->app->make(MailSettings::class);
$settings->setConfig();
//only run if the installer has been executed
// try {
// $settings = Settings::all();

View file

@ -6,23 +6,23 @@ use Spatie\LaravelSettings\Settings;
class MailSettings extends Settings
{
public string $mail_host;
public ?string $mail_host;
public int $mail_port;
public ?int $mail_port;
public string $mail_username;
public ?string $mail_username;
public string $mail_password;
public ?string $mail_password;
public string $mail_encryption;
public ?string $mail_encryption;
public string $mail_from_address;
public ?string $mail_from_address;
public string $mail_from_name;
public ?string $mail_from_name;
public string $mail_mailer;
public ?string $mail_mailer;
public bool $mail_enabled;
public ?bool $mail_enabled;
public static function group(): string
{
@ -35,4 +35,20 @@ class MailSettings extends Settings
'mail_password'
];
}
public function setConfig()
{
try {
config()->set('mail.mailers.smtp.host', $this->mail_host);
config()->set('mail.mailers.smtp.port', $this->mail_port);
config()->set('mail.mailers.smtp.encryption', $this->mail_encryption);
config()->set('mail.mailers.smtp.username', $this->mail_username);
config()->set('mail.mailers.smtp.password', $this->mail_password);
config()->set('mail.from.address', $this->mail_from_address);
config()->set('mail.from.name', $this->mail_from_name);
config()->set('mail.mailers.smtp.transport', $this->mail_mailer);
} catch (\Exception) {
}
}
}

View file

@ -93,7 +93,7 @@ return [
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
'name' => env('MAIL_FROM_NAME', 'ControlPanel'),
],
/*