From 64da2d519297302400930785a968ac3a19bddfb3 Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Fri, 26 May 2023 04:44:45 +0300 Subject: custom fonts on pdf; ticket system for CSRF elimination; and more --- public/app/config/setup_application.php | 2 + public/app/controllers/Office.php | 66 +++++++- public/app/views/components/header_includes.php | 12 +- public/app/views/js/pdf-designer/application.php | 142 +++++++++++++++++ public/app/views/js/pdf-designer/penalty.php | 0 public/app/views/js/pdf/application-styler.php | 191 ----------------------- public/app/views/js/pdf/penalty-styler.php | 0 public/app/views/js/submit/application-form.php | 62 ++++++-- public/app/views/js/submit/penalty-form.php | 74 +++++++++ public/app/views/templates/application.php | 136 ++++------------ public/assets/css/class.css | 3 + public/assets/fonts/FiraMono-Regular.ttf | Bin 0 -> 162472 bytes public/assets/fonts/FiraSans-Light.ttf | Bin 0 -> 297556 bytes public/assets/fonts/FiraSans-Medium.ttf | Bin 0 -> 304820 bytes public/assets/fonts/FiraSans-SemiBold.ttf | Bin 0 -> 334332 bytes 15 files changed, 369 insertions(+), 319 deletions(-) create mode 100644 public/app/views/js/pdf-designer/application.php create mode 100644 public/app/views/js/pdf-designer/penalty.php delete mode 100644 public/app/views/js/pdf/application-styler.php delete mode 100644 public/app/views/js/pdf/penalty-styler.php create mode 100644 public/app/views/js/submit/penalty-form.php create mode 100644 public/assets/fonts/FiraMono-Regular.ttf create mode 100644 public/assets/fonts/FiraSans-Light.ttf create mode 100644 public/assets/fonts/FiraSans-Medium.ttf create mode 100644 public/assets/fonts/FiraSans-SemiBold.ttf diff --git a/public/app/config/setup_application.php b/public/app/config/setup_application.php index a5b7557..a9f48af 100644 --- a/public/app/config/setup_application.php +++ b/public/app/config/setup_application.php @@ -7,6 +7,8 @@ * ----------------------------------------------------------------------------- */ +define('DEFAULT_SCHOOL', '1ο Γυμνάσιο Ραφήνας'); + // email setup ///////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- diff --git a/public/app/controllers/Office.php b/public/app/controllers/Office.php index d4b0217..800247e 100644 --- a/public/app/controllers/Office.php +++ b/public/app/controllers/Office.php @@ -199,8 +199,13 @@ class Office { ['name' => 'user_id', 'value' => $user_id] // pass user identity ]); - // #5: render the view ------------------------------------------------- - Render::view('templates/application', ['form' => $form]); + // #5: create ticket; then render the view ----------------------------- + $ticket = self::create_ticket($ticket); // save ticket + Render::view('templates/application', [ + 'form' => $form, + 'applier' => (($userData['prefix'] == 'η') ? 'Η Αιτούσα' : 'Ο Αιτών'), + 'ticket' => $ticket + ]); } @@ -255,6 +260,63 @@ class Office { + + ## ------------------------------------------------------------------------- + ## + ## TICKET METHODS (create, remove) + ## tickets eliminate CSRF attacks + ## + ## ------------------------------------------------------------------------- + + + /** create_ticket + * + * creates a tickef and saves it into session + * + * @return string new ticket (MD5) + */ + private static function create_ticket() + { + // create ticket + $tick = md5( time() . Auth::user_data() . rand(1,65536) ); + // then save to session + if (isset($_SESSION['tickets'])) { + $tickets = explode(',', $_SESSION['tickets']); + $tickets[] = $tick; + $_SESSION['tickets'] = implode(',', $tickets); + + } else { + $_SESSION['tickets'] = $tick; + } + + return $tick; + } + + /** remove_ticker + * + * removes a ticket and return true; + * if ticket not exists return fase; + * + * @param string $t : ticket (MD5) + * @return boolean + */ + private static function remove_ticket($t) + { + if (isset($_SESSION['tickets'])) { + $tickets = explode(',', $_SESSION['tickets']); + if (($key = array_search($t, $tickets)) !== false) { + unset($tickets[$key]); + $_SESSION['tickets'] = implode(',', $tickets); + return true; + } + } + return false; + } + + + + + ## ------------------------------------------------------------------------- ## ## ADMIN METHODS (insert, updated etc.) diff --git a/public/app/views/components/header_includes.php b/public/app/views/components/header_includes.php index 15685b5..48f63c6 100644 --- a/public/app/views/components/header_includes.php +++ b/public/app/views/components/header_includes.php @@ -51,9 +51,19 @@ + + + + + + diff --git a/public/app/views/js/pdf-designer/application.php b/public/app/views/js/pdf-designer/application.php new file mode 100644 index 0000000..1d77c67 --- /dev/null +++ b/public/app/views/js/pdf-designer/application.php @@ -0,0 +1,142 @@ + \ No newline at end of file diff --git a/public/app/views/js/pdf-designer/penalty.php b/public/app/views/js/pdf-designer/penalty.php new file mode 100644 index 0000000..e69de29 diff --git a/public/app/views/js/pdf/application-styler.php b/public/app/views/js/pdf/application-styler.php deleted file mode 100644 index 35077ef..0000000 --- a/public/app/views/js/pdf/application-styler.php +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/public/app/views/js/submit/penalty-form.php b/public/app/views/js/submit/penalty-form.php new file mode 100644 index 0000000..fcf9093 --- /dev/null +++ b/public/app/views/js/submit/penalty-form.php @@ -0,0 +1,74 @@ + diff --git a/public/app/views/templates/application.php b/public/app/views/templates/application.php index 6e36d00..4611a2d 100644 --- a/public/app/views/templates/application.php +++ b/public/app/views/templates/application.php @@ -25,7 +25,18 @@
- +
+
+ +
+
+ +
+
@@ -74,8 +85,12 @@ --> @@ -102,12 +117,18 @@ ?> + + + - + diff --git a/public/assets/css/class.css b/public/assets/css/class.css index 201f13b..51bdad9 100644 --- a/public/assets/css/class.css +++ b/public/assets/css/class.css @@ -62,6 +62,9 @@ html, body { } +.btn-preview { border: 1px solid #aaa7; background: #ddd; } +.btn-preview:hover { border: 1px solid #7777; background: #f5f5f5; } + /** micro-positioning classes * ----------------------------------------------------------------------------- */ diff --git a/public/assets/fonts/FiraMono-Regular.ttf b/public/assets/fonts/FiraMono-Regular.ttf new file mode 100644 index 0000000..9e9a81b Binary files /dev/null and b/public/assets/fonts/FiraMono-Regular.ttf differ diff --git a/public/assets/fonts/FiraSans-Light.ttf b/public/assets/fonts/FiraSans-Light.ttf new file mode 100644 index 0000000..3630133 Binary files /dev/null and b/public/assets/fonts/FiraSans-Light.ttf differ diff --git a/public/assets/fonts/FiraSans-Medium.ttf b/public/assets/fonts/FiraSans-Medium.ttf new file mode 100644 index 0000000..60a8a0b Binary files /dev/null and b/public/assets/fonts/FiraSans-Medium.ttf differ diff --git a/public/assets/fonts/FiraSans-SemiBold.ttf b/public/assets/fonts/FiraSans-SemiBold.ttf new file mode 100644 index 0000000..cfab692 Binary files /dev/null and b/public/assets/fonts/FiraSans-SemiBold.ttf differ -- cgit v1.2.3