django-restit 4.2.15__tar.gz → 4.2.17__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django_restit-4.2.15 → django_restit-4.2.17}/PKG-INFO +2 -1
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/member.py +2 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/passkeys/core.py +13 -4
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/passkeys.py +1 -1
- {django_restit-4.2.15 → django_restit-4.2.17}/pyproject.toml +2 -1
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/__init__.py +1 -1
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/helpers.py +10 -1
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/jwtoken.py +4 -2
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/models/base.py +2 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/rpc.py +8 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/LICENSE.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/fcm/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0003_member_phone_number.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0004_group_modified_alter_group_created.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0005_member_auth_code_expires.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0006_member_security_token.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0007_authtoken_signature_authsession.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0008_memberdevice_memberdevicemetadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0009_alter_member_phone_number.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0010_delete_authtoken.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0011_authtoken.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0012_settings_settingsmetadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0013_memberdevice_ip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0014_alter_notificationmemberrecord_member.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0015_memberdevice_buid.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0016_authsession_buid.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0017_rename_requires_topt_member_requires_totp.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0018_userpasskey.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/device.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/feeds.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/group.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/legacy.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/membership.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/notify.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/passkeys.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/session.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/models/settings.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/oauth/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/oauth/google.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/passkeys/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/auth.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/device.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/group.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/member.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/notify.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/oauth.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/rpc/settings.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/settings.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/base.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/invite.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/plain/base.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/plain/invite.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/plain/reset_code.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/reset_code.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/simple/invite.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/simple/reset_code.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/README +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/decorators.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/middleware.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/auditlog/urls.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/handlers.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/0002_alter_message_cc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/0003_attachment_content_type.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/0004_mailtemplate.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/models/bounce.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/models/complaint.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/models/message.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/models/template.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/utils/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/utils/parsing.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/utils/render.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/inbox/utils/sending.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0002_event_component_event_component_id.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0003_rule_action.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0004_serverossecalert_ssh_sig_alter_rulecheck_parent.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0005_incident_component_alter_incident_state.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0006_delete_eventmetadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0007_event_metadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0008_incident_action_sent_incident_hostname_and_more.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0009_incident_reporter_ip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0010_incident_category_incident_component_id.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0011_ticket.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0012_rule_match_by.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0013_rulecheck_is_required.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/event.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/incident.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/ossec.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/rules.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/models/ticket.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/parsers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/parsers/ossec.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/templates/email/incident_change.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/templates/email/incident_new.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/templates/email/incident_plain.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/incident/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/geolocate.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/migrations/0002_geoip_subnet_alter_geoip_ip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/address.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/ip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/legacy.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/location.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/models/track.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/abstractapi.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/extremeip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/geoplugin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/ipapi.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/ipinfo.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/iplookup/restit.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/location/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/location/google.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/timezones/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/timezones/google.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/providers/zillow.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/rpc/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/rpc/ip.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/rpc/location.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/location/rpc/track.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/cvutil/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/cvutil/contours.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/cvutil/images.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/cvutil/misc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/cvutil/text.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/fixtures/initial_data.json +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/fixtures/medialib.json +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/fixtures/medialib_test_fixture.json +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/forms.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/ocr.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/pdf.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/qrcode.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/anigif.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/ffmpeg.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/gifsicle.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/hls.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/mp4box.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/rtmp/Makefile +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/rtmp/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/rtmp/rtmp.i +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/rtmpdump.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/rtmpsink.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/video_getinfo.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/engines/websnap.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/exceptions.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/akamai.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/animated_thumbnail.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/ffmpeg.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/flv.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/hls.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/image_transcode.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/image_validate.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/mp4.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/video_still.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/video_validate.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/websnap.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/presets/youtube.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/render_utils.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/render/schedule.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/rpc/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/rpc/legacy.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/rpc/media.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/rpc/tools.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/scripts/init_config +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/css/base_medialibui.css +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/css/base_widgets.css +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/css/jquery.jcrop.css +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/arrow-down-white.png +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/bg-body.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/cancel.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/icon-generic.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/icon-image.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/icon-media.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/icon-zip.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/loading.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/noimage.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/render_err.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/rendering.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/star_off.png +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/star_on.png +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/img/unknown.gif +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/caman.full.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/hammer.min.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/jquery.Jcrop.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/jquery.hammer.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/load-image.min.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/swiper.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/tinymce/plugins/medialib/editor_plugin.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/tinymce/plugins/medialib/editor_plugin_src.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/tinymce/plugins/medialib/js/dialog.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/static/lib/tinymce/plugins/medialib/medialib.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/channel.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/discovery.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/errors.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/http.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/mimeparse.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/model.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/sample_tools.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/apiclient/schema.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/filestore.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/httplib2/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/httplib2/cacerts.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/httplib2/iri2uri.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/httplib2/socks.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/httpstore.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/nullstore.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/anyjson.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/appengine.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/client.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/clientsecrets.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/crypt.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/django_orm.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/gce.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/keyring_storage.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/locked_file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/multistore_file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/old_run.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/tools.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/util.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/oauth2client/xsrfutil.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/rtmpstore.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/s3store.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/uritemplate/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/stores/youtubestore.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/base.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/instances.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/items.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/library.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_error.subject +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_error.to +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_error.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_ready.subject +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_ready.to +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_ready.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_render_error.subject +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_render_error.to +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_render_error.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_validate_error.subject +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_validate_error.to +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/notify_validate_error.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/smil +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/test.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/templates/medialib/testpicker.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/tests.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/urls.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/utils.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/views.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/channel.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/discovery.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/errors.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/http.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/mimeparse.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/model.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/sample_tools.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/apiclient/schema.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/httplib2/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/httplib2/cacerts.txt +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/httplib2/iri2uri.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/httplib2/socks.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/anyjson.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/appengine.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/client.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/clientsecrets.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/crypt.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/django_orm.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/gce.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/keyring_storage.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/locked_file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/multistore_file.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/old_run.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/tools.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/util.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/oauth2client/xsrfutil.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/upload.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/medialib/youtube/uritemplate/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/client.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/eod.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/examples/eod_example.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/delete_gauge.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/delete_metric.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/fix_redis_metrics_keys.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/generate_test_metrics.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/redis_metrics_send_mail.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/reset_weekly_metrics.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/management/commands/system_metric.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/0002_metrics_k11_metrics_k12_metrics_k13_metrics_k14_and_more.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/0003_metrics_expires.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/0004_eodmetrics.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/0005_alter_metrics_v1_alter_metrics_v10_alter_metrics_v11_and_more.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/providers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/providers/aws.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/settings.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/metrics/utils.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/rpc/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/rpc/githooks.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/rpc/legacy.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/rpc/products.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/static/js/models_pushit.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/pushit/utils.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/.gitignore +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/RemoteEvents.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/arc4.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/cache.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/crypto/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/crypto/aes.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/crypto/privpub.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/crypto/util.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/datem.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/decorators.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/encryption.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/errors.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/extra/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/extra/json_metadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/fields.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/forms.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/joke.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/log.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/mail.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/mailman.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/management/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/management/commands/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/management/commands/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/cors.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/db_router.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/jwt.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/request.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/session.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/middleware/session_store.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/models/cacher.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/models/metadata.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/net.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/regexes.yaml +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/requestex.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/search.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/collection.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/csv.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/excel.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/json.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/legacy.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/model.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/profiler.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/response.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/serializers/util.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/settings_helper.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/ssl_check.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/static/lib/jquery.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/static/rest/app.css +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/static/rest/app.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/static/rest/rest.js +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/static/rest/rest.scss +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/templates/email/error.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/templates/email/error.subject +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/templates/rest_docs.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/templates/rest_html.html +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/ua.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/uberdict.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/url_docs.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/urls.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/rest/views.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/.gitignore +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/tests.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/sessionlog/views.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/email.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/http.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/s3.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/sftp.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/transports/sms.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/taskqueue/worker.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/admin.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/decorators.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/migrations/0002_alter_sms_sid.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/models.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/phone_util.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/telephony/rpc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/migrations/0001_initial.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/migrations/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/models/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/models/faq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/models/page.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/models/revision.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/periodic.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/highlight.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/math.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/media.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/meta.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/task_list.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/renderers/mistune/toc.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/rpc/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/rpc/wiki.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/wiki/tq.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/README.md +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/client.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/connection.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/exceptions.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/redis.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/servers/__init__.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/servers/base.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/servers/django.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/servers/uwsgi.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/settings.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/utf8validator.py +0 -0
- {django_restit-4.2.15 → django_restit-4.2.17}/ws4redis/websocket.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-restit
|
3
|
-
Version: 4.2.
|
3
|
+
Version: 4.2.17
|
4
4
|
Summary: A Rest Framework for DJANGO
|
5
5
|
License: MIT
|
6
6
|
Author: Ian Starnes
|
@@ -16,6 +16,7 @@ Requires-Dist: boto3 (>=1.26.160,<2.0.0)
|
|
16
16
|
Requires-Dist: django
|
17
17
|
Requires-Dist: django-redis-cache (>=3.0.1,<4.0.0)
|
18
18
|
Requires-Dist: django-redis-sessions (>=0.6.2,<0.7.0)
|
19
|
+
Requires-Dist: fido2
|
19
20
|
Requires-Dist: gevent (>=23.7.0,<24.0.0)
|
20
21
|
Requires-Dist: hashids (>=1.3.1,<2.0.0)
|
21
22
|
Requires-Dist: inlinestyler
|
@@ -88,6 +88,7 @@ class Member(User, RestModel, MetaDataModel):
|
|
88
88
|
("perms", "properties|permissions.")]
|
89
89
|
QUERY_FIELDS_SPECIAL = {
|
90
90
|
"ip": "auth_sessions__ip",
|
91
|
+
"login_country": "auth_sessions__location__country"
|
91
92
|
}
|
92
93
|
UNIQUE_LOOKUP = ["username", "email"]
|
93
94
|
METADATA_FIELD_PROPERTIES = settings.USER_METADATA_PROPERTIES
|
@@ -474,6 +475,7 @@ class Member(User, RestModel, MetaDataModel):
|
|
474
475
|
|
475
476
|
def disable(self, by="system", reason="", notify=True):
|
476
477
|
self.is_active = False
|
478
|
+
self.security_token = None
|
477
479
|
self.save()
|
478
480
|
self.memberships.update(state=-25)
|
479
481
|
|
@@ -6,6 +6,8 @@ try:
|
|
6
6
|
import fido2
|
7
7
|
from fido2.server import Fido2Server
|
8
8
|
from fido2.utils import websafe_decode, websafe_encode
|
9
|
+
from fido2 import cbor
|
10
|
+
fido2.features.webauthn_json_mapping.enabled = True
|
9
11
|
except Exception:
|
10
12
|
pass
|
11
13
|
|
@@ -21,7 +23,6 @@ FIDO_KEY_ATTACHMENT = settings.get("FIDO_KEY_ATTACHMENT", "cross-platform")
|
|
21
23
|
|
22
24
|
FIDO_SERVER_ID = settings.get("FIDO_SERVER_ID", settings.SERVER_NAME)
|
23
25
|
FIDO_SERVER_NAME = settings.get("FIDO_SERVER_NAME", settings.SITE_LABEL)
|
24
|
-
fido2.features.webauthn_json_mapping.enabled = True
|
25
26
|
|
26
27
|
|
27
28
|
def verify_origin(id):
|
@@ -52,6 +53,9 @@ def registerBegin(member, request, attachment=FIDO_KEY_ATTACHMENT):
|
|
52
53
|
authenticator_attachment=attachment,
|
53
54
|
resident_key_requirement=webauthn.ResidentKeyRequirement.PREFERRED)
|
54
55
|
rp = objict(server.rp)
|
56
|
+
data = objict.fromdict(dict(data))
|
57
|
+
data.excludeCredentials = getUserCredentials(member, websafe=True)
|
58
|
+
rh.debug("data", data)
|
55
59
|
# rh.debug("registerBegin", rp, server.rp.id_hash)
|
56
60
|
return data, state, rp
|
57
61
|
|
@@ -80,10 +84,15 @@ def registerComplete(request, fido2_state, rp_id):
|
|
80
84
|
return user_key
|
81
85
|
|
82
86
|
|
83
|
-
def getUserCredentials(member):
|
87
|
+
def getUserCredentials(member, websafe=False):
|
84
88
|
if member is None:
|
85
89
|
return []
|
86
|
-
|
90
|
+
creds = [webauthn.AttestedCredentialData(websafe_decode(uk.token)) for uk in member.passkeys.all()]
|
91
|
+
if websafe:
|
92
|
+
return [dict(
|
93
|
+
type="public-key",
|
94
|
+
id=rh.toBase64(acd.credential_id)) for acd in creds]
|
95
|
+
return creds
|
87
96
|
|
88
97
|
|
89
98
|
def authBegin(request):
|
@@ -97,7 +106,7 @@ def authComplete(request, fido2_state, rp_id):
|
|
97
106
|
credential = request.DATA.get("credential")
|
98
107
|
upk = UserPassKey.objects.filter(uuid=credential.id, is_enabled=1).last()
|
99
108
|
if upk is None:
|
100
|
-
raise Exception(
|
109
|
+
raise Exception("PassKey not found on host.")
|
101
110
|
stored_credentials = [webauthn.AttestedCredentialData(websafe_decode(upk.token))]
|
102
111
|
server = getServer(request, rp_id)
|
103
112
|
cred = server.authenticate_complete(
|
@@ -21,7 +21,7 @@ def rest_on_passkeys_reg_begin(request):
|
|
21
21
|
# or in redis with expires in 5m?
|
22
22
|
request.session["fido2_state"] = state
|
23
23
|
request.session["fido2_rp_id"] = rp.id
|
24
|
-
return rv.restResult(request,
|
24
|
+
return rv.restResult(request, data)
|
25
25
|
|
26
26
|
|
27
27
|
@rd.url('passkeys/register/end')
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "django-restit"
|
3
|
-
version = "4.2.
|
3
|
+
version = "4.2.17"
|
4
4
|
description = "A Rest Framework for DJANGO"
|
5
5
|
authors = ["Ian Starnes <ians@311labs.com>"]
|
6
6
|
license = "MIT"
|
@@ -42,6 +42,7 @@ pypng = "*"
|
|
42
42
|
pygments = "*"
|
43
43
|
mistune = "*"
|
44
44
|
inlinestyler = "*"
|
45
|
+
fido2 = "*"
|
45
46
|
python-dateutil = "^2.8.2"
|
46
47
|
hashids = "^1.3.1"
|
47
48
|
boto3 = "^1.26.160"
|
@@ -863,6 +863,13 @@ def getBlockedHosts():
|
|
863
863
|
return blocked
|
864
864
|
|
865
865
|
|
866
|
+
def toInteger(value):
|
867
|
+
if isinstance(value, str):
|
868
|
+
if "." in value:
|
869
|
+
return int(float(value))
|
870
|
+
return int(value)
|
871
|
+
|
872
|
+
|
866
873
|
def toString(value):
|
867
874
|
if isinstance(value, bytes):
|
868
875
|
value = value.decode()
|
@@ -897,7 +904,9 @@ def hexToByteArray(value):
|
|
897
904
|
def hexToString(value):
|
898
905
|
return bytes.fromhex(value).decode('utf-8')
|
899
906
|
|
900
|
-
def toBase64(value):
|
907
|
+
def toBase64(value, as_str=True):
|
908
|
+
if as_str:
|
909
|
+
return toString(base64.b64encode(toBytes(value)))
|
901
910
|
return base64.b64encode(toBytes(value))
|
902
911
|
|
903
912
|
def fromBase64(value):
|
@@ -6,14 +6,16 @@ from rest import settings
|
|
6
6
|
|
7
7
|
|
8
8
|
JWT_EXP_1_DAY = 86400
|
9
|
+
JWT_EXP_2_DAY = 172800
|
9
10
|
JWT_EXP_7_DAY = 604800
|
10
11
|
JWT_EXP_30_MIN = 1800
|
11
12
|
JWT_KEY = settings.SECRET_KEY
|
12
|
-
|
13
|
+
JWT_EXPIRES = settings.get("JWT_EXPIRES", JWT_EXP_30_MIN)
|
14
|
+
JWT_REFRESH_EXPIRES = settings.get("JWT_REFRESH_EXPIRES", JWT_EXP_2_DAY)
|
13
15
|
|
14
16
|
|
15
17
|
class JWToken():
|
16
|
-
def __init__(self, token=None, user_id=None, key=JWT_KEY, device_id=None, alg="HS256", access_expires_in=
|
18
|
+
def __init__(self, token=None, user_id=None, key=JWT_KEY, device_id=None, alg="HS256", access_expires_in=JWT_EXPIRES, refresh_expires_in=JWT_REFRESH_EXPIRES):
|
17
19
|
# takes full JWT token header.payload.signature
|
18
20
|
self.token = token
|
19
21
|
self.key = key
|
@@ -1573,6 +1573,8 @@ class RestModel(object):
|
|
1573
1573
|
ft = cls.get_field_type(fn)
|
1574
1574
|
if ft == "DateTimeField":
|
1575
1575
|
value = rh.parseDateTime(value)
|
1576
|
+
elif ft == "IntegerField":
|
1577
|
+
value = rh.toInteger(value)
|
1576
1578
|
q[key] = value
|
1577
1579
|
if bool(q):
|
1578
1580
|
# rh.debug("queryFromRequest", q, "default_filters:", request.default_rest_filters)
|
@@ -42,6 +42,14 @@ def on_get_version(request):
|
|
42
42
|
return views.restStatus(request, True, {"data": versions})
|
43
43
|
|
44
44
|
|
45
|
+
@url('test/session')
|
46
|
+
def on_get_my_session(request):
|
47
|
+
echo = request.DATA.get("echo", None)
|
48
|
+
if echo:
|
49
|
+
request.session["echo"] = echo
|
50
|
+
return views.restReturn(request, dict(echo=request.session.get("echo", "not set")))
|
51
|
+
|
52
|
+
|
45
53
|
@url(r'^joke$')
|
46
54
|
def on_get_joke(request):
|
47
55
|
return views.restGet(request, {"joke": joke.getRandomJoke()})
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0003_member_phone_number.py
RENAMED
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0005_member_auth_code_expires.py
RENAMED
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0006_member_security_token.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0009_alter_member_phone_number.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/migrations/0012_settings_settingsmetadata.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/account/templates/email/simple/reset_code.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/inbox/migrations/0003_attachment_content_type.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0006_delete_eventmetadata.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0009_incident_reporter_ip.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{django_restit-4.2.15 → django_restit-4.2.17}/incident/migrations/0013_rulecheck_is_required.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|