Exemple #1
0
 def action_get_object(self,id, data_dict = {}):
     if self.site.is_sysadmin == True or (self.site.id == self.id or self.site.slug == self.id):
         if type(id) == int and id > 0:
             self.object = Site.saget(id) 
         elif type(id) == int and id == 0 and 'slug' in data_dict:
             log.debug("they asked for id = 0, lets ignore and doublecheck slug = %s" % data_dict['slug'])
             self.object = Site.by_slug(data_dict['slug'])
         else:
             log.debug("they asked for id = %s, lets ignore and doublecheck slug" % (self.id))
             self.object = Site.by_slug(self.id)   
         if self.object:
             self.qry = [self.object]
         else:
             self.set_status(404)
             log.error("no site %s, status=%s" % (self.id, self._status_code))
Exemple #2
0
 def feedbackform(self,id=''):
     site = Site.by_slug(str(id))
     if site:
         c.site = site
         help = Help(site_id=site.id,email=sanitize(self.form_result['email']))
         if c.user:
             help.set_user_info(c.user)
         else:
             if 'authorname' in self.form_result:
                 help.authorname = sanitize(self.form_result['authorname'])
             if 'blog' in self.form_result:
                 help.blog = sanitize(self.form_result['blog'])
             if help.blog == "your blog url":
                 help.blog = ''
         if 'category' in self.form_result:
             help.category = sanitize(self.form_result['category'])
         help.url = sanitize(self.form_result['url'])
         help.content = sanitize(self.form_result['content'])
         if 'HTTP_X_FORWARDED_FOR' in request.environ:
             help.ip = request.environ['HTTP_X_FORWARDED_FOR']
         elif 'REMOTE_ADDR' in request.environ:
             help.ip = request.environ['REMOTE_ADDR']
         help.save()
         if 'goto' in request.POST and len(request.POST['goto']) > 5:
             c.goto_url = request.POST['goto']
             return render('/refresh.html')
         else:
             c.result = True
             return render('/help/help_feedback.html')
         
     else:
         log.error('feedback from came in with no site id=%s, params= %s' % (id,request.params))
     return render('/help/help_feedback.html')
Exemple #3
0
 def submitfeedback(self,id):
     site = Site.by_slug(str(id))
     if site:
         c.site_slug = site.slug
     if 'url' in request.params:
         c.current_url = request.params['url']
     c.hasheader = True
     c.isblue = False
     return render('/help/help_feedback.html')
Exemple #4
0
 def feedback(self,id):
     site = Site.by_slug(str(id))
     if site:
         c.site_slug = site.slug
     if 'url' in request.params:
         c.current_url = request.params['url']
     c.category = 'help'
     if 'category' in request.params:
         c.category = sanitize(request.params['category'])
     c.isblue = True
     return render('/help/help_feedback.html')
