Precent encode mumble username for connect link

This change wraps mumble username on connect link forming with
urllib.parse.quote() to ensure that the username does not contain
unsafe reserved characters and gets passed properly to mumble.

Fixes Issue: #1146
This commit is contained in:
Erno Kuvaja 2019-01-21 13:59:35 +00:00
parent 7dec4deb70
commit 0edf896b4c

View File

@ -1,4 +1,5 @@
import logging import logging
import urllib
from django.conf import settings from django.conf import settings
from django.template.loader import render_to_string from django.template.loader import render_to_string
@ -61,7 +62,7 @@ class MumbleService(ServicesHook):
'service_name': self.title, 'service_name': self.title,
'urls': urls, 'urls': urls,
'service_url': self.service_url, 'service_url': self.service_url,
'connect_url': request.user.mumble.username + '@' + self.service_url if MumbleTasks.has_account(request.user) else self.service_url, 'connect_url': urllib.parse.quote(request.user.mumble.username, safe="") + '@' + self.service_url if MumbleTasks.has_account(request.user) else self.service_url,
'username': request.user.mumble.username if MumbleTasks.has_account(request.user) else '', 'username': request.user.mumble.username if MumbleTasks.has_account(request.user) else '',
}, request=request) }, request=request)