* install django-grainy
* nsp to grainy first iteration
* nsp to grainy second iteration
* grainy and django-grainy pinned to latest releases
* Fix typo
* Update djangorestframework, peeringdb, django-ratelimit
* Rewrite login view ratelimit decorator
* Relock pipfile
* add list() to make copy of dictionaries before iterating
* relock pipfile with python3.9
change docker to use python3.9
* add ordering to admin search queryset for deskproticket and email
* add org api key and begin to write tests
* additional key tests
* add drf-api-keys to pipfile
* Wire orgapikey to modelviewsetpermissions
* Update api key helper functions
* add put test
* Add Org API key tab to frontend
* Add user api key model
* Update user key handling and tests
* Update APIPermissionsApplicator to make it work w requests
* Add org api key perm panel
* add org key permissions
* Add user api key views
* Add templates for handling user api key (adding, not revoking)
* relock pipfile
* assorted fixes and tweaks
* Add general user group permissions and org user group perms
* refactor org api key perms
* Add tests for api keys
* Add docstrings to permissions helpers
* Add api key examples
* squash migrations
* remove custom api key header config
* Change api key test setup
* Update permissions for grainy change
* Bump up pipfile and pipfile.lock
* Add API Key to Verification Queue Item
* Delete travis
* Add workaround to Dockerfile
* update pipfile and sort out migrations
* Add comment to Dockerfile
* Re-add API Key migrations
* Add locale to .gitignore
* remove suggest functionality from ix
* Update test to recognize that IX api no longer has suggest function
* Add test to outlaw POSTing an IX w its org equal to the suggest entity org
* Add meta information geowarning
* Add alert to demonstrate UI
* Add error to fac update
* Add template warning for geovalidation
* Add geowarning meta js
* cover absent meta_response test case
* Update styles for geowarning
* refactor geotag warning implementation
* null lat and long on unsuccessful geo locate
* modify geovalidation frontend update
* Add deskproticket model email field
* Add missing span
* add email to org keys
* Add email to org key tests
* update serializer with rdap validation wrapper
* update admin for api keys
* Enable writing an email as part of org key creation
* Add email validation to org api key form
* fix css style on perm row
* Add suggested info to api response
* display suggested address on frontend
* add needs geocode to serializer
* save lat long on forward geonormalization
* add address suggestion submit button
* Add suggested address popin to ADD facility form
* Fix css
* add lat and long rounding to geocodenabled model clean method
* add migration and regression test for lat long decimal db constraint
* Add another regression test for model decimal places
* Get deskpro functions passing isort and flake
* Update ticket_queue_deletion_prevented
* update ticket_queue_deletion_prevented for use with org api key
* add template for org key dpt from asnauto skipvq
* Update deskproticket for rdap error
* add facility aka
* add aka to serializer and views
* black and isort test api keys
* fix typo in org key deskpro template
* skip or rewrite unapplicable org key tests, and add as_set tests
* adjust api key test comments
* Add vqi_notify to signals
* Add reversion comments for api keys and helper function
* update how org keys are added to verification queue items
* rename verification queue item fk from api_key to org_key
* fix group id error
* update key tests with correct http header info
* check both user and key, not just user
* templates fiex
* adapt deskpro integration to work with email only
* make org api keys editable for desc and email
* pipfile relock
* edit test setupdata settings for groups
* Change comment to signify we don't need to remove code
* address untranslated accept button
* Add docstrings to the serializer functions
* Add loading shim
* Add migration for all longname and aka
* Add aka and long name to views and serializers
* delete migration w decimals
* standardize serializer lat and long fields
* Add clean rounding for lat and long
* fix serializer error
* api key admin improvements
* fix linebreak in user api key form
* remove debug prints
* Add rounding util
* Add rounding to lat and long fields
* remove 'clean' from geocode method (logic now in admin form)
* remove erroneous tests
* revert serializer changes
* Fix migrations
* Add long name and aka to admin models
* Update API key docs
* Add documentation for api keys
* fix typo
* fix org api key revoke broken by editable api keys
* doc tweaks
* doc tweaks
* doc tweaks
* black format
* fix migration hierarchy
* docs
* docs
* api key permissions screenshot
* formatting
* formatting
* padding fixed
* remove one image
* fix get_user_from_request type checking
take out POST only valdiator for entity suggest
* didnt mean to commit the django-peeringdb mount
* fix suggest on PUT net
fix tests
* black formatting
* update org key permission template
* install rust for cryptography
* pipfile relock (django-peeringdb to 2.6)
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
* Add model check so you cannot double approve an admin org affiliation
* remove django namespace perms form INSTALLED_APPS
* script to fix users affected by #930
* black formatted
* add nsp back to installed apps for now
remove remaining nsp references
* fix initial_data fixtures (nsp->grainy)
* fixes#934: privacy permissions scope for pocs and ixf urls
* test that poc pirvacy scope works correctly on GUI (#934)
* black format
Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* install django-grainy
* nsp to grainy first iteration
* Fix validation error message overflow
* Add migration, update views.py and template to add help_text to UI
* nsp to grainy second iteration
* grainy and django-grainy pinned to latest releases
* deskpro ticket cc (#875)
* black formatting
* move ac link to bottom for ticket body
* Fix typo
* Update djangorestframework, peeringdb, django-ratelimit
* Rewrite login view ratelimit decorator
* Relock pipfile
* add list() to make copy of dictionaries before iterating
* respect ix-f url visibilty in ix-f conflict emails
* Add type coercion to settings taken from environment variables
* Add bool handling
* relock pipfile with python3.9
change docker to use python3.9
* Check bool via isinstance
* add ordering to admin search queryset for deskproticket and email
* update settings with envvar_type option
* Add tooltips to add ix and add exchange views (in org)
* Add tooltip to suggest fac view
* get phone information in view
* add missing migration
* add migration and make org a geo model
* Wire normalization to put/create requests for Facility
* Update admin with new address fields
* Refactor serializer using mixin
* Add floor and suite to address API
* Write command to geonormalize existing entries
* Remove unnecessary method from model
* Add floor and suite to views
* Add ignore geo status
* Force refresh for fac and org updates
* adjust frontend typo
* add checking if update needs geosync
* redo error handling for geosync
* remove save keyword from geonormalize command script
* change raw_id_fields
* alternate autocomplete lookup field depending on where inline is called
* remove unnecessary error handling
* Add csv option
* Fix bug
with None vs empty string
* add regex parsing for suite and floor conversion
* Add migration that removes geo error as a field
* add geostatus update to command
* Ignore suite floor and address2 changes for api normalization
* update geomodel by removing geo_error
* Black models.py
* Black serializers.py
* remove geocode error from admin
* Add function for reversing pretty speed
* add conversion to export method
* fix typo
* fix speed value feedback after submit
* remove conditional
* Add error handling to create endpoint
* Refine floor and suite parsing regex
* Add geocoding tests
* Add json for tests
* IX-F Importer: Bogus output of "Preview" tool #896
* remove cruft
* black formatting
* IX-F Importer: history of changes per ixlan & netixlan #893
* 6 add geocode to org view
* 4 update geocode without refresh
* Update error display
* Fix bug with formatting translated string
* Add DateTimeFields to model
* Add update signals
* add last updated fields to views and serializers
* Add last updated model migration
* Add the data migration for last updated fields
* add test that tests a normal org user with create org permissions
* grainy to 1.7
django grainy to 1.9.1
* Fix formatting issues
* Adjust var names
* Refactor signals
* Temporary: save override from network model
* Empty vlan lists no longer cause error
* typo in ixf.py
* typo in admin
* Typos in model verbose names
* Add serializer IXLAN validation for ixf_ixp_import_enabled
* Add model validation to IXLan
* relock pipfile
* relock pipfile
* begin signal test file
* Remove full clean from save in ixlan
* use post_reversion_commit signal instead
* remove redundant save override
* remove cruft / debug code
* Add signal tests
* exclude organizations with city missing from commandline geosync
* Skip geosync if the only address information we have is a country
* initial commit for vlan matcher in importer
* Add more tests and remove unused imports
* update tests
* Actually add vlan matching to importer
* Add type checking for speed list and state
* Change how we register connection.state
* add bootstrap options
* add rdap cache command
* remove outdated perm docs
* rdap from master and relock
* propagate rdap settings to peeringdb.settings
* add loaddata for initial fixtures
* user friendly error message on RdapNotFound errors (#497)
* update rdap errors
* django-peeringdb to 2.5.0 and relock
* rdap to 1.2.0 and relock
* fix migration hierarchy
* add ignore_recurse_errors option
* add missing fields to mock
remove cruft missed during merge
* rdap to 1.2.1
* dont geo validate during api tests
* fix tests
* Add test file
* fix merge
* RDAP_SELF_BOOTSTRAP to False while running tests
* black formatted
* run black
* add github actions
* add runs on
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
* remove log file writing from migration
* run tests on mysql
* fix tests (pt.1)
* fix tests (pt.2)
* fix all user_id errors in tests
* Fix geocode typo
* More test changes for mysql id issues
* Add coverage config that defines coverage db should go inside test folder
* update docs
* fix mysql user
* fix tests cli
* add mysql collate settings
* docs
* fix sync
* fix sync
* docs
* remove debug output
* remove XXX
* interim commit to move to dev box
* mv db local, rm after run
* updates for 724
* note layer error message and work around
* fix travis
* chown tests
* more travis fixes
* travis: touch Ctl/dev/.env
* write coverage report to ./coverage
* clean up docs
* formatting
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
* Fix local var error and add test
* Add error handling that mentions ixlan and update one test
* Add conditional
* test to reproduce #889 and fixes for #889
* Remove member type checking
* check requirement_of_id instead of requirement_of as that can raise an exception if the relationship isn't cached
* ix-f suggestion to modify netixlan to clear an ip field is now stated as "Clear IPvX address" instead of "Set IPvX address"
* handle multiple vlans for prefixes defined on ixlan
* rewording
* fix tests
* black formatted
Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* Add migrations for 463_745_775
* Black format the migration
* Bump up django_peeringdb version
* api require django-peeringdb 2.3.0.1 and later
* Set timezone to utc throughout sponsorship notifications
* Add government net type to existing migrtion
* Remove ixlan from peers at this exchange point
* Add new migration
* add backward migrtion
* Search on user__username not user object
* Black those changes
* Fix local erro bug
* Add test and fix speed update for deleted netixlan
* Handle attribute error
* Change language in email to reflect we don't email after x days
* Comment out EnvironmentSetting in django admin
* Disable the followup ticket and modify tests to correct deskproticket assertions
* exclude ixf tickets from deskpro publishing
* Add failing mock deskpro api and write a test with it
* Add anchor tags to notify-ixf-add
* a tags for conflict insert
* a tags for consolidated
* a tags modify
* a tags protocol conflict
* a tags remote changes
* a tags for remove
* a tags for resolved
* a tags source error
* Add target blank
* Add comment
* fix unhandled deskpro api errors
* Add mail attachment
* Remove strip_tags
* readd some strip_tags
* add explicit order for fields in admin control panel #861
* revert pretty_speed change
* Coerce is_rs_peer and operational to bool
* black formatted
* pipfile relock
Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* Update 0006_network_allow_ixp_update.py
fixes 'Sepcifies' typo in 0006_network_allow_ixp_update.py
* Update 0029_auto_20200401_1006.py
fixes 'Sepcifies' typo in 0029_auto_20200401_1006.py
* Update models.py
fixes 'Sepcifies' typo in models.py
* Update org_admin_views.py
fixes 'afiliation' typos in org_admin_views.py
* Update serializers.py
fix use of "it's" when it should instead be "its" in 'serializers.py'
* Update 0004_geocode_fields.py
correct use of "it's" to be "its" in '0004_geocode_fields.py', also fix spelling of 'syncronized'
* Update 0029_auto_20200401_1006.py
correct use of "it's" to be "its" in '0029_auto_20200401_1006.py', also fix spelling of 'syncronized'
* Update models.py
correct use of "it's" to be "its" in 'models.py', also fix spelling of 'syncronized'
* Update email_confirm.html
correct 're-initate' in email_confirm.html
* Update notify-pdb-admin-user-affil.txt
correct 'organzation' in 'notify-pdb-admin-user-affil.txt'
* Update op_create.md
correct 'organzation' in 'ip_create.md'
* Update notify-pdb-admin-asnauto-skipvq.txt
correct 'organzation' in 'notify-pdb-admin-asnauto-skipvq.txt'
* Update models.py
correct 'organzation' in 'models.py'
* Update notify-pdb-admin-asnauto-skipvq.txt
fix 'succesfully' in 'notify-pdb-admin-asnauto-skipvq.txt'
* Update views.py
fix 'succesfully' in 'views.py'
* Update pdb_migrate_ixlans.py
* Update models.py
several more replacements of "it's" with "its"
* Update rest.py
one more replacement of "it's" with "its"
* Update op_retrieve.md
replace "dont" with "don't"
* Update notify-org-admin-merge.txt
fix "dont" with "don't"
* Update error.html
fix "dont" with "don't"
* Update op_list.md
fix "dont" with "don't"
* Update serializers.py
fix "dont" with "don't"
* Update deskpro.py
fix "dont" with "don't"
* Update mock.py
fix "dont" with "don't"
* Update ixf.py
fix "dont" with "don't"
* Update admin.py
fix "dont" with "don't"
* Update api_schema.py
fix "dont" with "don't"
* Update signals.py
fix "dont" with "don't"
* Update views.py
fix "dont" with "don't"
* Update test_admin.py
fix "dont" with "don't"
* Update pdb_api_test.py
fix "dont" with "don't"
* Update models.py
fix "dont" with "don't"
* revert to "IXP" in help text
Co-authored-by: Theo Baschak <tbaschak@users.noreply.github.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* Add EmailMultiAlternatives import
* Add strip_tags import
* Add settings imports and new email test
* Add email increment to ixf and tests
* IX-F Importer: suggested update when it should be add + remove #832
* Take email increment out of if-else
* Add max and min speed settings
* Change validation check for models
* new speed validation
* Add basic user command
* Add pdb cleanup users tool
* Add pretty printing for speed
* Add users as a subparser
* add translation override to signals
* Add parser as parent of subparser
* refactor and change test
* Move override to cover single variable
* Add tooltip option for individual checkboxes
* address 'fix me' issue with field_help helper func
* Add zipcode validator and black format
* Make website required input but zipcode dependent on country
* Add net POC requirement to Netixlan serializer
* Website is now blank=False ie required in all forms
* refine error message
* Require email is not blank and add test
* Change error message
* add website and zipcode test, edit zipcode error message
* change placement of tooltip
* add question mark
* Add comment
* Add runtime error logging for ixp member import
* add uncaught error test
* delete two unused methods
* Rename test file and add different tests
* Add missing email imports (reproduces changes in hot_fix_gh_831)
* add resend methods
* Add missing email imports (reproduces changes in hot_fix_gh_831)
* Add pytest-mock to pipfile
* Add resend email mechanism
* Add email resending
* remove failing assertion
* fix for ticket_aged_proposals
* Wrap resending emails in conditional for commit
* Add resend email tests
* fix mail_Debug bug
* Figure out production mailing and resending settings
* Add stale info field
* default IXF_RESEND_FAILED_EMAILS to False
fix issue with sent being set even if email was not sent
fix issue with output stating resending of emails even if it wasnt
* IX-F Preview - shows the consolidated delete operation when it shouldn't (#824)
* black format (v 19.10)
* black formatting
* black formatting
* pipfile relock
* make changes from #825 play nice with changes from #833
* black to pipenv dev packages
Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* fix issue with ixlan serializer stemming from ixf_ixp_member_list_url being added to api (#829)
* add test for #829
Co-authored-by: Stefan Pratter <stefan@20c.com>
* [beta] IX-F importer: [showstopper]: Seeing 'Update' hint instead of 'Add' hint #816
* [beta] IX-F importer: list of hints should be case-independently sorted alphabetically #817
* [beta] IX-F importer: IX "Last Updated" timestamp is based on IX-F import time - not sure that is intended #812
* Improve soft delete error handling re: protectedactions
* Fix template bug
* Modify template again
* add a test to confirm ipaddr suggestions end up in template
* rebase #817 into this and adapt to changes in #817
* [beta] IX-F importer: notice about dismissed hints remains after no longer relevant #809
* Server Error 500 when deleting organisations #798
* black formatting
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: egfrank <elliot@20c.com>
* Make in_dfz a readonly field
* add migrations for in_dfz noop,
add validation error when trying to set in_dfz to false over api
fix template layout
* remove in_dfz from ixlanprefixinline admin
* fix error message
* black formatted
Co-authored-by: egfrank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
* [beta] IX-F importer: Adding entry results in 'The server rejected your data' #789
* [beta] IX-F importer: tooltip remains visible after clicking "Auto-resolve", also misspelling #788
* fix protocol-conflict notifications not going out if there are no other conflicts (#771)
* fix messy white-space in ix-f notificaiton emails (#790)
* add link to python regex documentation (#768)
* IX-F import preview when authenticating via basic auth broken #791
Re-add preview tests
* [beta] IX-F importer: Lack of "routeserver" status in IX-F JSON should imply "undefined" rather than "false" and result in no action #792
* speed not being present in the ix-f data should be ignored (#792)
* [beta] IX-F importer: ignore speed and is_rs_peer differences for now, but retain code #793
* do a simple dedupe of ip addresses before processing the ix-f export
remove email debug spam
* normalize ip addresses
bug fixes for protocol conflict
* fix typo and remove debug output
* bail if unable to reasonably dedupe duplicate ips in ix-f export data
* sanitization fixes
* reset ix error notification timer on successful import
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
* fix issue where ix-f import would raise suggestions ipaddresses not that ixlan (#764)
* IX-F Suggestions: Leaving the editor and returning to it via back button issues (#765)
* IX-F importer: Clicking "Preview" (IXP Update Tools) on /net/ page resulted in 170 ticket resolutions (#769)
More robust testing
* black formatting (was lost after pyupgrade)
* Add regex searching to deskpro ticket subjects
* Change operational error
* IX-F suggestions: consolidate delete+add (#770)
* Add reset functions to commandline tool
* Fix commandline tool bugs
* Fix reset commandline tool bugs
* add commandline tool
* Ixlan needs to be set for import commandline tool
* Add email model
* Add admin view to emails
* Allow network and ix to be null
* save emails as part of ixf import
* Add email model
* Add email delete
* add iregex search and better comments
* fix ixlan selection for import
* redefine migration dependencies for this branch
* only enable search w start and end char
* Add caption to regex search
* Remove delete all ixfmemberdata option
* [beta] IX-F importer: don't bother about missing IPv{4,6} address when network is not doing IPv{4,6} (#771)
* Add cmdline tests
* Resolve email conflicts
* Add cmd tool reset tests
* add autocomplete to commandline tool
* Fix email bugs
* Fix email migrations
* Fix typos
* [beta] IX-F importer: prevent Admin Committee overload by initially limiting importer to IXes enabled by AC (#772)
* Finalize regex search for emails and deskprotickets
* Fix keyword bug
* fix typo
* protocol-conflict will now be handled in the notification consolidation
771 changes where if the network indicates neither ipv4 nor ipv6 support, it is handled as supporting both (eg the network didnt configure these at all)
realised that the importer command re instantiates the `Importer` class for each ixlan it processes, so moved the sending of consolidated notifications (#772) out of the `update` function and into the command itself after its done processing all the ixlans. This means for tests you will need to call `importer.notify_proposals` after `importer.update` to test the consolidated notifications.
fixed several MultipleObjectsReturned errors when network switch protocol support in between imports
* should be checking for "ix" in the form data (#773)
* Fix cmd ixf tests
* fix issue in log_peer
* Add commit check for reset tool
* fix importer bugs
* remove dupe IXFImportEmail definition
* ixfimportemail support ix__name and net__name searching
* ticket resolution responses
* Add commit to command ixf import changes
* fix modify entry header
* remove whitespace in notification about remote data changes
* Begin updating tests
* ixf-import command line tool to queue
* refactor conflict inserts
* Update import protocol tests, including tests for 770
* More test edits
* Change cmd tests
* better ixfmemberdata error handling and fix some test data
* dont reset the same ixfmemberdata requirement
* fix many bugs add many tests
* remove debug message
* fix bug during import when consolidating delete+add
* fix perfomance issue in IXFMemberData listing
* dont show reset flags on prod env
* Add regex search tests
* Add 772 tests
* remove debug output
* fix `test_resolve_deskpro_ticket` test
* black formatting
* remove dupe import
* fix issue with unique constraint error handling
* add test for ixp / network ip protocol notification
* add missing test data
Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>