Esempio n. 1
0
def fill_default(sender=None, instance=None, created=False, **kwargs):
	try:
		from current_user import get_current_user, get_request
		import datetime
		if hasattr(instance, 'owner'):
			if not instance.owner:
				u = get_current_user()
				if u and u.is_authenticated():
					instance.owner = u 
					
		if hasattr(instance, 'owner_ip'):
			if not instance.owner_ip:
				request = get_request()
				instance.owner_ip = request.META['REMOTE_ADDR']
				
		if hasattr(instance, 'created_on'):
			if not instance.created_on:
				instance.created_on = datetime.datetime.now()
			
		if hasattr(instance, 'updater'):
			u = get_current_user()
			if u and u.is_authenticated():
				instance.updater = u 

		if hasattr(instance, 'updated_on'):
			instance.updated_on = datetime.datetime.now()
	except:
		pass
Esempio n. 2
0
	def render(self, request):
		try:
			from django.template import Context, loader
			try:
				from current_user import get_current_user
				if self.Meta.required_login:
					if not get_current_user().is_authenticated():
						return ""
			except AttributeError:
				pass
			self.storage.push()
			try:
				self.storage['context'] = dict([ (k, getattr(self, k, v)) for k,v in self.context.items() ])
				self.storage['widget'] = self
				d = self.html(request)
				if isinstance(d, basestring):
					t = Template(d)
				else:
					t = loader.get_template(self.Meta.template)
					self.storage.update(d)
				return t.render(Context(self.storage))
			finally:
				self.storage.pop()
		except:
			if settings.TEMPLATE_DEBUG:
				import traceback
				traceback.print_exc()
			return ''
Esempio n. 3
0
	def render(self, context):
		from current_user import get_current_user
		user = get_current_user()
		if hasattr(user, '__templatejs__'):
			js = user.__templatejs__
			return "\n".join(js)
		return ''
Esempio n. 4
0
	def render(self, context):
		from current_user import get_current_user
		user = get_current_user()
		if not hasattr(user, '__templatejs__'):
			user.__templatejs__ = []
		out = self.nodelist.render(context)
		user.__templatejs__.append(out.strip())
		return '' 
Esempio n. 5
0
def setentity(parser, token):
	try:
		bits = token.contents.split()
		if len(bits) != 2:
			raise TemplateSyntaxError, "%s tag takes exactly one arguments" % bits[0]
		entity_name = bits[1]
		user = get_current_user()
		user.entity_name = entity_name
		return PageNode()
	except:
		pass
Esempio n. 6
0
	def render(self, context):
		if '_list_containers' in context:
			context['_list_containers'].append(self.container_name)
			return ''

		if '__layout__' not in context:
			user = get_current_user()
			if hasattr(user, 'custom_page_layout_name'):
				t = []
				for x in user.custom_page_layout_name:
					if x.startswith('='):
						x = Variable(x[1:]).resolve(context)
					t.append(x)
				user.custom_page_layout_name = t
				layout = None
				for x in t:
					try:
						layout = Layout.objects.get(slug=x)
						break
					except:
						pass 
				if not layout:
					layout = Layout.get(t[-1])
				if not layout:
					layout = Layout.get('base')
				if layout:
					context['__layout__'] = layout
				
		if '__layout__' not in context: 
			return '' 
			
		if 'entity' not in context:
			user = get_current_user()
			if hasattr(user, 'entity_name'):
				entity = Variable(user.entity_name).resolve(context)
				context['entity'] = entity
				
		layout = context.get('__layout__')
		entity = context.get('entity')
		return layout.render_container(entity, self.container_name, context)
Esempio n. 7
0
def page(parser, token):
	try:
		bits = token.contents.split()
		if len(bits) != 2:
			raise TemplateSyntaxError, "%s tag takes exactly one arguments" % bits[0]
		page_name = bits[1]
		user = get_current_user()
		if not hasattr(user, 'custom_page_layout_name'):
			user.custom_page_layout_name = []
		user.custom_page_layout_name.append(page_name)
		return PageNode()
	except:
		pass
Esempio n. 8
0
	def can(self):
		app = self.__class__._meta.app_label
		module = self.__class__._meta.module_name 
		action = can_something.__name__[4:]
		if '_' in action:
			x = '%s.%s' % (app, action)
		else:
			x = '%s.%s_%s' % (app, action, module)
		user = get_current_user()
		if user.has_perm("%s.%s" % (app,x)):
			return True 
		if user.is_authenticated():
			if hasattr(self, 'owner'):
				if user == self.owner:
					return True 
		return can_something(self)