コード例 #1
0
	def single_sign_on(self, token):
		"""Authenticate the client by given single sign on token"""
		session = self.single_sign_on.sessions.pop(token, None)
		if not session:
			CORE.warn('Unknown SSO token: %r' % (token,))
			return False

		self.__store_ip_in_session()
		expiration = get_expiration()
		user = self.getSession(User)
		self.addCookie('UMCSessionId', session.uid, path='/', expires=expiration)
		self.addCookie('UMCUsername', user.username, path='/', expires=expiration)
		return True
コード例 #2
0
	def render(self, request):
		user = request.getSession(User).user
		if not user:
			request.setResponseCode(BAD_REQUEST_INVALID_OPTS)  # HTTP FIXME
			return

		preferences = dict(self._get_preferences(request))
		new_preferences = dict(user.info.get('umcProperty', []))
		new_preferences.update(preferences)
		user.info['umcProperty'] = new_preferences.items()

		try:
			user.modify()
		except (udm_errors.base) as err:
			CORE.warn('Could not set given option: %s' % err)
			request.setResponseCode(BAD_REQUEST_INVALID_OPTS)  # HTTP FIXME
コード例 #3
0
	def render(self, request):
		lo, po = get_machine_connection()
		if not lo:
			# unjoined / no LDAP connection
			return []

		try:
			domaincontrollers = lo.search(filter="(objectClass=univentionDomainController)")
		except LDAPError as exc:
			CORE.warn('Could not search for domaincontrollers: %s' % (exc))
			return []

		hosts = [
			'%s.%s' % (computer['cn'][0], computer['associatedDomain'][0])
			for dn, computer in domaincontrollers
			if computer.get('associatedDomain')
		]
		hosts.sort()
		return dict(result=hosts)
コード例 #4
0
	def __check_max_file_size(self, filename):
		st_size = stat(filename).st_size
		if st_size > self.max_upload_size:
			CORE.warn('File of size %d could not be uploaded' % (st_size))
			self.setResponseCode(400)  # HTTP FIXME: 413 entity too large
			raise ValueError('The size of the uploaded file is too large.')