Support all URI schemes
This commit is contained in:
parent
cf869b1356
commit
f4511893e1
@ -41,6 +41,7 @@ from documents.models import UiSettings
|
|||||||
from documents.parsers import is_mime_type_supported
|
from documents.parsers import is_mime_type_supported
|
||||||
from documents.permissions import get_groups_with_only_permission
|
from documents.permissions import get_groups_with_only_permission
|
||||||
from documents.permissions import set_permissions_for_object
|
from documents.permissions import set_permissions_for_object
|
||||||
|
from documents.utils import ALL_URL_SCHEMES
|
||||||
|
|
||||||
|
|
||||||
# https://www.django-rest-framework.org/api-guide/serializers/#example
|
# https://www.django-rest-framework.org/api-guide/serializers/#example
|
||||||
@ -499,7 +500,7 @@ class CustomFieldInstanceSerializer(serializers.ModelSerializer):
|
|||||||
and data["value"] is not None
|
and data["value"] is not None
|
||||||
and len(data["value"]) > 0
|
and len(data["value"]) > 0
|
||||||
):
|
):
|
||||||
URLValidator()(data["value"])
|
URLValidator(schemes=ALL_URL_SCHEMES)(data["value"])
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def reflect_doclinks(
|
def reflect_doclinks(
|
||||||
|
@ -40,3 +40,381 @@ def copy_file_with_basic_stats(
|
|||||||
|
|
||||||
shutil.copy(source, dest)
|
shutil.copy(source, dest)
|
||||||
copy_basic_file_stats(source, dest)
|
copy_basic_file_stats(source, dest)
|
||||||
|
|
||||||
|
|
||||||
|
ALL_URL_SCHEMES = [
|
||||||
|
"aaa",
|
||||||
|
"aaas",
|
||||||
|
"about",
|
||||||
|
"acap",
|
||||||
|
"acct",
|
||||||
|
"acd",
|
||||||
|
"acr",
|
||||||
|
"adiumxtra",
|
||||||
|
"adt",
|
||||||
|
"afp",
|
||||||
|
"afs",
|
||||||
|
"aim",
|
||||||
|
"amss",
|
||||||
|
"android",
|
||||||
|
"appdata",
|
||||||
|
"apt",
|
||||||
|
"ar",
|
||||||
|
"ark",
|
||||||
|
"at",
|
||||||
|
"attachment",
|
||||||
|
"aw",
|
||||||
|
"barion",
|
||||||
|
"bb",
|
||||||
|
"beshare",
|
||||||
|
"bitcoin",
|
||||||
|
"bitcoincash",
|
||||||
|
"blob",
|
||||||
|
"bolo",
|
||||||
|
"brid",
|
||||||
|
"browserext",
|
||||||
|
"cabal",
|
||||||
|
"calculator",
|
||||||
|
"callto",
|
||||||
|
"cap",
|
||||||
|
"cast",
|
||||||
|
"casts",
|
||||||
|
"chrome",
|
||||||
|
"chrome-extension",
|
||||||
|
"cid",
|
||||||
|
"coap",
|
||||||
|
"coap+tcp",
|
||||||
|
"coap+ws",
|
||||||
|
"coaps",
|
||||||
|
"coaps+tcp",
|
||||||
|
"coaps+ws",
|
||||||
|
"com-eventbrite-attendee",
|
||||||
|
"content",
|
||||||
|
"content-type",
|
||||||
|
"crid",
|
||||||
|
"cstr",
|
||||||
|
"cvs",
|
||||||
|
"dab",
|
||||||
|
"dat",
|
||||||
|
"data",
|
||||||
|
"dav",
|
||||||
|
"dhttp",
|
||||||
|
"diaspora",
|
||||||
|
"dict",
|
||||||
|
"did",
|
||||||
|
"dis",
|
||||||
|
"dlna-playcontainer",
|
||||||
|
"dlna-playsingle",
|
||||||
|
"dns",
|
||||||
|
"dntp",
|
||||||
|
"doi",
|
||||||
|
"dpp",
|
||||||
|
"drm",
|
||||||
|
"drop",
|
||||||
|
"dtmi",
|
||||||
|
"dtn",
|
||||||
|
"dvb",
|
||||||
|
"dvx",
|
||||||
|
"dweb",
|
||||||
|
"ed2k",
|
||||||
|
"eid",
|
||||||
|
"elsi",
|
||||||
|
"embedded",
|
||||||
|
"ens",
|
||||||
|
"ethereum",
|
||||||
|
"example",
|
||||||
|
"facetime",
|
||||||
|
"fax",
|
||||||
|
"feed",
|
||||||
|
"feedready",
|
||||||
|
"fido",
|
||||||
|
"file",
|
||||||
|
"filesystem",
|
||||||
|
"finger",
|
||||||
|
"first-run-pen-experience",
|
||||||
|
"fish",
|
||||||
|
"fm",
|
||||||
|
"ftp",
|
||||||
|
"fuchsia-pkg",
|
||||||
|
"geo",
|
||||||
|
"gg",
|
||||||
|
"git",
|
||||||
|
"gitoid",
|
||||||
|
"gizmoproject",
|
||||||
|
"go",
|
||||||
|
"gopher",
|
||||||
|
"graph",
|
||||||
|
"grd",
|
||||||
|
"gtalk",
|
||||||
|
"h323",
|
||||||
|
"ham",
|
||||||
|
"hcap",
|
||||||
|
"hcp",
|
||||||
|
"http",
|
||||||
|
"https",
|
||||||
|
"hxxp",
|
||||||
|
"hxxps",
|
||||||
|
"hydrazone",
|
||||||
|
"hyper",
|
||||||
|
"iax",
|
||||||
|
"icap",
|
||||||
|
"icon",
|
||||||
|
"im",
|
||||||
|
"imap",
|
||||||
|
"info",
|
||||||
|
"iotdisco",
|
||||||
|
"ipfs",
|
||||||
|
"ipn",
|
||||||
|
"ipns",
|
||||||
|
"ipp",
|
||||||
|
"ipps",
|
||||||
|
"irc",
|
||||||
|
"irc6",
|
||||||
|
"ircs",
|
||||||
|
"iris",
|
||||||
|
"iris.beep",
|
||||||
|
"iris.lwz",
|
||||||
|
"iris.xpc",
|
||||||
|
"iris.xpcs",
|
||||||
|
"isostore",
|
||||||
|
"itms",
|
||||||
|
"jabber",
|
||||||
|
"jar",
|
||||||
|
"jms",
|
||||||
|
"keyparc",
|
||||||
|
"lastfm",
|
||||||
|
"lbry",
|
||||||
|
"ldap",
|
||||||
|
"ldaps",
|
||||||
|
"leaptofrogans",
|
||||||
|
"lid",
|
||||||
|
"lorawan",
|
||||||
|
"lpa",
|
||||||
|
"lvlt",
|
||||||
|
"magnet",
|
||||||
|
"mailserver",
|
||||||
|
"mailto",
|
||||||
|
"maps",
|
||||||
|
"market",
|
||||||
|
"matrix",
|
||||||
|
"message",
|
||||||
|
"microsoft.windows.camera",
|
||||||
|
"microsoft.windows.camera.multipicker",
|
||||||
|
"microsoft.windows.camera.picker",
|
||||||
|
"mid",
|
||||||
|
"mms",
|
||||||
|
"modem",
|
||||||
|
"mongodb",
|
||||||
|
"moz",
|
||||||
|
"ms-access",
|
||||||
|
"ms-appinstaller",
|
||||||
|
"ms-browser-extension",
|
||||||
|
"ms-calculator",
|
||||||
|
"ms-drive-to",
|
||||||
|
"ms-enrollment",
|
||||||
|
"ms-excel",
|
||||||
|
"ms-eyecontrolspeech",
|
||||||
|
"ms-gamebarservices",
|
||||||
|
"ms-gamingoverlay",
|
||||||
|
"ms-getoffice",
|
||||||
|
"ms-help",
|
||||||
|
"ms-infopath",
|
||||||
|
"ms-inputapp",
|
||||||
|
"ms-launchremotedesktop",
|
||||||
|
"ms-lockscreencomponent-config",
|
||||||
|
"ms-media-stream-id",
|
||||||
|
"ms-meetnow",
|
||||||
|
"ms-mixedrealitycapture",
|
||||||
|
"ms-mobileplans",
|
||||||
|
"ms-newsandinterests",
|
||||||
|
"ms-officeapp",
|
||||||
|
"ms-people",
|
||||||
|
"ms-project",
|
||||||
|
"ms-powerpoint",
|
||||||
|
"ms-publisher",
|
||||||
|
"ms-remotedesktop",
|
||||||
|
"ms-remotedesktop-launch",
|
||||||
|
"ms-restoretabcompanion",
|
||||||
|
"ms-screenclip",
|
||||||
|
"ms-screensketch",
|
||||||
|
"ms-search",
|
||||||
|
"ms-search-repair",
|
||||||
|
"ms-secondary-screen-controller",
|
||||||
|
"ms-secondary-screen-setup",
|
||||||
|
"ms-settings",
|
||||||
|
"ms-settings-airplanemode",
|
||||||
|
"ms-settings-bluetooth",
|
||||||
|
"ms-settings-camera",
|
||||||
|
"ms-settings-cellular",
|
||||||
|
"ms-settings-cloudstorage",
|
||||||
|
"ms-settings-connectabledevices",
|
||||||
|
"ms-settings-displays-topology",
|
||||||
|
"ms-settings-emailandaccounts",
|
||||||
|
"ms-settings-language",
|
||||||
|
"ms-settings-location",
|
||||||
|
"ms-settings-lock",
|
||||||
|
"ms-settings-nfctransactions",
|
||||||
|
"ms-settings-notifications",
|
||||||
|
"ms-settings-power",
|
||||||
|
"ms-settings-privacy",
|
||||||
|
"ms-settings-proximity",
|
||||||
|
"ms-settings-screenrotation",
|
||||||
|
"ms-settings-wifi",
|
||||||
|
"ms-settings-workplace",
|
||||||
|
"ms-spd",
|
||||||
|
"ms-stickers",
|
||||||
|
"ms-sttoverlay",
|
||||||
|
"ms-transit-to",
|
||||||
|
"ms-useractivityset",
|
||||||
|
"ms-virtualtouchpad",
|
||||||
|
"ms-visio",
|
||||||
|
"ms-walk-to",
|
||||||
|
"ms-whiteboard",
|
||||||
|
"ms-whiteboard-cmd",
|
||||||
|
"ms-word",
|
||||||
|
"msnim",
|
||||||
|
"msrp",
|
||||||
|
"msrps",
|
||||||
|
"mss",
|
||||||
|
"mt",
|
||||||
|
"mtqp",
|
||||||
|
"mumble",
|
||||||
|
"mupdate",
|
||||||
|
"mvn",
|
||||||
|
"news",
|
||||||
|
"nfs",
|
||||||
|
"ni",
|
||||||
|
"nih",
|
||||||
|
"nntp",
|
||||||
|
"notes",
|
||||||
|
"num",
|
||||||
|
"ocf",
|
||||||
|
"oid",
|
||||||
|
"onenote",
|
||||||
|
"onenote-cmd",
|
||||||
|
"opaquelocktoken",
|
||||||
|
"openid",
|
||||||
|
"openpgp4fpr",
|
||||||
|
"otpauth",
|
||||||
|
"p1",
|
||||||
|
"pack",
|
||||||
|
"palm",
|
||||||
|
"paparazzi",
|
||||||
|
"payment",
|
||||||
|
"payto",
|
||||||
|
"pkcs11",
|
||||||
|
"platform",
|
||||||
|
"pop",
|
||||||
|
"pres",
|
||||||
|
"prospero",
|
||||||
|
"proxy",
|
||||||
|
"pwid",
|
||||||
|
"psyc",
|
||||||
|
"pttp",
|
||||||
|
"qb",
|
||||||
|
"query",
|
||||||
|
"quic-transport",
|
||||||
|
"redis",
|
||||||
|
"rediss",
|
||||||
|
"reload",
|
||||||
|
"res",
|
||||||
|
"resource",
|
||||||
|
"rmi",
|
||||||
|
"rsync",
|
||||||
|
"rtmfp",
|
||||||
|
"rtmp",
|
||||||
|
"rtsp",
|
||||||
|
"rtsps",
|
||||||
|
"rtspu",
|
||||||
|
"sarif",
|
||||||
|
"secondlife",
|
||||||
|
"secret-token",
|
||||||
|
"service",
|
||||||
|
"session",
|
||||||
|
"sftp",
|
||||||
|
"sgn",
|
||||||
|
"shc",
|
||||||
|
"shttp (OBSOLETE)",
|
||||||
|
"sieve",
|
||||||
|
"simpleledger",
|
||||||
|
"simplex",
|
||||||
|
"sip",
|
||||||
|
"sips",
|
||||||
|
"skype",
|
||||||
|
"smb",
|
||||||
|
"smp",
|
||||||
|
"sms",
|
||||||
|
"smtp",
|
||||||
|
"snews",
|
||||||
|
"snmp",
|
||||||
|
"soap.beep",
|
||||||
|
"soap.beeps",
|
||||||
|
"soldat",
|
||||||
|
"spiffe",
|
||||||
|
"spotify",
|
||||||
|
"ssb",
|
||||||
|
"ssh",
|
||||||
|
"starknet",
|
||||||
|
"steam",
|
||||||
|
"stun",
|
||||||
|
"stuns",
|
||||||
|
"submit",
|
||||||
|
"svn",
|
||||||
|
"swh",
|
||||||
|
"swid",
|
||||||
|
"swidpath",
|
||||||
|
"tag",
|
||||||
|
"taler",
|
||||||
|
"teamspeak",
|
||||||
|
"tel",
|
||||||
|
"teliaeid",
|
||||||
|
"telnet",
|
||||||
|
"tftp",
|
||||||
|
"things",
|
||||||
|
"thismessage",
|
||||||
|
"tip",
|
||||||
|
"tn3270",
|
||||||
|
"tool",
|
||||||
|
"turn",
|
||||||
|
"turns",
|
||||||
|
"tv",
|
||||||
|
"udp",
|
||||||
|
"unreal",
|
||||||
|
"upt",
|
||||||
|
"urn",
|
||||||
|
"ut2004",
|
||||||
|
"uuid-in-package",
|
||||||
|
"v-event",
|
||||||
|
"vemmi",
|
||||||
|
"ventrilo",
|
||||||
|
"ves",
|
||||||
|
"videotex",
|
||||||
|
"vnc",
|
||||||
|
"view-source",
|
||||||
|
"vscode",
|
||||||
|
"vscode-insiders",
|
||||||
|
"vsls",
|
||||||
|
"w3",
|
||||||
|
"wais",
|
||||||
|
"web3",
|
||||||
|
"wcr",
|
||||||
|
"webcal",
|
||||||
|
"web+ap",
|
||||||
|
"wifi",
|
||||||
|
"wpid",
|
||||||
|
"ws",
|
||||||
|
"wss",
|
||||||
|
"wtai",
|
||||||
|
"wyciwyg",
|
||||||
|
"xcon",
|
||||||
|
"xcon-userid",
|
||||||
|
"xfire",
|
||||||
|
"xmlrpc.beep",
|
||||||
|
"xmlrpc.beeps",
|
||||||
|
"xmpp",
|
||||||
|
"xri",
|
||||||
|
"ymsgr",
|
||||||
|
"z39.50",
|
||||||
|
"z39.50r",
|
||||||
|
"z39.50s",
|
||||||
|
] # pragma: no cover
|
||||||
|
Loading…
x
Reference in New Issue
Block a user