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)
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")
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)
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
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)
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]
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'}")
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)