* Added min height to panel tables

* Added uds to cookies if not found on login
* Fixed html5 so if request is not in context, simply set user_agent to "Unknown"
* Updated auth/views to use new cookie "syntax"
This commit is contained in:
Adolfo Gómez 2014-05-29 06:14:27 +00:00
parent 14a2e0a02d
commit 2108353d1e
5 changed files with 28 additions and 6 deletions

View File

@ -253,6 +253,9 @@ encoding//src/uds/services/Xen/xen_client/__init__.py=utf-8
encoding//src/uds/services/__init__.py=utf-8
encoding//src/uds/templatetags/REST.py=utf-8
encoding//src/uds/templatetags/html5.py=utf-8
encoding//src/uds/tests/__init__.py=utf-8
encoding//src/uds/tests/web/__init__.py=utf-8
encoding//src/uds/tests/web/auth/__init__.py=utf-8
encoding//src/uds/transports/HTML5RDP/HTML5RDP.py=utf-8
encoding//src/uds/transports/HTML5RDP/__init__.py=utf-8
encoding//src/uds/transports/NX/NXTransport.py=utf-8

View File

@ -49,7 +49,7 @@ from uds.models import User
import logging
__updated__ = '2014-02-19'
__updated__ = '2014-05-29'
logger = logging.getLogger(__name__)
authLogger = logging.getLogger('authLog')
@ -58,6 +58,16 @@ USER_KEY = 'uk'
PASS_KEY = 'pk'
ROOT_ID = -20091204 # Any negative number will do the trick
def getUDSCookie(request, response):
if 'uds' not in request.COOKIES:
import random
import string
cookie = ''.join(random.choice(string.letters + string.digits) for _ in xrange(32))
response.set_cookie('uds', cookie)
else:
cookie = request.COOKIES['uds']
return cookie
def getRootUser():
from uds.models import Authenticator
@ -256,10 +266,14 @@ def webLogin(request, response, user, password):
manager_id = user.manager.id
else:
manager_id = -1
# If for any reason the "uds" cookie is removed, recreated it
cookie = getUDSCookie(request, response)
user.updateLastAccess()
request.session.clear()
request.session[USER_KEY] = user.id
request.session[PASS_KEY] = CryptoManager.manager().xor(password.encode('utf-8'), request.COOKIES['uds'])
request.session[PASS_KEY] = CryptoManager.manager().xor(password.encode('utf-8'), cookie)
# Ensures that this user will have access througt REST api if logged in through web interface
REST.Handler.storeSessionAuthdata(request.session, manager_id, user.name, get_language(), user.is_admin, user.staff_member)
return True

View File

@ -83,6 +83,7 @@ body {
/* Tables "styling" */
.dataTables_wrapper {
overflow-x: hidden;
min-height: 300px;
}
/* States */

View File

@ -61,7 +61,10 @@ class IfBrowser(template.Node):
self._browsers = browsers
def render(self, context):
user_agent = context['request'].META.get('HTTP_USER_AGENT', 'Unknown')
if 'request' in context:
user_agent = context['request'].META.get('HTTP_USER_AGENT', 'Unknown')
else:
user_agent = 'Unknown'
for b in self._browsers:
if html.checkBrowser(user_agent, b):
return self._nodelistTrue.render(context)

View File

@ -42,7 +42,7 @@ from django.utils import timezone
from django.views.decorators.http import last_modified
from django.views.i18n import javascript_catalog
from uds.core.auths.auth import getIp, webLogin, webLogout, webLoginRequired, authenticate, webPassword, authenticateViaCallback, authLogLogin, authLogLogout
from uds.core.auths.auth import getIp, webLogin, webLogout, webLoginRequired, authenticate, webPassword, authenticateViaCallback, authLogLogin, authLogLogout, getUDSCookie
from uds.models import Authenticator, DeployedService, Transport, UserService, Network
from uds.web.forms.LoginForm import LoginForm
from uds.core.managers.UserServiceManager import UserServiceManager
@ -132,8 +132,9 @@ def login(request, smallName=None):
response = render_to_response(theme.template('login.html'), {'form': form, 'customHtml': GlobalConfig.CUSTOM_HTML_LOGIN.get(True)},
context_instance=RequestContext(request))
if 'uds' not in request.COOKIES:
response.set_cookie('uds', ''.join(random.choice(string.letters + string.digits) for _ in xrange(32)))
getUDSCookie(request, response)
return response