Esempio n. 1
0
	def add_errors(self, error_list):
		
		logger.debug('The following are add_errors()')
		for error in self._get_error_list(error_list):
			if error.startswith("This field is required"):
				error = "Required fields are marked with an asterisk"
			
			logger.debug('\t{}'.format(error))
			self.error(error)
Esempio n. 2
0
	def _has_access(self, request, *args, **kwargs):
		if self.login_required:
			view_perm = self._get_view_perm(*args, **kwargs)
			if not request.user.has_perm(view_perm):
				logger.debug('Failed permission check {}'.format(view_perm))
				return False
			
			logger.debug('Has view permission: {}'.format(view_perm))
		return True
	def default(self, o):
		
		if hasattr(o, '__json__'):
			return o.__json__(self.default)
		if isinstance(o, (QuerySet, set)):
			return list(o)
		elif isinstance(o, (types.FunctionType, types.LambdaType)):
			logger.debug("Tried to jsonify a function or lambda")
			return str(o)
		elif isinstance(o, EnumItem):
			return int(o)
		else:
			return super(AsymJSONEncoder, self).default(o)
	def default(self, o):
		
		if hasattr(o, '__json__'):
			return o.__json__(self.default)
		if isinstance(o, (QuerySet, set)):
			return list(o)
		elif isinstance(o, (types.FunctionType, types.LambdaType)):
			try:
				from asymmetricbase.logging import logger
				logger.debug("Tried to jsonify a function or lambda")
			except ImportError:
				pass
			return str(o)
		elif isinstance(o, EnumItem):
			return int(o)
		else:
			return super(AsymJSONEncoder, self).default(o)
Esempio n. 5
0
	def dispatch(self, request, *args, **kwargs):
		try:
			self.request = request
			logger.debug('BEGIN REQUEST *********** {}'.format(request.path))
			if not self._login_requirement_ok(request):
				logger.debug('Login requirement is not ok, redirecting')
				self.error('You were not logged in properly. Please try again')
				return redirect('{}?{}={}'.format(
					reverse(getattr(settings, 'ASYM_FAILED_LOGIN_URL', settings.LOGIN_REDIRECT_URL)),
					REDIRECT_FIELD_NAME,
					request.path,
				))
			
			if hasattr(request, 'user'):
				logger.debug('User is: {}'.format(request.user))
			else:
				logger.debug('No user in request')
			permissions_required = self._merge_attr('permissions_required')
			
			logger.debug('The required permissions are {}'.format(permissions_required))
			
			logger.debug('AsymBaseView: Getting form data')
			self.get_form_data()
			
			# Do any preprocessing, which should also fill out the arguments
			# for the forms
			logger.debug('AsymBaseView: Preprocess')
			self.preprocess(request, *args, **kwargs)
			
			# Create the form instances, and place into context
			logger.debug('AsymBaseView: LoadForms')
			self.load_forms(request)
			
			logger.debug("AsymBaseView: Predispatch")
			self.predispatch(request, *args, **kwargs)
			
			logger.debug("AsymBaseView: Has Access")
			if not self._has_access(request, *args, **kwargs):
				self.error("You do not have permission to view that page")
				return redirect(reverse(getattr(settings, 'ASYM_FAILED_LOGIN_URL')))
			
			try:
				logger.debug('AsymBaseView: dispatch')
				response = super(AsymBaseView, self).dispatch(request, *args, **kwargs)
			except ForceRollback:
				# Ignore these because they're not real exceptions
				response = self.render_to_response()
			except ContentNotRenderedError as e:
				logger.exception('Content not rendered for template {}.'.format(self.template_name))
				self.template_name = '500.djhtml'
				return self.render_to_response()
			
			logger.debug('END REQUEST*********')
			return response
		except DeveloperTODO as e:
			logger.error('{}'.format(e))
			self.template_name = 'todo_error.djhtml'
			return self.render_to_response()