Ejemplo n.º 1
0
 def view(self,id=0):
     if not self.user:
         self.redirect('/')
     
     if self.user.issysadmin and id > 0:
         person = Person.get(-1,id)
     elif id > 0: 
         person = Person.get(self.user.site_id,id)
     
     return self._view(person,True)
Ejemplo n.º 2
0
    def edit_POST(self, id=0):
        """
        User has selected to change site config info
        """
        site = Site.get(-1, self.get_argument("id"))
        form = SiteForm(QueryDict(self.request.arguments))
        if form and site and form.validate():

            if site is None:
                self.add_error("We experienced an error, please try again")

            else:
                site.name = form.name.data
                log.debug("description pre sanitize = %s" % form.description.data)
                site.description = sanitize.sanitize(form.description.data)
                site.email = form.email.data
                site.slug = self.get_argument("real_permalink")
                # TODO, check uniqueness
                site.public = bool(form.public.data)
                site.base_url = form.base_url.data
                site.site_url = form.site_url.data
                site.save()

                # refresh session store
                user = Person.get(self.user.site_id, self.user.id)
                self.set_current_user(user)
                self.add_alert("Site settings were updated")

        else:
            log.error(form.errors)
            log.error("There was an Error site=%s  form.data%s" % (site, form.data))
            self.add_error("There was an Error")
            return self.render("/site/site_edit.html", item=site, form=form)
        return self.redirect("/site/view?msg=Site+Updated")
Ejemplo n.º 3
0
 def index(self,id=''):
     if id > 0:
         person = Person.get(self.user.site_id,id)
         activities = Activity.activity_by_person(self.user.site_id,id)
         activities_by_day = Activity.stats_by_person(self.user.site_id,id)
         categories = Activity.categories(self.user.site_id,id)
         return self.render('/activity.html',person=person,activities=activities,
             activities_by_day=activities_by_day,categories=categories)
     else:
         self.write("no id?  %s" % id)
Ejemplo n.º 4
0
 def object_load_dict(self,o,data_dict):
     'http post handle args'
     if 'post_type' in data_dict:
         o.post_type = data_dict['post_type']
         data_dict.pop('post_type')
     if 'demisauce_id' in data_dict:
         o.person_id = int(data_dict['demisauce_id'])
         data_dict.pop('demisauce_id')
         p = Person.get(self.site.id,o.person_id)
         o.displayname = p.displayname
     return data_dict
Ejemplo n.º 5
0
 def account_edit(self,id=0):
     """
     User has selected to update profile
     """
     if self.user and self.has_args('email','id'):
         id = int(self.get_argument('id'))
         if id == self.user.id or self.user.isadmin:
             user = Person.get(self.user.site_id,id)
             user.displayname = self.get_argument('displayname')
             user.set_email(self.get_argument('email'))
             user.url = self.get_argument('url')
             user.save()
         if id == self.user.id:
             self.set_current_user(user)
     self.render('/user/settings.html',person=user)
Ejemplo n.º 6
0
 def action_get_object(self,id, data_dict = {}):
     if isinstance(self.id,int) and self.id > 0:
         #meta.DBSession.close()
         #meta.DBSession()
         self.object = Person.get(self.site.id,self.id)
         if not self.object:
             # ??
             self.object = Person.by_foreignid(self.site.id,self.id)
     elif isinstance(self.id,int) and self.id == 0 and 'email' in data_dict:
         self.object = Person.by_email(self.site.id,data_dict['email'].lower())
     elif 'foreign_id' in data_dict:
         self.object = Person.by_foreignid(self.site.id,data_dict['foreign_id'])
     else:
         id = urllib.unquote_plus(self.id)
         if mailsrch.match(id):
             self.object = Person.by_email(self.site.id,id)
         else:
             self.object = Person.by_hashedemail(self.site.id,id)
         log.debug('getting by hashed/email:  %s, %s' % (id, self.object))
     if self.object:
         self.qry = [self.object]
Ejemplo n.º 7
0
 def init_user(self):
     # Need site?   
     ds_id = self.id
     site_key = self.db.cache.get(str(ds_id))
     log.debug("init_user ds_id,site_key = %s = %s" % (ds_id,site_key))
     if site_key:
         site = Site.by_apikey(str(site_key))
         if site:
             user = Person.get(site.id,ds_id)
             if not user:
                 log.error("user not found? id = %s" % ds_id)
         else:
             log.error("no site? %s" % ds_id)
             
         self.set_current_user(user,is_authenticated = True)
         log.debug("tried to init_user succeeded")
         self.set_status(204) # succuess, no content
     else:
         log.error("tried to init_user failed ds_id = %s, url=%s" % (ds_id,self.request.full_url()))
         self.set_status(400)
         self.write("{'status':'failure'}")
Ejemplo n.º 8
0
 def view_mini(self,id=0):
     person = None
     if id > 0:
         person = Person.get(self.user.site_id,id)
     self.render('/user/profile_mini.html',person=person)