Example #1
0
        def wrapper():
            post = drdoom.request().POST

            response = fn()
            if 'adcopy_response' in post and 'adcopy_challenge' in post:
                captcha_response = req['adcopy_response']
                captcha_challenge = req['adcopy_challenge']
                if not f.etc.captcha.verify(captcha_response,
                                            drdoom.request().remote_addr,
                                            challenge=captcha_challenge):
                    Rumor.track_wizard(self)
                    drdoom.set_error(self.error_message)
                    response = HTTPFound(location='/confirm')

            return response
Example #2
0
        def wrapper():
            self.redirect = self.get_redirect()
            key = drdoom.request().matchdict
            uid = drdoom.get_uid()

            #Case for shopfront public is not exists
            if 'shopfront_name' in key:
                shopfront_name = key['shopfront_name']
                self.error_message = "No shop found here"
                if not f.model.shopfront.is_shopfront_published(
                        shopfront_name):
                    Rumor.track_wizard(self, shopfront_name=shopfront_name)
                    drdoom.set_error(self.error_message)
                    response = HTTPFound(location=self.redirect)
                else:
                    response = fn()
            else:
                #Case for the user haven't published their shopfront
                self.error_message = "Shopfront not published yet"
                shopfront_name = f.model.user.get_subdomain(uid)
                if not f.model.shopfront.is_shopfront_published(
                        shopfront_name):
                    Rumor.track_wizard(self, shopfront_name=shopfront_name)
                    response = HTTPFound(location=self.redirect)
                else:
                    response = fn()

            return response
Example #3
0
 def get_redirect(self):
     redirect = self.redirect
     get = drdoom.request().GET
     if _source in get:
         if get[_source] == _mobile:
             redirect = self.redirect_mobile
     return get_redirect(redirect)
Example #4
0
        def wrapper():
            post = drdoom.request().POST

            uid = drdoom.get('uid')
            if self.args in post:
                f.model.shopfront.update_details(uid, post[self.args])

            return fn()
Example #5
0
        def wrapper():
            post = drdoom.request().POST

            iid = drdoom.get('iid')
            if self.args in post:
                f.model.item.update_description(iid, post[self.args])

            return fn()
Example #6
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "not premium user"
            key = drdoom.request().matchdict
            uid = drdoom.get_uid()
            if f.model.user.is_premium(uid):
                response = fn()
            else:
                Rumor.track_wizard(self, uid=uid)
                response = HTTPFound(location=self.redirect)

            return response
Example #7
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "Subdomain is not being set"
            key = drdoom.request().matchdict
            uid = drdoom.get_uid()
            if not f.model.user.get_subdomain(uid):
                Rumor.track_wizard(self, uid=uid)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #8
0
def get_redirect(redirect):
    try:
        elements = redirect.split('/')
        request = drdoom.request().matchdict
        for i in range(len(elements)):
            element = elements[i]
            if '{' in element:
                element = request[element[1:-1]]
            elements[i] = element
        redirect = '/'.join(elements)
    except AttributeError, e:
        redirect = '/'
Example #9
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "Not the item owner"
            key = drdoom.request().matchdict
            uid = drdoom.get_uid()
            iid = int(key['iid'])
            if not f.model.item.is_item_owner(iid, uid):
                Rumor.track_wizard(self, iid=iid, uid=uid)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #10
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "No shop found here"
            key = drdoom.request().matchdict
            shopfront_name = key['shopfront_name']
            if not f.model.shopfront.get_owner(shopfront_name):
                Rumor.track_wizard(self, shopfront_name=shopfront_name)
                drdoom.set_error(self.error_message)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #11
0
 def get_redirect(self, redirect, ajax):
     if redirect == _dynamic:
         post = drdoom.request().POST
         redirect = post[
             'redirect_failed'] if 'redirect_failed' in post else '/'
     elif redirect == _referer:
         redirect = drdoom.referer()
     if ajax:
         res = dict()
         res['redirect'] = redirect
         response = Response(jsonpickle.encode(res))
     else:
         response = HTTPFound(location=redirect)
     return response
