def __init__(self,caller_object,request,*args,**kw): self.rtimer = Timer() self.rtimer.start() self.rcount = RequestCounter() self.path = request.path self.rcount.req_path = maxStr(256)(request.path) self.fetchRequestMeta(self.rcount,request) self.rcount.save() self.req_id = self.rcount.id self.args = copy.deepcopy(args) #For debugging purposes self.kw = copy.deepcopy(kw) #Also for debuggin purposes self.selflink = kw.pop("self_link") self.template_file = kw.pop("template_file","default.html") self.view_name = kw.pop("view_name") #Required keyword self.view_object = caller_object self.view_class = caller_object.__class__.__name__ self.view_method = getattr(self.view_object,self.view_name) self.cm = kw.pop("cache_manager") self.crypto_key = app.settings.CRYPTO_KEY self.aes = app.crypttools.Aes_wrapper(self.crypto_key) self.request = request self.session = request.session self.raw = request.raw_post_data self.ctx = {} self.ctx["static_path"] = app.settings.STATIC_PATH self.ctx["links"] = caller_object.links self.ctx["debug"] = {} self.ctx["title"] = kw.pop("title",None) self.ctx["extra_headers"] = [] self.configUser() self.logger = ViewLogger(self) self.logger.log("Entering %s.%s",self.view_class,self.view_name)
class ReqContainer(object): def __init__(self,caller_object,request,*args,**kw): self.rtimer = Timer() self.rtimer.start() self.rcount = RequestCounter() self.path = request.path self.rcount.req_path = maxStr(256)(request.path) self.fetchRequestMeta(self.rcount,request) self.rcount.save() self.req_id = self.rcount.id self.args = copy.deepcopy(args) #For debugging purposes self.kw = copy.deepcopy(kw) #Also for debuggin purposes self.selflink = kw.pop("self_link") self.template_file = kw.pop("template_file","default.html") self.view_name = kw.pop("view_name") #Required keyword self.view_object = caller_object self.view_class = caller_object.__class__.__name__ self.view_method = getattr(self.view_object,self.view_name) self.cm = kw.pop("cache_manager") self.crypto_key = app.settings.CRYPTO_KEY self.aes = app.crypttools.Aes_wrapper(self.crypto_key) self.request = request self.session = request.session self.raw = request.raw_post_data self.ctx = {} self.ctx["static_path"] = app.settings.STATIC_PATH self.ctx["links"] = caller_object.links self.ctx["debug"] = {} self.ctx["title"] = kw.pop("title",None) self.ctx["extra_headers"] = [] self.configUser() self.logger = ViewLogger(self) self.logger.log("Entering %s.%s",self.view_class,self.view_name) def configUser(self): self.user = None self.roles = set() self.ctx["roles"] = [] self.ctx["uid"] = self.uid = None try: uid = self.session["uid"] user = User.objects.get(uid=uid) except (User.DoesNotExist, KeyError): return self.ctx["uid"] = self.uid = uid self.user = user self.ctx["roles"] = [] allRoles = Role.objects.all() userRoles = Role.objects.filter(user__uid=uid) allRolesSet = set([r.name for r in allRoles]) userRoleSet = set([r.name for r in userRoles]) self.roles = set() for role in allRoles: if role.name in userRoleSet: color="td_green" self.roles.add(role.name) else: color="td_gray" val = {} val["color"] = color val["name"] = role.name val["desc"] = role.desc self.ctx["roles"].append(val) return def killsession(self): session = self.request.session for key in session.keys(): del session[key] session.modified = True return def form_named(self): if self.request.method == "POST" and "form_name" in self.request.POST: form_name = self.request.POST["form_name"] elif self.request.method == "GET" and "form_name" in self.request.GET: form_name = self.request.GET["form_name"] else: form_name = None return form_name def fetchRequestMeta(self,rcount,request): for (name,cookfunc) in metaMap: val = request.META.get(name,None) cooked_val = cookfunc(val) setattr(rcount,name,cooked_val)