mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-02-12 11:01:52 +00:00
typo squashing
This commit is contained in:
parent
d25bfeafa5
commit
597c67bb1f
2 changed files with 403 additions and 22 deletions
383
.vscode/settings.json
vendored
383
.vscode/settings.json
vendored
|
@ -1,7 +1,11 @@
|
||||||
{
|
{
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"abcdf",
|
"abcdf",
|
||||||
|
"accountchange",
|
||||||
|
"accountcreate",
|
||||||
"accountid",
|
"accountid",
|
||||||
|
"accountremove",
|
||||||
|
"acmd",
|
||||||
"acmepath",
|
"acmepath",
|
||||||
"actiontype",
|
"actiontype",
|
||||||
"adddevicegroup",
|
"adddevicegroup",
|
||||||
|
@ -16,17 +20,30 @@
|
||||||
"addusertousergroup",
|
"addusertousergroup",
|
||||||
"adminaccount",
|
"adminaccount",
|
||||||
"adminname",
|
"adminname",
|
||||||
|
"agentaliasdns",
|
||||||
|
"agentaliasport",
|
||||||
"agentallowedip",
|
"agentallowedip",
|
||||||
|
"agentapp",
|
||||||
"agentblockedip",
|
"agentblockedip",
|
||||||
"agentconfig",
|
"agentconfig",
|
||||||
"agentconsole",
|
"agentconsole",
|
||||||
|
"agentcoredump",
|
||||||
|
"agentcoredumpusers",
|
||||||
"agentcustomization",
|
"agentcustomization",
|
||||||
"agentdownload",
|
"agentdownload",
|
||||||
"agenterrorlogs",
|
"agenterrorlogs",
|
||||||
|
"agentid",
|
||||||
"agentidletimeout",
|
"agentidletimeout",
|
||||||
|
"agentinfo",
|
||||||
|
"agentinvite",
|
||||||
|
"agentinvitecodes",
|
||||||
"agentkey",
|
"agentkey",
|
||||||
"Agentless",
|
"Agentless",
|
||||||
"agentnoproxy",
|
"agentnoproxy",
|
||||||
|
"agentport",
|
||||||
|
"agentportbind",
|
||||||
|
"agentporttls",
|
||||||
|
"agenttransfer",
|
||||||
"agenttype",
|
"agenttype",
|
||||||
"agentupdateblocksize",
|
"agentupdateblocksize",
|
||||||
"agentupdatetest",
|
"agentupdatetest",
|
||||||
|
@ -34,57 +51,97 @@
|
||||||
"aliasport",
|
"aliasport",
|
||||||
"allevents",
|
"allevents",
|
||||||
"allowaccountreset",
|
"allowaccountreset",
|
||||||
|
"allowframing",
|
||||||
"allowfullscreen",
|
"allowfullscreen",
|
||||||
|
"allowhighqualitydesktop",
|
||||||
|
"allowsavingdevicecredentials",
|
||||||
|
"allusers",
|
||||||
"alreadyinstalled",
|
"alreadyinstalled",
|
||||||
"amtacmactivation",
|
"amtacmactivation",
|
||||||
|
"amtevents",
|
||||||
|
"amthost",
|
||||||
"amtmanager",
|
"amtmanager",
|
||||||
"amtoff",
|
"amtoff",
|
||||||
"amton",
|
"amton",
|
||||||
"amtonly",
|
"amtonly",
|
||||||
|
"amtpass",
|
||||||
"amtreset",
|
"amtreset",
|
||||||
"amtscanner",
|
"amtscanner",
|
||||||
|
"amtscanoptions",
|
||||||
|
"anewaccountcaptcha",
|
||||||
|
"apassword",
|
||||||
|
"apasswordhint",
|
||||||
"apikey",
|
"apikey",
|
||||||
|
"apos",
|
||||||
"appmetrics",
|
"appmetrics",
|
||||||
|
"apprelays",
|
||||||
"ashx",
|
"ashx",
|
||||||
|
"assistantconfig",
|
||||||
|
"assistantcustomization",
|
||||||
|
"assistantnoproxy",
|
||||||
"atag",
|
"atag",
|
||||||
"authcookie",
|
"authcookie",
|
||||||
"authenticode",
|
"authenticode",
|
||||||
|
"authfail",
|
||||||
"authlog",
|
"authlog",
|
||||||
"authlogfile",
|
"authlogfile",
|
||||||
"Authn",
|
"Authn",
|
||||||
|
"authorizationurl",
|
||||||
|
"authstr",
|
||||||
|
"authstrategies",
|
||||||
"autofido",
|
"autofido",
|
||||||
"awsrds",
|
"awsrds",
|
||||||
|
"backgroundcolor",
|
||||||
"backgroundonly",
|
"backgroundonly",
|
||||||
"backupcode",
|
"backupcode",
|
||||||
"backuppath",
|
"backuppath",
|
||||||
|
"badargs",
|
||||||
|
"badtlscert",
|
||||||
|
"bancommonpasswords",
|
||||||
|
"batchupload",
|
||||||
"bitmask",
|
"bitmask",
|
||||||
|
"Bounser",
|
||||||
"callbackurl",
|
"callbackurl",
|
||||||
|
"captchaargs",
|
||||||
"ccmp",
|
"ccmp",
|
||||||
"Centralv",
|
"Centralv",
|
||||||
"certbot",
|
"certbot",
|
||||||
"certfiles",
|
"certfiles",
|
||||||
|
"certhash",
|
||||||
|
"certkeyhash",
|
||||||
"certpfx",
|
"certpfx",
|
||||||
"certpfxpass",
|
"certpfxpass",
|
||||||
"certurl",
|
"certurl",
|
||||||
"cfile",
|
"cfile",
|
||||||
"changedevice",
|
"changedevice",
|
||||||
"changenode",
|
"changenode",
|
||||||
|
"changepassword",
|
||||||
"chatnotify",
|
"chatnotify",
|
||||||
|
"checkemail",
|
||||||
|
"checkmail",
|
||||||
|
"chnl",
|
||||||
"CIRA",
|
"CIRA",
|
||||||
|
"ciraconn",
|
||||||
"ciralocalfqdn",
|
"ciralocalfqdn",
|
||||||
"ckey",
|
"ckey",
|
||||||
"clearpower",
|
"clearpower",
|
||||||
"clientid",
|
"clientid",
|
||||||
"clientsecret",
|
"clientsecret",
|
||||||
|
"clipboardget",
|
||||||
|
"clipboardset",
|
||||||
|
"cmdoptions",
|
||||||
"cmds",
|
"cmds",
|
||||||
|
"cnonce",
|
||||||
"companyname",
|
"companyname",
|
||||||
"configfile",
|
"configfile",
|
||||||
"configfiles",
|
"configfiles",
|
||||||
"configkey",
|
"configkey",
|
||||||
"connectionstring",
|
"connectionstring",
|
||||||
|
"Consts",
|
||||||
"cookieipcheck",
|
"cookieipcheck",
|
||||||
"cookiesamesite",
|
"cookiesamesite",
|
||||||
"coolofftime",
|
"coolofftime",
|
||||||
|
"coredump",
|
||||||
"coredumps",
|
"coredumps",
|
||||||
"createaccount",
|
"createaccount",
|
||||||
"createmesh",
|
"createmesh",
|
||||||
|
@ -92,8 +149,14 @@
|
||||||
"crowdsec",
|
"crowdsec",
|
||||||
"crypted",
|
"crypted",
|
||||||
"cscli",
|
"cscli",
|
||||||
|
"curloptionshttp",
|
||||||
|
"curloptionshttps",
|
||||||
"cuser",
|
"cuser",
|
||||||
|
"cuserid",
|
||||||
|
"customui",
|
||||||
|
"datafile",
|
||||||
"datapath",
|
"datapath",
|
||||||
|
"datas",
|
||||||
"datastr",
|
"datastr",
|
||||||
"dbconfig",
|
"dbconfig",
|
||||||
"dbdeleteconfigfiles",
|
"dbdeleteconfigfiles",
|
||||||
|
@ -107,67 +170,119 @@
|
||||||
"dbpulldatafiles",
|
"dbpulldatafiles",
|
||||||
"dbpushconfigfiles",
|
"dbpushconfigfiles",
|
||||||
"dbshowconfigfile",
|
"dbshowconfigfile",
|
||||||
|
"debuglevel",
|
||||||
"defaultuserwebstate",
|
"defaultuserwebstate",
|
||||||
|
"deldump",
|
||||||
|
"deleteaccount",
|
||||||
"deletedefaultdomain",
|
"deletedefaultdomain",
|
||||||
"deletedomain",
|
"deletedomain",
|
||||||
"deletemesh",
|
"deletemesh",
|
||||||
"deleteuser",
|
"deleteuser",
|
||||||
"deleteusergroup",
|
"deleteusergroup",
|
||||||
|
"deluser",
|
||||||
|
"deluserpath",
|
||||||
|
"DESKLIMITEDINPUT",
|
||||||
|
"desktopmultiplex",
|
||||||
"desktopnotify",
|
"desktopnotify",
|
||||||
"desktopprivacybar",
|
"desktopprivacybar",
|
||||||
"desktopprompt",
|
"desktopprompt",
|
||||||
|
"desktoprelays",
|
||||||
"desktopviewonly",
|
"desktopviewonly",
|
||||||
"devbox",
|
"devbox",
|
||||||
|
"devicefile",
|
||||||
"deviceid",
|
"deviceid",
|
||||||
"deviceinfo",
|
"deviceinfo",
|
||||||
"deviceinfocount",
|
"deviceinfocount",
|
||||||
"devicemessage",
|
"devicemessage",
|
||||||
"deviceopenurl",
|
"deviceopenurl",
|
||||||
"devicepower",
|
"devicepower",
|
||||||
|
"devicepowerevents",
|
||||||
|
"devicesearchbarserverandclientname",
|
||||||
|
"deviceshare",
|
||||||
"devicesharing",
|
"devicesharing",
|
||||||
"devicetoast",
|
"devicetoast",
|
||||||
"devid",
|
"devid",
|
||||||
|
"Digesthash",
|
||||||
|
"disablerequestedauthncontext",
|
||||||
"displayname",
|
"displayname",
|
||||||
|
"dlccore",
|
||||||
|
"dlcore",
|
||||||
|
"dldump",
|
||||||
|
"dnscount",
|
||||||
"dnssuffix",
|
"dnssuffix",
|
||||||
"domaindefaults",
|
"domaindefaults",
|
||||||
"domainid",
|
"domainid",
|
||||||
|
"domainname",
|
||||||
|
"domainurl",
|
||||||
|
"domainx",
|
||||||
"dont",
|
"dont",
|
||||||
"dontlognull",
|
"dontlognull",
|
||||||
|
"downloadfile",
|
||||||
"dumpcores",
|
"dumpcores",
|
||||||
|
"dumpfile",
|
||||||
"editdevice",
|
"editdevice",
|
||||||
"editdevicegroup",
|
"editdevicegroup",
|
||||||
"editgroup",
|
"editgroup",
|
||||||
"editmesh",
|
"editmesh",
|
||||||
"edituser",
|
"edituser",
|
||||||
|
"emailaddress",
|
||||||
|
"emailcheck",
|
||||||
|
"emaildomain",
|
||||||
"emailexists",
|
"emailexists",
|
||||||
|
"emailok",
|
||||||
|
"emailvalidation",
|
||||||
|
"emailvalidationrequired",
|
||||||
"emailverified",
|
"emailverified",
|
||||||
"entityid",
|
"entityid",
|
||||||
"entrypoints",
|
"entrypoints",
|
||||||
|
"errdesc",
|
||||||
"errlogpath",
|
"errlogpath",
|
||||||
"esversion",
|
"esversion",
|
||||||
"etype",
|
"etype",
|
||||||
"eventlogger",
|
"eventlogger",
|
||||||
"exactport",
|
"exactport",
|
||||||
"exactports",
|
"exactports",
|
||||||
|
"exphbs",
|
||||||
"extractall",
|
"extractall",
|
||||||
|
"extrakey",
|
||||||
"extralinks",
|
"extralinks",
|
||||||
|
"extrascriptsrc",
|
||||||
|
"factorauth",
|
||||||
|
"factorwarning",
|
||||||
|
"fadev",
|
||||||
|
"fahold",
|
||||||
|
"fasent",
|
||||||
"fastcert",
|
"fastcert",
|
||||||
|
"fchallenge",
|
||||||
"fileaccess",
|
"fileaccess",
|
||||||
|
"filedata",
|
||||||
|
"filefullpath",
|
||||||
"filenotify",
|
"filenotify",
|
||||||
"fileprompt",
|
"fileprompt",
|
||||||
|
"filesize",
|
||||||
"filespath",
|
"filespath",
|
||||||
|
"filestats",
|
||||||
|
"fileurl",
|
||||||
"filteredusers",
|
"filteredusers",
|
||||||
"filterid",
|
"filterid",
|
||||||
"firebaserelay",
|
"firebaserelay",
|
||||||
"firstname",
|
"firstname",
|
||||||
"forceduserwebstate",
|
"forceduserwebstate",
|
||||||
|
"foregroundcolor",
|
||||||
|
"forwardclient",
|
||||||
"forwardfor",
|
"forwardfor",
|
||||||
|
"forwardwrite",
|
||||||
|
"forwardwsocket",
|
||||||
|
"fpath",
|
||||||
"Freemonitoring",
|
"Freemonitoring",
|
||||||
"frontends",
|
"frontends",
|
||||||
|
"ftarget",
|
||||||
|
"fullpath",
|
||||||
"fullrights",
|
"fullrights",
|
||||||
"fullscreen",
|
"fullscreen",
|
||||||
"gatewaymac",
|
"gatewaymac",
|
||||||
"generateinvitelink",
|
"generateinvitelink",
|
||||||
|
"geourl",
|
||||||
"getnetworkinfo",
|
"getnetworkinfo",
|
||||||
"getsysinfo",
|
"getsysinfo",
|
||||||
"getwspass",
|
"getwspass",
|
||||||
|
@ -175,49 +290,85 @@
|
||||||
"gotodevicename",
|
"gotodevicename",
|
||||||
"gotonode",
|
"gotonode",
|
||||||
"groupid",
|
"groupid",
|
||||||
|
"guestdevicesharing",
|
||||||
"guestname",
|
"guestname",
|
||||||
|
"GUESTSHARING",
|
||||||
|
"hashhex",
|
||||||
"Hashi",
|
"Hashi",
|
||||||
"hashpass",
|
"hashpass",
|
||||||
"hashpasssplit",
|
"hashpasssplit",
|
||||||
"hashpassword",
|
"hashpassword",
|
||||||
|
"Hashs",
|
||||||
"healthcheck",
|
"healthcheck",
|
||||||
"Hilaire",
|
"Hilaire",
|
||||||
|
"hkey",
|
||||||
"httpheaders",
|
"httpheaders",
|
||||||
"httplog",
|
"httplog",
|
||||||
|
"httpport",
|
||||||
|
"hwchallenge",
|
||||||
|
"hwotp",
|
||||||
|
"hwstate",
|
||||||
|
"hwtoken",
|
||||||
|
"Ider",
|
||||||
"idexists",
|
"idexists",
|
||||||
"idhex",
|
"idhex",
|
||||||
"idpurl",
|
"idpurl",
|
||||||
|
"idsplit",
|
||||||
"iframe",
|
"iframe",
|
||||||
"ignoreagenthashcheck",
|
"ignoreagenthashcheck",
|
||||||
|
"iishash",
|
||||||
|
"imagebase",
|
||||||
|
"imagefile",
|
||||||
"indexagenterrorlog",
|
"indexagenterrorlog",
|
||||||
"indexmcrec",
|
"indexmcrec",
|
||||||
|
"installflags",
|
||||||
|
"installsize",
|
||||||
"installtext",
|
"installtext",
|
||||||
"intelamt",
|
"intelamt",
|
||||||
"interactiveonly",
|
"interactiveonly",
|
||||||
"interuser",
|
"interuser",
|
||||||
"invitecodes",
|
"invitecodes",
|
||||||
|
"ipaddr",
|
||||||
|
"ipblockeduserredirect",
|
||||||
|
"ipcheck",
|
||||||
|
"ipex",
|
||||||
"ipkvm",
|
"ipkvm",
|
||||||
"iplayer",
|
"iplayer",
|
||||||
"ipranges",
|
"ipranges",
|
||||||
|
"isaml",
|
||||||
"Jitsi",
|
"Jitsi",
|
||||||
"jumpcloud",
|
"jumpcloud",
|
||||||
"keyfile",
|
"keyfile",
|
||||||
|
"keygrip",
|
||||||
|
"keyid",
|
||||||
"lanonly",
|
"lanonly",
|
||||||
"LAPI",
|
"LAPI",
|
||||||
"lastaddr",
|
"lastaddr",
|
||||||
"lastconnect",
|
"lastconnect",
|
||||||
"lastname",
|
"lastname",
|
||||||
"ldapauth",
|
"ldapauth",
|
||||||
|
"ldapobj",
|
||||||
"ldapoptions",
|
"ldapoptions",
|
||||||
|
"ldapsaveusertofile",
|
||||||
|
"ldapsyncwithusergroups",
|
||||||
"ldapuserbinarykey",
|
"ldapuserbinarykey",
|
||||||
"ldapuseremail",
|
"ldapuseremail",
|
||||||
|
"ldapusergroups",
|
||||||
|
"ldapuserimage",
|
||||||
|
"ldapuserkey",
|
||||||
"ldapusername",
|
"ldapusername",
|
||||||
|
"ldapuserphonenumber",
|
||||||
|
"ldapuserrealname",
|
||||||
|
"ldapuserrequiredgroupmembership",
|
||||||
"ldapusers",
|
"ldapusers",
|
||||||
"leok",
|
"leok",
|
||||||
"letsencrypt",
|
"letsencrypt",
|
||||||
|
"lightgray",
|
||||||
"limiteddesktop",
|
"limiteddesktop",
|
||||||
"limitedevents",
|
"limitedevents",
|
||||||
|
"LIMITEVENTS",
|
||||||
"Linaro",
|
"Linaro",
|
||||||
|
"linuxpath",
|
||||||
"listdevicegroups",
|
"listdevicegroups",
|
||||||
"listdevices",
|
"listdevices",
|
||||||
"listdomains",
|
"listdomains",
|
||||||
|
@ -228,56 +379,93 @@
|
||||||
"listusersessions",
|
"listusersessions",
|
||||||
"listusersofdevicegroup",
|
"listusersofdevicegroup",
|
||||||
"loadconfigfromdb",
|
"loadconfigfromdb",
|
||||||
|
"localdiscovery",
|
||||||
"localfile",
|
"localfile",
|
||||||
"localpath",
|
"localpath",
|
||||||
|
"localrelay",
|
||||||
|
"localsessionrecording",
|
||||||
"localurl",
|
"localurl",
|
||||||
"lockagentdownload",
|
"lockagentdownload",
|
||||||
"locksettings",
|
"locksettings",
|
||||||
|
"logfile",
|
||||||
|
"logincodeb",
|
||||||
"logindomain",
|
"logindomain",
|
||||||
"loginfooter",
|
"loginfooter",
|
||||||
"loginkey",
|
"loginkey",
|
||||||
"loginkeyfile",
|
"loginkeyfile",
|
||||||
|
"loginlogo",
|
||||||
|
"loginmode",
|
||||||
"loginpass",
|
"loginpass",
|
||||||
|
"loginpicture",
|
||||||
|
"loginscreen",
|
||||||
"logintoken",
|
"logintoken",
|
||||||
"logintokengen",
|
"logintokengen",
|
||||||
"logintokenkey",
|
"logintokenkey",
|
||||||
"logintokens",
|
"logintokens",
|
||||||
"loginuser",
|
"loginuser",
|
||||||
"logoback",
|
"logoback",
|
||||||
|
"logoutcontrols",
|
||||||
"logouturl",
|
"logouturl",
|
||||||
|
"macrouter",
|
||||||
|
"magenturl",
|
||||||
"mailserver",
|
"mailserver",
|
||||||
"mailtokengen",
|
"mailtokengen",
|
||||||
"maintenancemode",
|
"maintenancemode",
|
||||||
|
"mainwelcome",
|
||||||
|
"MANAGECOMPUTERS",
|
||||||
"managedevices",
|
"managedevices",
|
||||||
"manageusers",
|
"manageusers",
|
||||||
|
"markcoredump",
|
||||||
"maxfidokeys",
|
"maxfidokeys",
|
||||||
"maxlen",
|
"maxlen",
|
||||||
|
"maxuseraccounts",
|
||||||
"mcpath",
|
"mcpath",
|
||||||
"mcrdesktop",
|
"mcrdesktop",
|
||||||
"mcrec",
|
"mcrec",
|
||||||
"mcrfiles",
|
"mcrfiles",
|
||||||
|
"mcrouter",
|
||||||
"Mebx",
|
"Mebx",
|
||||||
|
"meshaction",
|
||||||
"meshadmin",
|
"meshadmin",
|
||||||
"meshagent",
|
"meshagent",
|
||||||
"meshagents",
|
"meshagents",
|
||||||
"meshauth",
|
"meshauth",
|
||||||
"meshcentral",
|
"meshcentral",
|
||||||
"meshcentralhost",
|
"meshcentralhost",
|
||||||
|
"meshchange",
|
||||||
"meshcmd",
|
"meshcmd",
|
||||||
"meshcommander",
|
"meshcommander",
|
||||||
|
"meshcookie",
|
||||||
"meshcore",
|
"meshcore",
|
||||||
"meshctrl",
|
"meshctrl",
|
||||||
|
"meshdesktopmultiplex",
|
||||||
|
"meshdevicefile",
|
||||||
|
"mesherrorlogpath",
|
||||||
"mesherrors",
|
"mesherrors",
|
||||||
|
"meshfilename",
|
||||||
"meshid",
|
"meshid",
|
||||||
|
"meshidhex",
|
||||||
"meshidname",
|
"meshidname",
|
||||||
|
"meshinstall",
|
||||||
"meshmail",
|
"meshmail",
|
||||||
|
"meshmessenger",
|
||||||
|
"meshmessengerid",
|
||||||
|
"meshmessengerpicture",
|
||||||
|
"meshmessengertitle",
|
||||||
"meshname",
|
"meshname",
|
||||||
|
"meshosxagent",
|
||||||
"meshquota",
|
"meshquota",
|
||||||
"meshrelay",
|
"meshrelay",
|
||||||
|
"MESHRIGHT",
|
||||||
"meshrights",
|
"meshrights",
|
||||||
"meshscanner",
|
"meshscanner",
|
||||||
|
"meshserver",
|
||||||
|
"meshsettings",
|
||||||
|
"meshsettingslines",
|
||||||
"meshtype",
|
"meshtype",
|
||||||
|
"meshuser",
|
||||||
"Messagebox",
|
"Messagebox",
|
||||||
|
"messageid",
|
||||||
"Messenging",
|
"Messenging",
|
||||||
"minfo",
|
"minfo",
|
||||||
"minifyall",
|
"minifyall",
|
||||||
|
@ -287,17 +475,25 @@
|
||||||
"mongorestore",
|
"mongorestore",
|
||||||
"moutput",
|
"moutput",
|
||||||
"movetodevicegroup",
|
"movetodevicegroup",
|
||||||
|
"mpkg",
|
||||||
"mpsaliasport",
|
"mpsaliasport",
|
||||||
"mpscert",
|
"mpscert",
|
||||||
"mpsdebug",
|
"mpsdebug",
|
||||||
|
"mpspass",
|
||||||
"mpsport",
|
"mpsport",
|
||||||
"mpsserver",
|
"mpsserver",
|
||||||
"mpsservers",
|
"mpsservers",
|
||||||
"MPSSSL",
|
"MPSSSL",
|
||||||
|
"mpstlsoffload",
|
||||||
"mqttbroker",
|
"mqttbroker",
|
||||||
"MSCHA",
|
"MSCHA",
|
||||||
|
"msgid",
|
||||||
"mstsc",
|
"mstsc",
|
||||||
|
"mstscrelay",
|
||||||
|
"mtype",
|
||||||
|
"multiplexor",
|
||||||
"multiresponse",
|
"multiresponse",
|
||||||
|
"multivalued",
|
||||||
"myaccountname",
|
"myaccountname",
|
||||||
"mycompany",
|
"mycompany",
|
||||||
"mydomain",
|
"mydomain",
|
||||||
|
@ -309,13 +505,19 @@
|
||||||
"netif",
|
"netif",
|
||||||
"newaccountemaildomains",
|
"newaccountemaildomains",
|
||||||
"newaccountname",
|
"newaccountname",
|
||||||
|
"newaccountrealms",
|
||||||
"newaccounts",
|
"newaccounts",
|
||||||
|
"newaccountscaptcha",
|
||||||
"newaccountspass",
|
"newaccountspass",
|
||||||
"newaccountsrights",
|
"newaccountsrights",
|
||||||
|
"newaccountsusergroups",
|
||||||
"newgroupname",
|
"newgroupname",
|
||||||
"newobj",
|
"newobj",
|
||||||
|
"newpass",
|
||||||
"newpassword",
|
"newpassword",
|
||||||
"NGNIX",
|
"NGNIX",
|
||||||
|
"nightmode",
|
||||||
|
"noact",
|
||||||
"noagentupdate",
|
"noagentupdate",
|
||||||
"noamt",
|
"noamt",
|
||||||
"noauth",
|
"noauth",
|
||||||
|
@ -324,47 +526,91 @@
|
||||||
"nodecount",
|
"nodecount",
|
||||||
"nodeid",
|
"nodeid",
|
||||||
"nodeids",
|
"nodeids",
|
||||||
|
"nodeidsplit",
|
||||||
"nodeinfo",
|
"nodeinfo",
|
||||||
|
"nodekey",
|
||||||
"nodepath",
|
"nodepath",
|
||||||
|
"NODESKTOP",
|
||||||
"nodewindows",
|
"nodewindows",
|
||||||
"nofiles",
|
"nofiles",
|
||||||
"nofirewall",
|
"nofirewall",
|
||||||
|
"nolog",
|
||||||
|
"nologout",
|
||||||
|
"NOMESHCMD",
|
||||||
"nominify",
|
"nominify",
|
||||||
"nonalpha",
|
"nonalpha",
|
||||||
|
"NONEWDEVICES",
|
||||||
"nonewgroups",
|
"nonewgroups",
|
||||||
|
"noproxy",
|
||||||
|
"noredirect",
|
||||||
|
"nosniff",
|
||||||
"noterminal",
|
"noterminal",
|
||||||
"notools",
|
"notools",
|
||||||
|
"nouser",
|
||||||
"nousers",
|
"nousers",
|
||||||
"novnc",
|
"novnc",
|
||||||
"npmjs",
|
"npmjs",
|
||||||
"npmpath",
|
"npmpath",
|
||||||
"npmproxy",
|
"npmproxy",
|
||||||
"npmtag",
|
"npmtag",
|
||||||
|
"objid",
|
||||||
"ODELAY",
|
"ODELAY",
|
||||||
"offloader",
|
"offloader",
|
||||||
"offloaders",
|
"offloaders",
|
||||||
"oidc",
|
"oidc",
|
||||||
|
"oldpassword",
|
||||||
|
"oldpasswordban",
|
||||||
|
"oldpasswords",
|
||||||
|
"oneclickrecovery",
|
||||||
|
"onlyselecteddevicegroups",
|
||||||
|
"onlyselectedusers",
|
||||||
|
"openidconnect",
|
||||||
|
"openstreetmap",
|
||||||
"openurl",
|
"openurl",
|
||||||
"orphanagentuser",
|
"orphanagentuser",
|
||||||
"osdesc",
|
"osdesc",
|
||||||
"osinfo",
|
"osinfo",
|
||||||
|
"otpdev",
|
||||||
|
"otpekey",
|
||||||
|
"otpemail",
|
||||||
"otphkeys",
|
"otphkeys",
|
||||||
"otpkeys",
|
"otpkeys",
|
||||||
|
"otplib",
|
||||||
|
"otppush",
|
||||||
"otpsecret",
|
"otpsecret",
|
||||||
|
"otpsms",
|
||||||
"parentpath",
|
"parentpath",
|
||||||
|
"passchange",
|
||||||
|
"passhint",
|
||||||
|
"passlogin",
|
||||||
|
"passrequirementstr",
|
||||||
|
"passtype",
|
||||||
"passwordrequirements",
|
"passwordrequirements",
|
||||||
|
"passwordrequirementsstr",
|
||||||
|
"pastlogin",
|
||||||
|
"pathx",
|
||||||
|
"peinfo",
|
||||||
|
"phonenumber",
|
||||||
"PKCK",
|
"PKCK",
|
||||||
"plivo",
|
"plivo",
|
||||||
|
"pluginadmin",
|
||||||
"plusplus",
|
"plusplus",
|
||||||
|
"portbind",
|
||||||
|
"postflight",
|
||||||
"poweraction",
|
"poweraction",
|
||||||
"powerevents",
|
"powerevents",
|
||||||
"Proto",
|
"Proto",
|
||||||
"publicid",
|
"publicid",
|
||||||
|
"pushlogin",
|
||||||
|
"pushrelay",
|
||||||
|
"pushrelayserver",
|
||||||
|
"qport",
|
||||||
"randompass",
|
"randompass",
|
||||||
"Raritan",
|
"Raritan",
|
||||||
"rauth",
|
"rauth",
|
||||||
"rawdata",
|
"rawdata",
|
||||||
"rcookie",
|
"rcookie",
|
||||||
|
"rdpport",
|
||||||
"realname",
|
"realname",
|
||||||
"recordencryptionrecode",
|
"recordencryptionrecode",
|
||||||
"recordpath",
|
"recordpath",
|
||||||
|
@ -373,11 +619,21 @@
|
||||||
"redirections",
|
"redirections",
|
||||||
"redirport",
|
"redirport",
|
||||||
"redirserver",
|
"redirserver",
|
||||||
|
"refreshtoken",
|
||||||
|
"relayaliasport",
|
||||||
"relaydns",
|
"relaydns",
|
||||||
|
"relayid",
|
||||||
"relayport",
|
"relayport",
|
||||||
|
"relayserver",
|
||||||
|
"relaysession",
|
||||||
|
"remembertoken",
|
||||||
|
"remoteaddr",
|
||||||
|
"remoteaddrport",
|
||||||
|
"REMOTECOMMAND",
|
||||||
"remotecontrol",
|
"remotecontrol",
|
||||||
"remotefile",
|
"remotefile",
|
||||||
"remotepath",
|
"remotepath",
|
||||||
|
"REMOTEVIEWONLY",
|
||||||
"removeallusersfromusergroup",
|
"removeallusersfromusergroup",
|
||||||
"removedevicegroup",
|
"removedevicegroup",
|
||||||
"removedomain",
|
"removedomain",
|
||||||
|
@ -392,11 +648,20 @@
|
||||||
"removeuserfromusergroup",
|
"removeuserfromusergroup",
|
||||||
"removeusergroup",
|
"removeusergroup",
|
||||||
"resetaccount",
|
"resetaccount",
|
||||||
|
"RESETOFF",
|
||||||
"resetpass",
|
"resetpass",
|
||||||
"responseid",
|
"responseid",
|
||||||
|
"restoreserver",
|
||||||
"rightsstr",
|
"rightsstr",
|
||||||
"rname",
|
"rname",
|
||||||
"rnamel",
|
"rnamel",
|
||||||
|
"rootcert",
|
||||||
|
"rootredirect",
|
||||||
|
"rpassword",
|
||||||
|
"rpasswordhint",
|
||||||
|
"rport",
|
||||||
|
"rtpass",
|
||||||
|
"rtuser",
|
||||||
"runasuser",
|
"runasuser",
|
||||||
"runasuseronly",
|
"runasuseronly",
|
||||||
"runcommand",
|
"runcommand",
|
||||||
|
@ -404,23 +669,43 @@
|
||||||
"runmode",
|
"runmode",
|
||||||
"runonservererror",
|
"runonservererror",
|
||||||
"runonserverupdated",
|
"runonserverupdated",
|
||||||
|
"ruserid",
|
||||||
|
"sameorigin",
|
||||||
"selfupdate",
|
"selfupdate",
|
||||||
|
"selfurl",
|
||||||
"senderid",
|
"senderid",
|
||||||
"sendgrid",
|
"sendgrid",
|
||||||
"sendinviteemail",
|
"sendinviteemail",
|
||||||
|
"serialtunnel",
|
||||||
|
"SERVERBACKUP",
|
||||||
|
"serverfeatures",
|
||||||
"serverfiles",
|
"serverfiles",
|
||||||
|
"serverhttps",
|
||||||
"serverid",
|
"serverid",
|
||||||
|
"serveridhex",
|
||||||
"serverinfo",
|
"serverinfo",
|
||||||
"serverkey",
|
"serverkey",
|
||||||
"servername",
|
"servername",
|
||||||
|
"servernoproxy",
|
||||||
|
"serverpath",
|
||||||
|
"serverpic",
|
||||||
|
"serverport",
|
||||||
|
"SERVERRESTORE",
|
||||||
|
"servertlshash",
|
||||||
"serverupdate",
|
"serverupdate",
|
||||||
"servicename",
|
"servicename",
|
||||||
"servicepath",
|
"servicepath",
|
||||||
|
"sessioncode",
|
||||||
"sessionkey",
|
"sessionkey",
|
||||||
"sessionrecording",
|
"sessionrecording",
|
||||||
|
"sessionsamesite",
|
||||||
"sessiontime",
|
"sessiontime",
|
||||||
|
"setbad",
|
||||||
|
"SETNOTES",
|
||||||
"settodomain",
|
"settodomain",
|
||||||
|
"sftpconnect",
|
||||||
"shareid",
|
"shareid",
|
||||||
|
"showagents",
|
||||||
"showall",
|
"showall",
|
||||||
"showallmeshes",
|
"showallmeshes",
|
||||||
"showevents",
|
"showevents",
|
||||||
|
@ -428,20 +713,31 @@
|
||||||
"showitem",
|
"showitem",
|
||||||
"showmeshes",
|
"showmeshes",
|
||||||
"shownodes",
|
"shownodes",
|
||||||
|
"showpasswordlogin",
|
||||||
"showpower",
|
"showpower",
|
||||||
"showsmbios",
|
"showsmbios",
|
||||||
"showusergroups",
|
"showusergroups",
|
||||||
"showusers",
|
"showusers",
|
||||||
|
"showversion",
|
||||||
"siteadmin",
|
"siteadmin",
|
||||||
|
"SITERIGHT",
|
||||||
"sitestyle",
|
"sitestyle",
|
||||||
"smsserver",
|
"smsserver",
|
||||||
"specificupdate",
|
"specificupdate",
|
||||||
"splitip",
|
"splitip",
|
||||||
|
"splitpath",
|
||||||
|
"spliturl",
|
||||||
"srights",
|
"srights",
|
||||||
|
"sshconnect",
|
||||||
|
"sshfilesrelay",
|
||||||
|
"sshport",
|
||||||
|
"sshrelay",
|
||||||
|
"sshterminalrelay",
|
||||||
"ssid",
|
"ssid",
|
||||||
"sspi",
|
"sspi",
|
||||||
"startack",
|
"startack",
|
||||||
"statsevents",
|
"statsevents",
|
||||||
|
"stricttransportsecurity",
|
||||||
"Strs",
|
"Strs",
|
||||||
"subdir",
|
"subdir",
|
||||||
"swarmallowedip",
|
"swarmallowedip",
|
||||||
|
@ -451,86 +747,171 @@
|
||||||
"syslogauth",
|
"syslogauth",
|
||||||
"syslogjson",
|
"syslogjson",
|
||||||
"syslogtcp",
|
"syslogtcp",
|
||||||
|
"tcpport",
|
||||||
"telnyx",
|
"telnyx",
|
||||||
|
"temail",
|
||||||
"tenantid",
|
"tenantid",
|
||||||
"terminalnotify",
|
"terminalnotify",
|
||||||
"terminalprompt",
|
"terminalprompt",
|
||||||
"termsize",
|
"termsize",
|
||||||
|
"timedoc",
|
||||||
|
"titleid",
|
||||||
"titlepicture",
|
"titlepicture",
|
||||||
"tkip",
|
"tkip",
|
||||||
"tlscertcheck",
|
"tlscertcheck",
|
||||||
|
"tlshash",
|
||||||
|
"tlsock",
|
||||||
"tlsoffload",
|
"tlsoffload",
|
||||||
|
"tlsoptions",
|
||||||
"tlsrootcert",
|
"tlsrootcert",
|
||||||
"tlsstrict",
|
"tlsstrict",
|
||||||
|
"tmpdl",
|
||||||
|
"tokenemail",
|
||||||
|
"tokenlogin",
|
||||||
|
"tokenpassword",
|
||||||
|
"tokenpush",
|
||||||
"tokenrequired",
|
"tokenrequired",
|
||||||
|
"tokensms",
|
||||||
|
"tokenurl",
|
||||||
|
"tokenuserid",
|
||||||
|
"tokenusername",
|
||||||
|
"totalsize",
|
||||||
|
"tpass",
|
||||||
|
"tpassword",
|
||||||
|
"tpush",
|
||||||
"traefik",
|
"traefik",
|
||||||
"translateall",
|
"translateall",
|
||||||
"translationpath",
|
"translationpath",
|
||||||
"trustedcert",
|
"trustedcert",
|
||||||
"trustedproxy",
|
"trustedproxy",
|
||||||
|
"tsms",
|
||||||
"TTLS",
|
"TTLS",
|
||||||
"tunnelws",
|
"tunnelws",
|
||||||
"tunnelwsstate",
|
"tunnelwsstate",
|
||||||
|
"tuser",
|
||||||
|
"tuserid",
|
||||||
|
"tusername",
|
||||||
|
"twofactor",
|
||||||
|
"twofactorcookiedurationdays",
|
||||||
|
"twofactortimeout",
|
||||||
"tzoffset",
|
"tzoffset",
|
||||||
|
"uaparser",
|
||||||
|
"ucookie",
|
||||||
"ugroup",
|
"ugroup",
|
||||||
"ugroups",
|
"ugroups",
|
||||||
"ugrp",
|
"ugrp",
|
||||||
"ugrpid",
|
"ugrpid",
|
||||||
"uicustomevent",
|
"uicustomevent",
|
||||||
"unadmin",
|
"unadmin",
|
||||||
|
"unknownuserrootredirect",
|
||||||
"unsealkey",
|
"unsealkey",
|
||||||
|
"updatefiles",
|
||||||
"uploadack",
|
"uploadack",
|
||||||
"uploaderror",
|
"uploaderror",
|
||||||
|
"uploadfile",
|
||||||
|
"uploadfilebatch",
|
||||||
|
"uploadmeshcorefile",
|
||||||
"uploadstart",
|
"uploadstart",
|
||||||
|
"urlpath",
|
||||||
|
"urlswitching",
|
||||||
"useid",
|
"useid",
|
||||||
"userallowedip",
|
"userallowedip",
|
||||||
"userblockedip",
|
"userblockedip",
|
||||||
"userbroadcast",
|
"userbroadcast",
|
||||||
"userconsentflags",
|
"userconsentflags",
|
||||||
"usercount",
|
"usercount",
|
||||||
|
"userex",
|
||||||
|
"userfiles",
|
||||||
|
"usergroupchange",
|
||||||
"usergroups",
|
"usergroups",
|
||||||
"userid",
|
"userid",
|
||||||
"userids",
|
"userids",
|
||||||
|
"userimage",
|
||||||
|
"userinfourl",
|
||||||
"usernameisemail",
|
"usernameisemail",
|
||||||
"userquota",
|
"userquota",
|
||||||
|
"userrequiredhttpheader",
|
||||||
"Usersessionidletimeout",
|
"Usersessionidletimeout",
|
||||||
|
"usersid",
|
||||||
|
"usersplit",
|
||||||
"vaultdeleteconfigfiles",
|
"vaultdeleteconfigfiles",
|
||||||
"vaultpullconfigfiles",
|
"vaultpullconfigfiles",
|
||||||
"vaultpushconfigfiles",
|
"vaultpushconfigfiles",
|
||||||
"verifyemail",
|
"verifyemail",
|
||||||
"Viewmode",
|
"Viewmode",
|
||||||
"viewonly",
|
"viewonly",
|
||||||
|
"WAKEDEVICE",
|
||||||
"wakedevices",
|
"wakedevices",
|
||||||
"Walkthru",
|
"Walkthru",
|
||||||
"wanonly",
|
"wanonly",
|
||||||
|
"Webauthn",
|
||||||
|
"webcerthash",
|
||||||
|
"webdefault",
|
||||||
"webemailspath",
|
"webemailspath",
|
||||||
|
"webider",
|
||||||
"webpublicpath",
|
"webpublicpath",
|
||||||
"webpush",
|
"webpush",
|
||||||
|
"webrelay",
|
||||||
|
"webrelaydata",
|
||||||
"webrelayserver",
|
"webrelayserver",
|
||||||
|
"webrequest",
|
||||||
"webrtc",
|
"webrtc",
|
||||||
"webrtconfig",
|
"webrtconfig",
|
||||||
"webserver",
|
"webserver",
|
||||||
"websockets",
|
"websockets",
|
||||||
"WEBSSL",
|
"WEBSSL",
|
||||||
|
"webstate",
|
||||||
"webviewspath",
|
"webviewspath",
|
||||||
|
"WELCOMEMSG",
|
||||||
"welcomepicture",
|
"welcomepicture",
|
||||||
|
"welcomepicturefullscreen",
|
||||||
"welcometext",
|
"welcometext",
|
||||||
|
"wgetoptionshttp",
|
||||||
|
"wgetoptionshttps",
|
||||||
|
"wildleek",
|
||||||
|
"winassistant",
|
||||||
|
"winpath",
|
||||||
|
"winrouter",
|
||||||
"winservice",
|
"winservice",
|
||||||
|
"wsagents",
|
||||||
"wscompression",
|
"wscompression",
|
||||||
|
"wsrelays",
|
||||||
"wssessioncount",
|
"wssessioncount",
|
||||||
"wssessions",
|
"wssessions",
|
||||||
|
"xarg",
|
||||||
|
"xbytes",
|
||||||
|
"xcmd",
|
||||||
|
"xdomain",
|
||||||
"xdomains",
|
"xdomains",
|
||||||
"xenv",
|
"xenv",
|
||||||
|
"xevents",
|
||||||
|
"xfile",
|
||||||
|
"xfilelen",
|
||||||
|
"xfilepath",
|
||||||
|
"xflags",
|
||||||
|
"xforwardedhost",
|
||||||
"xinstall",
|
"xinstall",
|
||||||
"xjslint",
|
"xjslint",
|
||||||
"xmeshes",
|
"xmeshes",
|
||||||
"xpad",
|
"xpad",
|
||||||
|
"xpassword",
|
||||||
|
"xrelay",
|
||||||
"xrestart",
|
"xrestart",
|
||||||
|
"xstate",
|
||||||
|
"xtls",
|
||||||
|
"xtransport",
|
||||||
"xuninstall",
|
"xuninstall",
|
||||||
|
"xuserid",
|
||||||
|
"xusername",
|
||||||
|
"xxdata",
|
||||||
"xxprocess",
|
"xxprocess",
|
||||||
"xxurl",
|
"xxurl",
|
||||||
|
"xxuser",
|
||||||
"xxxprocess",
|
"xxxprocess",
|
||||||
"Ylian",
|
"Ylian",
|
||||||
"yubikey"
|
"yubikey",
|
||||||
|
"yubikeyotp",
|
||||||
|
"zdata",
|
||||||
|
"zipfile"
|
||||||
]
|
]
|
||||||
}
|
}
|
42
webserver.js
42
webserver.js
|
@ -199,7 +199,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
obj.wsPeerSessions3 = {}; // ServerId --> UserId --> [ SessionId ]
|
obj.wsPeerSessions3 = {}; // ServerId --> UserId --> [ SessionId ]
|
||||||
obj.sessionsCount = {}; // Merged session counters, used when doing server peering. UserId --> SessionCount
|
obj.sessionsCount = {}; // Merged session counters, used when doing server peering. UserId --> SessionCount
|
||||||
obj.wsrelays = {}; // Id -> Relay
|
obj.wsrelays = {}; // Id -> Relay
|
||||||
obj.desktoprelays = {}; // Id -> Desktop Multiplexor Relay
|
obj.desktoprelays = {}; // Id -> Desktop Multiplexer Relay
|
||||||
obj.wsPeerRelays = {}; // Id -> { ServerId, Time }
|
obj.wsPeerRelays = {}; // Id -> { ServerId, Time }
|
||||||
var tlsSessionStore = {}; // Store TLS session information for quick resume.
|
var tlsSessionStore = {}; // Store TLS session information for quick resume.
|
||||||
var tlsSessionStoreCount = 0; // Number of cached TLS session information in store.
|
var tlsSessionStoreCount = 0; // Number of cached TLS session information in store.
|
||||||
|
@ -239,7 +239,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
for (i in docs) { var u = obj.users[docs[i]._id] = docs[i]; domainUserCount[u.domain]++; }
|
for (i in docs) { var u = obj.users[docs[i]._id] = docs[i]; domainUserCount[u.domain]++; }
|
||||||
for (i in parent.config.domains) {
|
for (i in parent.config.domains) {
|
||||||
if ((parent.config.domains[i].share == null) && (domainUserCount[i] == 0)) {
|
if ((parent.config.domains[i].share == null) && (domainUserCount[i] == 0)) {
|
||||||
// If newaccounts is set to no new accounts, but no accounts exists, temporarly allow account creation.
|
// If newaccounts is set to no new accounts, but no accounts exists, temporarily allow account creation.
|
||||||
//if ((parent.config.domains[i].newaccounts === 0) || (parent.config.domains[i].newaccounts === false)) { parent.config.domains[i].newaccounts = 2; }
|
//if ((parent.config.domains[i].newaccounts === 0) || (parent.config.domains[i].newaccounts === false)) { parent.config.domains[i].newaccounts = 2; }
|
||||||
console.log('Server ' + ((i == '') ? '' : (i + ' ')) + 'has no users, next new account will be site administrator.');
|
console.log('Server ' + ((i == '') ? '' : (i + ' ')) + 'has no users, next new account will be site administrator.');
|
||||||
}
|
}
|
||||||
|
@ -431,7 +431,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
if (!user) { fn(new Error('cannot find user')); return; }
|
if (!user) { fn(new Error('cannot find user')); return; }
|
||||||
if ((user.siteadmin) && (user.siteadmin != 0xFFFFFFFF) && (user.siteadmin & 32) != 0) { fn('locked'); return; }
|
if ((user.siteadmin) && (user.siteadmin != 0xFFFFFFFF) && (user.siteadmin & 32) != 0) { fn('locked'); return; }
|
||||||
|
|
||||||
// Succesful login token authentication
|
// Successful login token authentication
|
||||||
var loginOptions = { tokenName: loginToken.name, tokenUser: loginToken.tokenUser };
|
var loginOptions = { tokenName: loginToken.name, tokenUser: loginToken.tokenUser };
|
||||||
if (loginToken.expire != 0) { loginOptions.expire = loginToken.expire; }
|
if (loginToken.expire != 0) { loginOptions.expire = loginToken.expire; }
|
||||||
return fn(null, user._id, null, loginOptions);
|
return fn(null, user._id, null, loginOptions);
|
||||||
|
@ -519,9 +519,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
|
|
||||||
// Get the email address for this LDAP user
|
// Get the email address for this LDAP user
|
||||||
var email = null;
|
var email = null;
|
||||||
if (domain.ldapuseremail) { email = xxuser[domain.ldapuseremail]; } else if (xxuser['mail']) { email = xxuser['mail']; } // Use given feild name or default
|
if (domain.ldapuseremail) { email = xxuser[domain.ldapuseremail]; } else if (xxuser['mail']) { email = xxuser['mail']; } // Use given field name or default
|
||||||
if (Array.isArray(email)) { email = email[0]; } // Mail may be multivalued in LDAP in which case, answer is an array. Use the 1st value.
|
if (Array.isArray(email)) { email = email[0]; } // Mail may be multivalued in LDAP in which case, answer is an array. Use the 1st value.
|
||||||
if (email) { email = email.toLowerCase(); } // it seems some code elsewhere also lowercase the emailaddress, so let's be consistant.
|
if (email) { email = email.toLowerCase(); } // it seems some code elsewhere also lowercase the emailaddress, so let's be consistent.
|
||||||
|
|
||||||
// Get the real name for this LDAP user
|
// Get the real name for this LDAP user
|
||||||
var realname = null;
|
var realname = null;
|
||||||
|
@ -846,7 +846,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
function checkUserOneTimePasswordSkip(domain, user, req, loginOptions) {
|
function checkUserOneTimePasswordSkip(domain, user, req, loginOptions) {
|
||||||
if (parent.config.settings.no2factorauth == true) return null;
|
if (parent.config.settings.no2factorauth == true) return null;
|
||||||
|
|
||||||
// If this login occured using a login token, no 2FA needed.
|
// If this login occurred using a login token, no 2FA needed.
|
||||||
if ((loginOptions != null) && (typeof loginOptions.tokenName === 'string')) { return { twoFactorType: 'tokenlogin' }; }
|
if ((loginOptions != null) && (typeof loginOptions.tokenName === 'string')) { return { twoFactorType: 'tokenlogin' }; }
|
||||||
|
|
||||||
// Check if we can skip 2nd factor auth because of the source IP address
|
// Check if we can skip 2nd factor auth because of the source IP address
|
||||||
|
@ -859,7 +859,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
const cookies = req.headers.cookie.split('; ');
|
const cookies = req.headers.cookie.split('; ');
|
||||||
for (var i in cookies) {
|
for (var i in cookies) {
|
||||||
if (cookies[i].startsWith('twofactor=')) {
|
if (cookies[i].startsWith('twofactor=')) {
|
||||||
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(cookies[i].substring(10)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire feild, assume 30 day timeout.
|
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(cookies[i].substring(10)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire field, assume 30 day timeout.
|
||||||
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { return { twoFactorType: 'cookie' }; }
|
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { return { twoFactorType: 'cookie' }; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -870,7 +870,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
|
|
||||||
// Return true if this user has 2-step auth active
|
// Return true if this user has 2-step auth active
|
||||||
function checkUserOneTimePasswordRequired(domain, user, req, loginOptions) {
|
function checkUserOneTimePasswordRequired(domain, user, req, loginOptions) {
|
||||||
// If this login occured using a login token, no 2FA needed.
|
// If this login occurred using a login token, no 2FA needed.
|
||||||
if ((loginOptions != null) && (typeof loginOptions.tokenName === 'string')) { return false; }
|
if ((loginOptions != null) && (typeof loginOptions.tokenName === 'string')) { return false; }
|
||||||
|
|
||||||
// Check if we can skip 2nd factor auth because of the source IP address
|
// Check if we can skip 2nd factor auth because of the source IP address
|
||||||
|
@ -883,7 +883,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
const cookies = req.headers.cookie.split('; ');
|
const cookies = req.headers.cookie.split('; ');
|
||||||
for (var i in cookies) {
|
for (var i in cookies) {
|
||||||
if (cookies[i].startsWith('twofactor=')) {
|
if (cookies[i].startsWith('twofactor=')) {
|
||||||
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(cookies[i].substring(10)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire feild, assume 30 day timeout.
|
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(cookies[i].substring(10)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire field, assume 30 day timeout.
|
||||||
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { return false; }
|
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { return false; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -910,7 +910,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
|
|
||||||
// Check 2FA login cookie
|
// Check 2FA login cookie
|
||||||
if ((token != null) && (token.startsWith('cookie='))) {
|
if ((token != null) && (token.startsWith('cookie='))) {
|
||||||
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(token.substring(7)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire feild, assume 30 day timeout.
|
var twoFactorCookie = obj.parent.decodeCookie(decodeURIComponent(token.substring(7)), obj.parent.loginCookieEncryptionKey, (30 * 24 * 60)); // If the cookies does not have an expire field, assume 30 day timeout.
|
||||||
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { func(true, { twoFactorType: 'cookie' }); return; }
|
if ((twoFactorCookie != null) && ((twoFactorCookie.ip == null) || checkCookieIp(twoFactorCookie.ip, req.clientIp)) && (twoFactorCookie.userid == user._id)) { func(true, { twoFactorType: 'cookie' }); return; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1863,7 +1863,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
// Check is email already exists
|
// Check is email already exists
|
||||||
obj.db.GetUserWithVerifiedEmail(domain.id, email, function (err, docs) {
|
obj.db.GetUserWithVerifiedEmail(domain.id, email, function (err, docs) {
|
||||||
if ((err != null) || ((docs.length > 0) && (docs.find(function (u) { return (u._id === req.session.cuserid); }) < 0))) {
|
if ((err != null) || ((docs.length > 0) && (docs.find(function (u) { return (u._id === req.session.cuserid); }) < 0))) {
|
||||||
// Email already exitst
|
// Email already exists
|
||||||
req.session.messageid = 102; // Existing account with this email address.
|
req.session.messageid = 102; // Existing account with this email address.
|
||||||
} else {
|
} else {
|
||||||
// Update the user and notify of user email address change
|
// Update the user and notify of user email address change
|
||||||
|
@ -2515,8 +2515,8 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called when a strategy login occured
|
// Called when a strategy login occurred
|
||||||
// This is called after a succesful Oauth to Twitter, Google, GitHub...
|
// This is called after a successful Oauth to Twitter, Google, GitHub...
|
||||||
function handleStrategyLogin(req, res) {
|
function handleStrategyLogin(req, res) {
|
||||||
const domain = checkUserIpAddress(req, res);
|
const domain = checkUserIpAddress(req, res);
|
||||||
const authStrategy = req.user.strategy
|
const authStrategy = req.user.strategy
|
||||||
|
@ -2817,7 +2817,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
setSessionRandom(req);
|
setSessionRandom(req);
|
||||||
} else if (req.query.login && (obj.parent.loginCookieEncryptionKey != null)) {
|
} else if (req.query.login && (obj.parent.loginCookieEncryptionKey != null)) {
|
||||||
var loginCookie = obj.parent.decodeCookie(req.query.login, obj.parent.loginCookieEncryptionKey, 60); // 60 minute timeout
|
var loginCookie = obj.parent.decodeCookie(req.query.login, obj.parent.loginCookieEncryptionKey, 60); // 60 minute timeout
|
||||||
//if ((loginCookie != null) && (loginCookie.ip != null) && !checkCookieIp(loginCookie.ip, req.clientIp)) { loginCookie = null; } // If the cookie if binded to an IP address, check here.
|
//if ((loginCookie != null) && (loginCookie.ip != null) && !checkCookieIp(loginCookie.ip, req.clientIp)) { loginCookie = null; } // If the cookie is bound to an IP address, check here.
|
||||||
if ((loginCookie != null) && (loginCookie.a == 3) && (loginCookie.u != null) && (loginCookie.u.split('/')[1] == domain.id)) {
|
if ((loginCookie != null) && (loginCookie.a == 3) && (loginCookie.u != null) && (loginCookie.u.split('/')[1] == domain.id)) {
|
||||||
// If a login cookie was provided, setup the session here.
|
// If a login cookie was provided, setup the session here.
|
||||||
parent.debug('web', 'handleRootRequestEx: cookie auth ok.');
|
parent.debug('web', 'handleRootRequestEx: cookie auth ok.');
|
||||||
|
@ -3942,7 +3942,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
if ((err != null) || (docs == null) || (docs.length != 1)) { res.sendStatus(404); return; }
|
if ((err != null) || (docs == null) || (docs.length != 1)) { res.sendStatus(404); return; }
|
||||||
const doc = docs[0];
|
const doc = docs[0];
|
||||||
|
|
||||||
// If this is a recurrent share, check if we are at the currect time to make use of it
|
// If this is a recurrent share, check if we are at the correct time to make use of it
|
||||||
if (typeof doc.recurring == 'number') {
|
if (typeof doc.recurring == 'number') {
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
if (now >= doc.startTime) { // We don't want to move the validity window before the start time
|
if (now >= doc.startTime) { // We don't want to move the validity window before the start time
|
||||||
|
@ -4567,7 +4567,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
tlsock.setEncoding('binary');
|
tlsock.setEncoding('binary');
|
||||||
tlsock.on('error', function (err) { parent.debug('webrelay', "CIRA TLS Connection Error", err); });
|
tlsock.on('error', function (err) { parent.debug('webrelay', "CIRA TLS Connection Error", err); });
|
||||||
|
|
||||||
// Decrypted tunnel from TLS communcation to be forwarded to websocket
|
// Decrypted tunnel from TLS communication to be forwarded to websocket
|
||||||
tlsock.on('data', function (data) {
|
tlsock.on('data', function (data) {
|
||||||
// AMT/TLS ---> WS
|
// AMT/TLS ---> WS
|
||||||
if (ws.interceptor) { data = ws.interceptor.processAmtData(data); } // Run data thru interceptor
|
if (ws.interceptor) { data = ws.interceptor.processAmtData(data); } // Run data thru interceptor
|
||||||
|
@ -4615,7 +4615,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
ws.forwardclient.onData = function (ciraconn, data) {
|
ws.forwardclient.onData = function (ciraconn, data) {
|
||||||
//parent.debug('webrelaydata', 'Relay CIRA data to WS', data.length);
|
//parent.debug('webrelaydata', 'Relay CIRA data to WS', data.length);
|
||||||
|
|
||||||
// Run data thru interceptorp
|
// Run data thru interceptor
|
||||||
if (ws.interceptor) { data = ws.interceptor.processAmtData(data); }
|
if (ws.interceptor) { data = ws.interceptor.processAmtData(data); }
|
||||||
|
|
||||||
//console.log('AMT --> WS', Buffer.from(data, 'binary').toString('hex'));
|
//console.log('AMT --> WS', Buffer.from(data, 'binary').toString('hex'));
|
||||||
|
@ -4633,7 +4633,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
ws.forwardclient.onSendOk = function (ciraconn) { };
|
ws.forwardclient.onSendOk = function (ciraconn) { };
|
||||||
}
|
}
|
||||||
|
|
||||||
// When data is received from the web socket, forward the data into the associated CIRA cahnnel.
|
// When data is received from the web socket, forward the data into the associated CIRA channel.
|
||||||
// If the CIRA connection is pending, the CIRA channel has built-in buffering, so we are ok sending anyway.
|
// If the CIRA connection is pending, the CIRA channel has built-in buffering, so we are ok sending anyway.
|
||||||
ws.on('message', function (data) {
|
ws.on('message', function (data) {
|
||||||
//parent.debug('webrelaydata', 'Relay WS data to CIRA', data.length);
|
//parent.debug('webrelaydata', 'Relay WS data to CIRA', data.length);
|
||||||
|
@ -6703,7 +6703,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
const urlCookie = obj.parent.decodeCookie(req.query.c, parent.loginCookieEncryptionKey, 32); // Allow cookies up to 32 minutes old. The web page will renew this cookie every 30 minutes.
|
const urlCookie = obj.parent.decodeCookie(req.query.c, parent.loginCookieEncryptionKey, 32); // Allow cookies up to 32 minutes old. The web page will renew this cookie every 30 minutes.
|
||||||
if (urlCookie == null) { res.sendStatus(404); return; }
|
if (urlCookie == null) { res.sendStatus(404); return; }
|
||||||
|
|
||||||
// Decode the incomign cookie
|
// Decode the incoming cookie
|
||||||
if ((urlCookie.ruserid != null) && (urlCookie.x != null)) {
|
if ((urlCookie.ruserid != null) && (urlCookie.x != null)) {
|
||||||
if (parent.webserver.destroyedSessions[urlCookie.ruserid + '/' + urlCookie.x] != null) { res.sendStatus(404); return; }
|
if (parent.webserver.destroyedSessions[urlCookie.ruserid + '/' + urlCookie.x] != null) { res.sendStatus(404); return; }
|
||||||
|
|
||||||
|
@ -6853,7 +6853,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
|
|
||||||
// Indicates to ExpressJS that the override public folder should be used to serve static files.
|
// Indicates to ExpressJS that the override public folder should be used to serve static files.
|
||||||
if (parent.config.domains[i].webpublicpath != null) {
|
if (parent.config.domains[i].webpublicpath != null) {
|
||||||
// Use domain public pathe
|
// Use domain public path
|
||||||
obj.app.use(url, obj.express.static(parent.config.domains[i].webpublicpath));
|
obj.app.use(url, obj.express.static(parent.config.domains[i].webpublicpath));
|
||||||
} else if (obj.parent.webPublicOverridePath != null) {
|
} else if (obj.parent.webPublicOverridePath != null) {
|
||||||
// Use override path
|
// Use override path
|
||||||
|
@ -7154,7 +7154,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
// The web relay session is valid, use it
|
// The web relay session is valid, use it
|
||||||
relaySession.handleRequest(req, res);
|
relaySession.handleRequest(req, res);
|
||||||
} else {
|
} else {
|
||||||
// No web relay ession with this relay identifier, close the HTTP request.
|
// No web relay session with this relay identifier, close the HTTP request.
|
||||||
res.sendStatus(404);
|
res.sendStatus(404);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue