Merge remote-tracking branch 'origin/v3.5'

This commit is contained in:
Adolfo Gómez García 2021-10-06 12:39:06 +02:00
commit 840a7a02bd

View File

@ -129,7 +129,7 @@ class HTML5RDPTransport(transports.Transport):
)
wallpaper = gui.CheckBoxField(
label=_('Show wallpaper'),
order=20,
order=18,
tooltip=_(
'If checked, the wallpaper and themes will be shown on machine (better user experience, more bandwidth)'
),
@ -137,19 +137,19 @@ class HTML5RDPTransport(transports.Transport):
)
desktopComp = gui.CheckBoxField(
label=_('Allow Desk.Comp.'),
order=22,
order=19,
tooltip=_('If checked, desktop composition will be allowed'),
tab=gui.PARAMETERS_TAB,
)
smooth = gui.CheckBoxField(
label=_('Font Smoothing'),
order=23,
order=20,
tooltip=_('If checked, fonts smoothing will be allowed (windows clients only)'),
tab=gui.PARAMETERS_TAB,
)
enableAudio = gui.CheckBoxField(
label=_('Enable Audio'),
order=24,
order=21,
tooltip=_(
'If checked, the audio will be redirected to remote session (if client browser supports it)'
),
@ -158,7 +158,7 @@ class HTML5RDPTransport(transports.Transport):
)
enableAudioInput = gui.CheckBoxField(
label=_('Enable Microphone'),
order=24,
order=22,
tooltip=_(
'If checked, the microphone will be redirected to remote session (if client browser supports it)'
),
@ -166,7 +166,7 @@ class HTML5RDPTransport(transports.Transport):
)
enablePrinting = gui.CheckBoxField(
label=_('Enable Printing'),
order=25,
order=23,
tooltip=_(
'If checked, the printing will be redirected to remote session (if client browser supports it)'
),
@ -174,14 +174,27 @@ class HTML5RDPTransport(transports.Transport):
)
enableFileSharing = gui.ChoiceField(
label=_('File Sharing'),
order=22,
order=24,
tooltip=_('File upload/download redirection policy'),
defvalue='false',
values=[
{'id': 'false', 'text': 'Disable file sharing'},
{'id': 'down', 'text': 'Allow download only'},
{'id': 'up', 'text': 'Allow upload only'},
{'id': 'true', 'text': 'Enable file sharing'},
{'id': 'false', 'text': _('Disable file sharing')},
{'id': 'down', 'text': _('Allow download only')},
{'id': 'up', 'text': _('Allow upload only')},
{'id': 'true', 'text': _('Enable file sharing')},
],
tab=gui.PARAMETERS_TAB,
)
enableClipboard = gui.ChoiceField(
label=_('Clipboard'),
order=25,
tooltip=_('Clipboard redirection policy'),
defvalue='enabled',
values=[
{'id': 'disabled', 'text': _('Disable clipboard')},
{'id': 'dis-copy', 'text': _('Disable copy from remote')},
{'id': 'dis-paste', 'text': _('Disable paste to remote')},
{'id': 'enabled', 'text': _('Enable clipboard')}
],
tab=gui.PARAMETERS_TAB,
)
@ -197,59 +210,24 @@ class HTML5RDPTransport(transports.Transport):
gui.choiceItem('en-gb-qwerty', _('English (GB) keyboard')),
gui.choiceItem('es-es-qwerty', _('Spanish keyboard')),
gui.choiceItem('es-latam-qwerty', _('Latin American keyboard')),
gui.choiceItem('da-dk-querty', _('Danish keyboard')),
gui.choiceItem('de-de-qwertz', _('German keyboard (qwertz)')),
gui.choiceItem('fr-fr-azerty', _('French keyboard (azerty)')),
gui.choiceItem('fr-ch-qwertz', _('Swiss French keyboard (qwertz)')),
gui.choiceItem('fr-be-azerty', _('Belgian French keyboard (azerty)')),
gui.choiceItem('de-ch-qwertz', _('Swiss German keyboard (qwertz)')),
gui.choiceItem('fr-ch-qwertz', _('Swiss French keyboard (qwertz)')),
gui.choiceItem('hu-hu-qwerty', _('Hungarian keyboard')),
gui.choiceItem('it-it-qwerty', _('Italian keyboard')),
gui.choiceItem('sv-se-qwerty', _('Swedish keyboard')),
gui.choiceItem('ja-jp-qwerty', _('Japanese keyboard')),
gui.choiceItem('pt-br-qwerty', _('Brazilian keyboard')),
gui.choiceItem('no-no-querty', _('Norwegian keyboard')),
gui.choiceItem('pt-br-qwerty', _('Portuguese Brazilian keyboard')),
gui.choiceItem('sv-se-qwerty', _('Swedish keyboard')),
gui.choiceItem('tr-tr-qwerty', _('Turkish keyboard')),
gui.choiceItem('failsafe', _('Failsafe')),
],
defvalue='-',
tab=gui.PARAMETERS_TAB,
)
security = gui.ChoiceField(
order=27,
label=_('Security'),
tooltip=_('Connection security mode for Guacamole RDP connection'),
required=True,
values=[
gui.choiceItem(
'any', _('Any (Allow the server to choose the type of auth)')
),
gui.choiceItem(
'rdp',
_('RDP (Standard RDP encryption. Should be supported by all servers)'),
),
gui.choiceItem(
'nla',
_(
'NLA (Network Layer authentication. Requires VALID username&password, or connection will fail)'
),
),
gui.choiceItem(
'nla-ext',
_(
'NLA extended (Network Layer authentication. Requires VALID username&password, or connection will fail)'
),
),
gui.choiceItem('tls', _('TLS (Transport Security Layer encryption)')),
],
defvalue='any',
tab=gui.PARAMETERS_TAB,
)
rdpPort = gui.NumericField(
order=29,
length=5, # That is, max allowed value is 65535
label=_('RDP Port'),
tooltip=_('Use this port as RDP port. Defaults to 3389.'),
tab=gui.PARAMETERS_TAB,
required=True, #: Numeric fields have always a value, so this not really needed
defvalue='3389',
)
ticketValidity = gui.NumericField(
length=3,
@ -285,10 +263,50 @@ class HTML5RDPTransport(transports.Transport):
defvalue=gui.FALSE,
tab=gui.ADVANCED_TAB,
)
security = gui.ChoiceField(
order=92,
label=_('Security'),
tooltip=_('Connection security mode for Guacamole RDP connection'),
required=True,
values=[
gui.choiceItem(
'any', _('Any (Allow the server to choose the type of auth)')
),
gui.choiceItem(
'rdp',
_('RDP (Standard RDP encryption. Should be supported by all servers)'),
),
gui.choiceItem(
'nla',
_(
'NLA (Network Layer authentication. Requires VALID username&password, or connection will fail)'
),
),
gui.choiceItem(
'nla-ext',
_(
'NLA extended (Network Layer authentication. Requires VALID username&password, or connection will fail)'
),
),
gui.choiceItem('tls', _('TLS (Transport Security Layer encryption)')),
],
defvalue='any',
tab=gui.ADVANCED_TAB,
)
rdpPort = gui.NumericField(
order=93,
length=5, # That is, max allowed value is 65535
label=_('RDP Port'),
tooltip=_('Use this port as RDP port. Defaults to 3389.'),
required=True, #: Numeric fields have always a value, so this not really needed
defvalue='3389',
tab=gui.ADVANCED_TAB,
)
customGEPath = gui.TextField(
label=_('Glyptodon Enterprise context path'),
order=92,
order=94,
tooltip=_(
'Customized path for Glyptodon Enterprise tunnel. (Only valid for Glyptodon Enterprise Tunnel)'
),
@ -298,6 +316,7 @@ class HTML5RDPTransport(transports.Transport):
tab=gui.ADVANCED_TAB,
)
def initialize(self, values: 'Module.ValuesType'):
if not values:
return
@ -413,7 +432,11 @@ class HTML5RDPTransport(transports.Transport):
'resize-method': 'display-update',
'ignore-cert': 'true',
'security': self.security.value,
'enable-drive': self.enableFileSharing.value in ('true', 'down', 'up'),
'disable-upload': self.enableFileSharing.value in ('true', 'up'),
'drive-path': '/share/{}'.format(user.uuid),
'disable-copy': self.enableClipboard.value in ('dis-copy', 'disabled'),
'disable-paste': self.enableClipboard.value in ('dis-paste', 'disabled'),
'create-drive-path': 'true',
'ticket-info': {
'userService': userService.uuid,
@ -436,15 +459,6 @@ class HTML5RDPTransport(transports.Transport):
if domain:
params['domain'] = domain
if self.enableFileSharing.value == 'true':
params['enable-drive'] = 'true'
elif self.enableFileSharing.value == 'down':
params['enable-drive'] = 'true'
params['disable-upload'] = 'true'
elif self.enableFileSharing.value == 'up':
params['enable-drive'] = 'true'
params['disable-download'] = 'true'
if self.serverLayout.value != '-':
params['server-layout'] = self.serverLayout.value