Example #12
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "not shopfront owner"
            key = drdoom.request().matchdict
            uid = drdoom.get_uid()
            shopfront_name = key['shopfront_name']
            if uid == f.model.shopfront.get_owner(shopfront_name):
                response = fn()
            else:
                Rumor.track_wizard(self,
                                   shopfront_name=shopfront_name,
                                   uid=uid)
                response = HTTPFound(location=self.redirect)

            return response
Example #13
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "item shopfront not exist"
            key = drdoom.request().matchdict
            if 'shopfront_name' in key:
                shopfront_name = key['shopfront_name']
                uid = f.model.shopfront.get_owner(shopfront_name)
            else:
                uid = drdoom.get_uid()
            iid = int(key['iid'])
            if not f.model.item.is_item_owner(iid, uid):
                Rumor.track_wizard(self, iid=iid, uid=uid)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #14
0
 def wrapper(request):
     JsParser.init()
     result = fn()
     get = drdoom.request().GET
     json_state = False if 'json' not in get else get['json']
     if json_state:
         response = dict()
         result = "".join(result)
         response['body'] = result
         response = jsonpickle.encode(response)
         response = Response(response)
     else:
         h = "".join(self.layout(result))
         route_name = "/".join(
             fn.__module__.split("view.")[-1].split("."))
         response = Response(h)
     mysterio.cleanup()
     return response
Example #15
0
        def wrapper():
            post = drdoom.request().POST

            #Handling the include
            if self.include is None:
                for key in post:
                    if key not in self.exclude:
                        drdoom.set(key, post[key][:self.limit])
            else:
                for key in self.include:
                    if key not in self.exclude:
                        drdoom.set(key, post[key][:self.limit])

            #Handling getall for checkboxes or multiple input with one name
            if self.getall is not None:
                for key in self.getall:
                    drdoom.set(key, post.getall(key))

            return fn()
Example #16
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "shopfront broadcast not exist"
            key = drdoom.request().matchdict
            if 'shopfront_name' in key:
                shopfront_name = key['shopfront_name']
                uid = f.model.shopfront.get_owner(shopfront_name)
            else:
                uid = drdoom.get_uid()
            broadcast_id = int(key['broadcast_id'])
            shopfront_id = f.model.broadcast.get_broadcast_source(broadcast_id)
            owner_id = f.model.shopfront.get_owner_by_id(shopfront_id)
            if owner_id != uid:
                Rumor.track_wizard(self, broadcast_id=broadcast_id, uid=uid)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #17
0
        def wrapper():
            self.redirect = self.get_redirect()
            self.error_message = "item does not exist"
            error = False
            key = drdoom.request().matchdict
            iid = key['iid']
            try:
                iid = int(iid)
                details = f.model.item.get_details(iid)
                if details is None:
                    error = True
            except:
                error = True
            if error:
                Rumor.track_wizard(self, iid=iid)
                response = HTTPFound(location=self.redirect)
            else:
                response = fn()

            return response
Example #18
0
 def wrapper(request):
     JsParser.init()
     result = fn()
     get = drdoom.request().GET
     json_state = False if 'json' not in get else get['json']
     history = False if 'history' not in get else True
     if history:
         drdoom.pop_history()
     if json_state:
         response = dict()
         result = "".join(result)
         response['body'] = result
         response = jsonpickle.encode(response)
         response = Response(response)
     elif type(result) is HTTPFound or self.layout is None:
         response = result
     elif self.layout is not None:
         h = "".join(self.layout(result) + JsParser.retrieve())
         route_name = "/".join(
             fn.__module__.split("view.")[-1].split("."))
         response = Response(h)
     mysterio.cleanup()
     return response
Example #19
0
 def check_error(self):
     post = drdoom.request().POST
     error = self.check_input(post)
     return error