Exemple #5
0
 def handshake(self,id=0):
     if 'token' in request.params and 'site_slug' in request.params:
         # start a handshake, to figure out if we know this user.
         site = Site.by_slug(str(request.params['site_slug']))
         if site and site.id > 0:
             # lookup user?  how?  
             expire_seconds = 60*60*24*31
             #TODO:  verify that url it came from is in site config
             response.set_cookie('dsu', user.public_token(),path='/',
                     expires=expire_seconds, secure=False)
         return ''
     elif 'usertoken' in request.params:
         pass
         
     """
Exemple #6
0
 def ratearticle(self,id=''):
     site = Site.by_slug(str(id))
     data = {'success':False}
     if site and 'resource_id' in request.params:
         userid = 0
         #TODO:  add rating_ct to ??? (context?  help?  cms?)
         displayname = 'anonymous'
         if c.user:
             userid = c.user.id
             displayname = c.user.displayname
         rating_val = int(request.params['rating'])
         r = Rating(userid,'/ds/help/article',rating_val,sanitize(request.params['resource_id']),displayname)
         r.save()
         data = {'success':True,'html':r.id}
     json = simplejson.dumps(data)
     response.headers['Content-Type'] = 'text/json'
     return '%s(%s)' % (request.params['jsoncallback'],json)
Exemple #7
0
    def js2(self, id=""):
        slug = id
        hash = compute_userhash()
        # verify that they
        if hash != None and "url" in request.params:
            site = Site.by_slug(str(slug))
            url = str(request.params["url"])
            url = url[: url.find("/", 8)]
            if site and len(url) > 5 and url in site.site_url:
                # filter comments for just url being requested
                c.site = site
                c.url = str(request.params["url"])
                c.items = Comment.for_url(site, request.params["url"])
                return render("/comment/comment_js2.js")
            else:
                log.error("%s not in site_url" % (url))
        else:
            log.info("not in site_url")

        return (
            """document.getElementById('demisauce-comments').innerHTML = '<a href="%s/">Sorry Go to Demisauce to Comment</a>';"""
            % c.base_url
        )
Exemple #8
0
 def commentform(self, id=0):
     site = Site.by_slug(str(id))
     c.source = "js"
     if site and site.id > 0:
         c.site_slug = site.slug
         c.site = site
         if "source" in request.params:
             c.source = request.params["source"]
         c.resource_id = ""
         if "rid" in request.params:
             c.resource_id = request.params["rid"]
         if request.GET.has_key("url"):
             c.goto_url = request.GET["url"]
         else:
             if c.user:
                 c.goto_url = c.user.url
             else:
                 c.goto_url = "http://www.google.com"
     else:
         raise Exception("that site was not found")
     # c.hasheader = False
     # c.isblue = True
     return render("/comment/comment_commentform.html")
Exemple #9
0
    def commentsubmitjsonp(self, id=""):
        site = Site.by_slug(str(id))
        if site:
            c.site = site
            item = Comment(site_id=site.id)
            if c.user:
                item.set_user_info(c.user)
                a = activity.Activity(site_id=c.user.site_id, person_id=c.user.id, activity="Commenting")
                # a.ref_url = 'comment url'
                a.category = "comment"
                a.save()
            else:
                if "authorname" in request.params:
                    item.authorname = sanitize(request.params["authorname"])
                if "blog" in request.params:
                    item.blog = sanitize(request.params["blog"])
                if "email" in request.params:
                    item.set_email(sanitize(request.params["email"]))
                if item.blog == "your blog url":
                    item.blog = ""

            # prod environment proxy: apache
            if "HTTP_X_FORWARDED_FOR" in request.environ:
                item.ip = request.environ["HTTP_X_FORWARDED_FOR"]
            elif "REMOTE_ADDR" in request.environ:
                item.ip = request.environ["REMOTE_ADDR"]

            if "comment" in request.params:
                item.comment = sanitize(request.params["comment"])
            if "type" in request.params:
                item.type = sanitize(request.params["type"])
            else:
                item.type = "blogentry"

            if "rid" in request.params:
                item.uri = urllib.unquote_plus(request.params["rid"].lower())

            item.save()

            # send emails
            from demisauce.lib import scheduler

            dnew = {
                "sitename": c.site.name,
                "displayname": item.authorname,
                "email": item.email,
                "url": "dest",
                "blog": item.blog,
            }
            scheduler.add_interval_task(send_emails, 0, ("comment-notification", [c.site.email], dnew), initialdelay=4)

            if "jsoncallback" in request.params:
                c.items = [item]
                data = {"success": True, "html": render("/comment/comment_nobody.html")}
                json = simplejson.dumps(data)
                response.headers["Content-Type"] = "text/json"
                return "%s(%s)" % (request.params["jsoncallback"], json)
        else:
            # TODO panic?
            raise "eh"
            pass
        return
Exemple #10
0
    def commentsubmit(self, id=""):
        site = Site.by_slug(str(id))
        if site:
            c.site = site
            item = Comment(site_id=site.id)
            if c.user:
                item.set_user_info(c.user)
                a = activity.Activity(site_id=c.user.site_id, person_id=c.user.id, activity="Commenting")
                # a.ref_url = 'comment url'
                a.category = "comment"
                a.save()
            else:
                item.authorname = sanitize(self.form_result["authorname"])
                item.blog = sanitize(self.form_result["blog"])
                if self.form_result.has_key("email"):
                    item.set_email(sanitize(self.form_result["email"]))
                if item.blog == "your blog url":
                    item.blog = ""
            # prod environment proxy: apache
            if "HTTP_X_FORWARDED_FOR" in request.environ:
                item.ip = request.environ["HTTP_X_FORWARDED_FOR"]
            elif "REMOTE_ADDR" in request.environ:
                item.ip = request.environ["REMOTE_ADDR"]

            item.comment = sanitize(self.form_result["comment"])
            if self.form_result.has_key("type"):
                item.type = sanitize(self.form_result["type"])
            else:
                item.type = "blogentry"

            if self.form_result.has_key("goto"):
                dest = self.form_result["goto"]
                item.uri = dest
            elif c.user:
                dest = c.user.url
            else:
                # TODO panic?
                return

            if "rid" in self.form_result:
                item.uri = self.form_result["rid"].lower()

            item.save()

            # send emails
            from demisauce.lib import scheduler

            dnew = {
                "sitename": c.site.name,
                "displayname": item.authorname,
                "email": item.email,
                "url": dest,
                "blog": item.blog,
            }
            scheduler.add_interval_task(send_emails, 0, ("comment-notification", [c.site.email], dnew), initialdelay=4)
            # TODO  '?#demisauce-comments'
            c.goto_url = dest
            c.resource_id = ""
            if "rid" in self.form_result:
                c.resource_id = self.form_result["rid"]
            source = "js"
            if "source" in self.form_result:
                source = self.form_result["source"]
            if "jsoncallback" in request.params:
                data = {"success": True, "html": item.comment}
                json = simplejson.dumps(data)
                response.headers["Content-Type"] = "text/json"
                return "%s(%s)" % (request.params["jsoncallback"], json)
            # if source == 'js':
            #    return render('/refresh.html')
            # else:
            c.items = [item]
            # c.show_form = False
            return render("/comment/comment_nobody.html")
        else:
            # TODO panic?
            raise "eh"
            pass
        return