1. 10 Oct, 2020 1 commit
  2. 24 Jul, 2019 2 commits
    • Giorgos Kazelidis's avatar
    • Giorgos Kazelidis's avatar
      - Added the copyright to README.md as well as to the templates (along with the... · 04b7f896
      Giorgos Kazelidis authored
      - Added the copyright to README.md as well as to the templates (along with the relative Git repository URL) via base.html
      - Created LICENSE.txt that contains the GNU General Public License version 2 and referenced the latter in README.md
      - Added the "Local settings file" section to settings.py and inserted local_settings.py to .gitignore
      - Set DATABASES["default"]["OPTIONS"]["init_command"]#collation_connection to utf8mb4_unicode_520_ci in settings.py
      - Changed the argument of the Apache ServerAlias directive from "userbase.softlab.ntua.gr" to "slub.softlab.ntua.gr slub.softlab.ece.ntua.gr" as shown in the "INSTALLING AND CONFIGURING THE APACHE WEB SERVER TO DEPLOY THE PROJECT" section of README.md
      04b7f896
  3. 06 Jun, 2019 1 commit
  4. 05 Jun, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Updated the values of SECURE_BROWSER_XSS_FILTER, SECURE_CONTENT_TYPE_NOSNIFF... · 32efc5ac
      Giorgos Kazelidis authored
      - Updated the values of SECURE_BROWSER_XSS_FILTER, SECURE_CONTENT_TYPE_NOSNIFF and X_FRAME_OPTIONS settings according to the Django deployment checklist
      - Moved the production_logs directory directly from the Django application directory (userbase/slub/usermerge) to the Git repository (userbase) to facilitate bulk modifications to the Django project (userbase/slub/slub) or application files, e.g. via update/replacement of the Django root directory (userbase/slub) itself, in production without affecting any already existing, independent production log files
      - Ensured that the production_logs directory always exists in production to avoid raising FileNotFoundError exceptions when concurrent-log-handler attempts to output messages to the production log files
      - Installed the mod_wsgi module in virtual environment context to enable project deployment with the Apache web server and included the relevant instructions in README.md
      - Omitted the "UPDATING THE PROJECT" section and updated the "LIST OF SUGGESTED TO-DO ACTIONS" one in README.md
      - Added the "INSTALLING AND CONFIGURING THE APACHE WEB SERVER TO DEPLOY THE PROJECT", "ACCESSING THE DJANGO ADMIN SITE OR RUNNING THE PROJECT APPLICATION (AFTER STARTING THE APACHE WEB SERVER)" and "CHECKLIST AND TIPS FOR PROJECT DEPLOYMENT" sections to README.md
      - Made many project-deployment-specific (e.g. replaced "pip3 install virtualenv", "~/Desktop" and "pip install" with "sudo apt install virtualenv", "LOCAL_REPO_CONTAINER_DIR" and "$(which pip) install" respectively) as well as general corrections/enhancements (e.g. replaced "apt-get" and "/usr/bin/python3" with "apt" and "$(which python3)" respectively) to the instructions of README.md
      - Made favicon.ico, apple_touch_icon.png, tick.png and user_report_creation.html non-executable (changed their permissions from 755 to 644) for enhanced security
      32efc5ac
  5. 23 May, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Wrapped the edit_user_profile(), recover_user_profile() and... · 0320cadc
      Giorgos Kazelidis authored
      - Wrapped the edit_user_profile(), recover_user_profile() and import_user_credentials() views in the atomic() decorator to run database modification queries within an atomic transaction
      - Utilized SELECT FOR UPDATE queries in the edit_user_profile() and recover_user_profile() views to lock database rows (model instances) intended for update during an atomic transaction
      - Added the "PROJECT OVERVIEW" and "LIST OF SUGGESTED TO-DO ACTIONS" parts to README.md
      - Added documentation links to the "ENVIRONMENT SPECIFICATIONS" part of README.md
      - Changed the names of the Django root and project directories from myprj to slub
      - Changed the name of helper.py module to helpers.py
      0320cadc
  6. 21 May, 2019 1 commit
  7. 19 May, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Created the session continuation template and modified the... · d8ab8257
      Giorgos Kazelidis authored
      - Created the session continuation template and modified the display_default_login_page() view to display the former when it is accessed by (logged-in) instances of the application user models (usermerge.{User/Admin})
      - Modified the log_in() view to deny access to (logged-in) instances of the application user models (usermerge.{User/Admin})
      - Modified the display_default_login_page(), log_in() and log_out() views to deny access to (logged-in) instances of Django's default user model (auth.User)
      - Defined the has_empty_profile() method for the usermerge.User model and used it in templates and views to enhance functionality and readability
      - Omitted the redundant user_id parameters/arguments from (i) the application site URLs defined in the URLconf and used in templates/views and (ii) the corresponding view declarations (the current/session user can be specified in any view via the user attribute of the associated request)
      - Utilized the recov_user_id value of the session data in the _display_user_profile_recovery_success_message() and _display_user_profile_recovery_error_messages() helper functions as well as the search_for_recovery_user_profile() and recover_user_profile() views to enhance functionality and security
      - Hooked the Django admin site into the /django-admin/ URL (instead of the default one, /admin/) to distinguish its pages from the ones that refer to the usermerge.Admin model and have an /admin/ URL prefix
      d8ab8257
  8. 13 May, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Defined __str__() methods for all the application models · 95a43695
      Giorgos Kazelidis authored
      - Removed the last_login field from the User model, inserted it to the Registry model (a User instance retains now one last_login value for each Platform instance that is associated with it via the corresponding Registry instance) and modified the emission arguments of the user_logged_in signal for logged-in User instances
      - Constrained the email fields of the User/Admin models and user profile edit/recovery forms to a maximum length of 100 characters
      - Constrained the username and password fields of the login form to a minimum length of 8 characters
      - Omitted the redundant ECE-NTUA platform from the test Platform instances that are used to populate the usermerge_platform table of usermergeDB
      - Omitted the username format check {piYYbSSS with SSS <> 000} of the login form for the Novice and Grader platforms as there can exist valid usernames for them that are not in the aforementioned format
      - Enabled the Django admin site, registered all the application models to it and provided instructions on accessing it
      - Defined the User_login_required() and Admin_login_required() decorators and used them for enhanced access control in the majority of views
      - Reduced the database queries made in recover_user_profile() view to enhance its performance
      - Added the production_logs folder to the .gitignore file
      95a43695
  9. 23 Apr, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Implemented the user profile edit, search and recovery tasks · e324d683
      Giorgos Kazelidis authored
      - Created and used a library of helper functions that refer (mainly) to views
      - Created and used a library of validators that refer (mainly) to forms
      - Corrected/enhanced the existing views - used TemplateResponse objects instead of calling the render() shortcut function, inserted post-validation error codes in template contexts when needed, etc.
      - Deleted the logout template and used redirection to the login template on logout
      - Corrected the generic URL format
      - Enhanced the documentation of templates and modules
      e324d683
  10. 04 Mar, 2019 1 commit
    • Giorgos Kazelidis's avatar
      - Installed concurrent-log-handler and set up the logging system · e6f4aa1b
      Giorgos Kazelidis authored
      - Loaded the time zone tables in mysql database
      - Added Unicode/UTF-8 data support in usermergeDB and templates
      - Replaced CLASS_SESSION_KEY with PLATFORM_SESSION_KEY in the session data as the latter indicates both user model and platform
      - Corrected the session auth hash calculation method of both user models to take password (and platform, in case of User model) into account
      - Enhanced template structure and functionality by using XHTML5 syntax, new HTML5 semantic elements, html5shiv.js, normalize.css, field labels, appropriate images/icons, etc. and moving internal CSS to base.css
      - Made some minor changes in models (changed max_length of first_name and last_name fields) and database connection options (introduced SET_DEFAULT_STORAGE_ENGINE_TO_INNODB variable and changed SQL mode)
      e6f4aa1b
  11. 28 Jun, 2018 1 commit
    • Giorgos Kazelidis's avatar
      - Corrected some minor display issues in login template · 219ab1a8
      Giorgos Kazelidis authored
      - Created the DB schema/models and added Greek support to the initiated DB
      - Created a script to populate DB with test data
      - Implemented the authentication, login and logout back-ends (modified built-in auth, backends and middleware modules) as well as the relative front-ends (user home, admin home and logout templates)
      - Implemented some basic validation checks and error handling for the login form
      - Created custom HTTP error (400, 403, 404, 500) templates
      - Added new instructions to README.md
      219ab1a8
  12. 21 May, 2018 1 commit
  13. 07 May, 2018 2 commits