* Add check for existing pending affiliations to org
* Fix message
* 883 consolidation for deskpro tickets
* add views tests
* ipaddress normalization during search (#913)
* remove unused imports
* Update lat and long admin fields to not required
* black formatting
* relock pipfile
* fix conditions for failing asn affil test
* Update affiliation logic and add tests
* make name search case insensitive
* add asn to org_id lookup
* black format
* skip sync test while test.peeringdb.com is down
Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
Proposed additional question added to help us identify if a feature requires admin tools to be developed as well as a user feature. This change discussed with Arnold, following experience with APKI Keys.
* 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>