Implement custom login page settings with validation and image upload support

This commit is contained in:
Focuslinkstech 2025-03-18 13:07:19 +01:00
parent 84500cdfc9
commit 1cb0e30e6b

View File

@ -248,29 +248,6 @@ switch ($action) {
$_POST['hide_pg'] = _post('hide_pg', 'no'); $_POST['hide_pg'] = _post('hide_pg', 'no');
$_POST['hide_aui'] = _post('hide_aui', 'no'); $_POST['hide_aui'] = _post('hide_aui', 'no');
foreach ($_POST as $key => $value) {
$d = ORM::for_table('tbl_appconfig')->where('setting', $key)->find_one();
if ($d) {
$d->value = $value;
$d->save();
} else {
$d = ORM::for_table('tbl_appconfig')->create();
$d->setting = $key;
$d->value = $value;
$d->save();
}
}
_log('[' . $admin['username'] . ']: ' . Lang::T('Settings Saved Successfully'), $admin['user_type'], $admin['id']);
r2(getUrl('settings/app'), 's', Lang::T('Settings Saved Successfully'));
}
break;
case 'login-page-post':
if ($_app_stage == 'Demo') {
r2(getUrl('settings/app'), 'e', 'You cannot perform this action in Demo mode');
}
// Login page post // Login page post
$login_page_title = _post('login_page_head'); $login_page_title = _post('login_page_head');
$login_page_description = _post('login_page_description'); $login_page_description = _post('login_page_description');
@ -296,13 +273,6 @@ switch ($action) {
return; return;
} }
$settings = [
'login_page_head' => $login_page_title,
'login_page_description' => $login_page_description,
'login_Page_template' => $login_Page_template,
'login_page_type' => $login_page_type,
];
$image_paths = []; $image_paths = [];
$allowed_types = ['image/jpeg', 'image/png']; $allowed_types = ['image/jpeg', 'image/png'];
@ -312,7 +282,7 @@ switch ($action) {
$extension = pathinfo($_FILES['login_page_favicon']['name'], PATHINFO_EXTENSION); $extension = pathinfo($_FILES['login_page_favicon']['name'], PATHINFO_EXTENSION);
$favicon_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('favicon_') . '.' . $extension; $favicon_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('favicon_') . '.' . $extension;
File::resizeCropImage($_FILES['login_page_favicon']['tmp_name'], $favicon_path, 16, 16, 100); File::resizeCropImage($_FILES['login_page_favicon']['tmp_name'], $favicon_path, 16, 16, 100);
$settings['login_page_favicon'] = basename($favicon_path); // Save dynamic file name $_POST['login_page_favicon'] = basename($favicon_path); // Save dynamic file name
if (file_exists($_FILES['login_page_favicon']['tmp_name'])) if (file_exists($_FILES['login_page_favicon']['tmp_name']))
unlink($_FILES['login_page_favicon']['tmp_name']); unlink($_FILES['login_page_favicon']['tmp_name']);
} else { } else {
@ -326,7 +296,7 @@ switch ($action) {
$extension = pathinfo($_FILES['login_page_wallpaper']['name'], PATHINFO_EXTENSION); $extension = pathinfo($_FILES['login_page_wallpaper']['name'], PATHINFO_EXTENSION);
$wallpaper_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('wallpaper_') . '.' . $extension; $wallpaper_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('wallpaper_') . '.' . $extension;
File::resizeCropImage($_FILES['login_page_wallpaper']['tmp_name'], $wallpaper_path, 1920, 1080, 100); File::resizeCropImage($_FILES['login_page_wallpaper']['tmp_name'], $wallpaper_path, 1920, 1080, 100);
$settings['login_page_wallpaper'] = basename($wallpaper_path); // Save dynamic file name $_POST['login_page_wallpaper'] = basename($wallpaper_path); // Save dynamic file name
if (file_exists($_FILES['login_page_wallpaper']['tmp_name'])) if (file_exists($_FILES['login_page_wallpaper']['tmp_name']))
unlink($_FILES['login_page_wallpaper']['tmp_name']); unlink($_FILES['login_page_wallpaper']['tmp_name']);
} else { } else {
@ -340,15 +310,14 @@ switch ($action) {
$extension = pathinfo($_FILES['login_page_logo']['name'], PATHINFO_EXTENSION); $extension = pathinfo($_FILES['login_page_logo']['name'], PATHINFO_EXTENSION);
$logo_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('logo_') . '.' . $extension; $logo_path = $UPLOAD_PATH . DIRECTORY_SEPARATOR . uniqid('logo_') . '.' . $extension;
File::resizeCropImage($_FILES['login_page_logo']['tmp_name'], $logo_path, 300, 60, 100); File::resizeCropImage($_FILES['login_page_logo']['tmp_name'], $logo_path, 300, 60, 100);
$settings['login_page_logo'] = basename($logo_path); // Save dynamic file name $_POST['login_page_logo'] = basename($logo_path); // Save dynamic file name
if (file_exists($_FILES['login_page_logo']['tmp_name'])) if (file_exists($_FILES['login_page_logo']['tmp_name']))
unlink($_FILES['login_page_logo']['tmp_name']); unlink($_FILES['login_page_logo']['tmp_name']);
} else { } else {
r2(getUrl('settings/app'), 'e', 'Logo must be a JPG, JPEG, or PNG image.'); r2(getUrl('settings/app'), 'e', 'Logo must be a JPG, JPEG, or PNG image.');
} }
} }
foreach ($_POST as $key => $value) {
foreach ($settings as $key => $value) {
$d = ORM::for_table('tbl_appconfig')->where('setting', $key)->find_one(); $d = ORM::for_table('tbl_appconfig')->where('setting', $key)->find_one();
if ($d) { if ($d) {
$d->value = $value; $d->value = $value;
@ -360,9 +329,10 @@ switch ($action) {
$d->save(); $d->save();
} }
} }
_log('[' . $admin['username'] . ']: ' . Lang::T('Settings Saved Successfully'), $admin['user_type'], $admin['id']);
_log('[' . $admin['username'] . ']: ' . Lang::T('Login Page Settings Saved Successfully'), $admin['user_type'], $admin['id']); r2(getUrl('settings/app'), 's', Lang::T('Settings Saved Successfully'));
r2(getUrl('settings/app'), 's', Lang::T('Login Page Settings Saved Successfully')); }
break; break;
case 'localisation': case 'localisation':
@ -590,7 +560,7 @@ switch ($action) {
} }
//allow see himself //allow see himself
if ($admin['id'] == $id) { if ($admin['id'] == $id) {
$d = ORM::for_table('tbl_users')->where('id', $id)->find_array($id)[0]; $d = ORM::for_table('tbl_users')->where('id', $id)->find_array()[0];
} else { } else {
if (in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) { if (in_array($admin['user_type'], ['SuperAdmin', 'Admin'])) {
// Super Admin can see anyone // Super Admin can see anyone