Skip to content
Snippets Groups Projects
  1. Apr 10, 2018
  2. Apr 06, 2018
  3. Feb 12, 2018
  4. Feb 09, 2018
    • Benjamin Bertrand's avatar
      Add domain table · f627e2c9
      Benjamin Bertrand authored
      - add domain_id on NetworkScope table to define a default domain
      - add domain_id on Network (default to the Network Scope one)
      
      Fixes INFRA-194
      f627e2c9
  5. Jan 16, 2018
  6. Jan 12, 2018
    • Benjamin Bertrand's avatar
      Cache user retrieval · 0efae3a3
      Benjamin Bertrand authored
      The user_id is stored in the flask session. On every page load, we query
      the database to get:
      - the user objet (user_account table)
      - the user's groups (group table) to know what the user can access
      
      If we try to cache the user_load function, the following error is raised
      when retrieving the groups:
      sqlalchemy.orm.exc.DetachedInstanceError: Parent instance <User at
      0x7f51e050a940> is not bound to a Session; lazy load operation of
      attribute 'grp' cannot proceed
      
      The groups from AD are only stored to map them with CSENTRY_LDAP_GROUPS.
      We don't do any query on them (get all users from one group).
      As we always query them with one user, it's more efficient to store them
      in the user_account table as an array than in a separate table.
      This allows to easily cache the load_user function.
      
      Note that we have to remember to add the current_user to the sqlalchemy session if
      we want to modify it or access a relationship (like tokens)!
      
      The load_user function is now cached for 30 minutes. This decreases a
      lot the number of database queries.
      
      Fix INFRA-156
      0efae3a3
  7. Jan 05, 2018
  8. Jan 02, 2018
  9. Dec 21, 2017
    • Benjamin Bertrand's avatar
      Add API to create users · 5e8b9d5c
      Benjamin Bertrand authored
      Required to create users when importing items from JIRA.
      
      Renamed blueprint from "users" to "user" to be consistent with other
      blueprints (inventory and network).
      5e8b9d5c
    • Benjamin Bertrand's avatar
      Refactor API · 77468350
      Benjamin Bertrand authored
      Split API in different blueprints like for the web UI:
      - users (login)
      - inventory
      - network
      
      Use version in API url (api/v1) to make future changes easier without
      breaking backward compatibility
      77468350
  10. Dec 15, 2017
  11. Dec 14, 2017
  12. Dec 13, 2017
    • Benjamin Bertrand's avatar
      Add server side session using Flask-Session · d5d3530a
      Benjamin Bertrand authored
      In Flask, session data are stored in a cookie by default.
      Using a server side session, there is no risk of putting too much data
      in the session and transmissting a big cookie on every request
      (only an id is sent in the cookie).
      
      Redis is used as backend (without persistent storage).
      d5d3530a
    • Benjamin Bertrand's avatar
      Split main blueprint · 014f3734
      Benjamin Bertrand authored
      main blueprint splitted in:
      - inventory
      - networks
      014f3734
    • Benjamin Bertrand's avatar
      Refactor database schema · a5963f99
      Benjamin Bertrand authored
      - Rename Host to Interface
      - Create new Host table to group interfaces
      a5963f99
    • Benjamin Bertrand's avatar
      Add token revoking · c5965f94
      Benjamin Bertrand authored
      - All created tokens are stored in the database.
        To revoke a token, we just delete it from the database.
        Tokens not found in the database are thus considered unvalid / revoked.
      
      - Add button to copy generated token to the clipboard
      
      - Redesign profile page
      c5965f94
  13. Dec 06, 2017
  14. Nov 20, 2017
  15. Nov 14, 2017
    • Benjamin Bertrand's avatar
      Fix admin interface · 8dc4a249
      Benjamin Bertrand authored
      - replace TextAreaField by StringField for several Text columns
      - add filter to replace empty string by None on optional Text and INET
        fields
      8dc4a249
  16. Nov 13, 2017
    • Benjamin Bertrand's avatar
      Cleaning · 107bba8d
      Benjamin Bertrand authored
      Don't override the Admin view __init__ method for consistency.
      Avoid having to import models in admin/views.py
      107bba8d
    • Benjamin Bertrand's avatar
      Use StringField for QRCode name in admin forms · 3a1e1ad8
      Benjamin Bertrand authored
      CIText is displayed as a TextAreaField by flask-admin.
      Override it to use StringField.
      3a1e1ad8
    • Benjamin Bertrand's avatar
      Add Network/Host/Mac tables · eb988dba
      Benjamin Bertrand authored
      - A network defines an available range of IP addresses
      - A host defines an IP address and name
      - A host is always linked to a network
      - A mac address is always linked to an item (physical equipment)
      - A mac address can be linked to one host (IP)
      - An item can have several mac addresses
      eb988dba
  17. Nov 10, 2017
  18. Nov 03, 2017
  19. Sep 08, 2017
  20. Aug 22, 2017
  21. Aug 21, 2017
  22. Aug 18, 2017
  23. Aug 09, 2017
  24. Jul 20, 2017
  25. Jul 19, 2017
    • Benjamin Bertrand's avatar
      Fix hash computation in admin view · 74437b80
      Benjamin Bertrand authored
      The hash is supposed to be computed in the __init__ method of Item.
      But flask-admin never passes any parameter when creating the model class.
      The attributes are changed after creation.
      
      When creating an item in the admin view, we use the on_model_change
      method to update the hash.
      
      There might be a better way to avoid this code duplication.
      This works for now.
      74437b80
    • Benjamin Bertrand's avatar
      Fix admin view · aeaab0a7
      Benjamin Bertrand authored
      - restrict admin view to admin users only
      - the models shall only take optional parameters for flask-admin to work
      - the models shall implement the __str__ method to be displayed properly
        in the admin view
      aeaab0a7
    • Benjamin Bertrand's avatar
      Add API blueprint · 5f41066b
      Benjamin Bertrand authored
      5f41066b
    • Benjamin Bertrand's avatar
      Initial commit · 5c62905e
      Benjamin Bertrand authored
      5c62905e
Loading