def get(self): user = self.get_current_user() friend = self.get_argument('friend', "") if isFriendOrMember(user, friend): self.render("modules/scrapbook/scrap-form.html", MSG="",NOMEPAG='recados', REGISTRY_ID=user, FRIEND=friend) else: self.render("home.html", MSG=u"Você só pode enviar recados para seus amigos ou para comunidades que participa.", \ NOMEPAG='recados', REGISTRY_ID=friend)
def isAllowedToReadObject(user, servico, registry_id, nomeobj=""): perm_id = "%s/%s/%s" % (servico, registry_id, nomeobj) _perm = permission.model.Permission().retrieve(perm_id) if not _perm: if servico in ["evaluation", "quiz"]: # "acesso_comunidade" return (isUserOrMember(user, registry_id)) elif servico in ["question"]: # "acesso_privado" return (isUserOrOwner(user, registry_id)) else: # "acesso_activ" return (user!="" and user!=None) if _perm.escopo_R == "acesso_privado": return (user == _perm.owner or isUserOrOwner(user, registry_id)) if _perm.escopo_R == "acesso_grupos": # permite acesso ao dono do objeto e ao dono/admin da comunidade if (user == _perm.owner or isUserOrOwner(user, registry_id)): return True # permite acesso aos participantes dos grupos selecionados _reg = core.model.Registry().retrieve(registry_id) if not _reg: return False for group in _perm.grupos_R: if user in _reg.getGroups[group]: return True return False if _perm.escopo_R == "acesso_comunidade": #return (isUserOrMember(user, registry_id)) return (isFriendOrMember(user, registry_id)) if _perm.escopo_R == "acesso_activ": return (user!="" and user!=None) if _perm.escopo_R == "acesso_publico": return True return False
def get(self, registry_id): user = self.get_current_user() page = int(self.get_argument("page","1")) if isFriendOrMember(user, registry_id): self._scrap = model.Scrapbook().retrieve(registry_id) scrap_list = [] scraps_count = 0 if self._scrap!=None: filter = not isUserOrMember(user, registry_id) scrap_list = self._scrap.getScrapbookList(user, page=page, page_size=NUM_MAX_SCRAPS, \ filter=filter) scraps_count = self._scrap.countScraps(user, filter=filter) self.render("modules/scrapbook/scrap-list.html", REGISTRY_ID=registry_id, \ USER=user, NOMEPAG='recados', \ APAGAR=isUserOrOwner(user, registry_id), \ SCRAPDATA=scrap_list, SCRAPS_COUNT = scraps_count, \ PAGE=page, PAGESIZE=NUM_MAX_SCRAPS) else: raise HTTPError(403)
def post(self): user = self.get_current_user() friend = self.get_argument('friend', "") scrap = self.get_argument('scrap', "") # trata injeção de tags html e acrescenta links nas urls scrap = replace(scrap,"<","<") scrap = replace(scrap,">",">") scrap = processa_url(scrap) if isFriendOrMember(user, friend): msg = '' if friend and getType(friend)[0] in ["member" , "community"]: if scrap: # saveScrap ----------------------------------------- self._scrap = model.Scrapbook().retrieve(friend) if not self._scrap: self._scrap = model.Scrapbook(user_to=friend) self._scrap.saveScrap(user_from=user, scrap=scrap) # --------------------------------------------------- # notifica quem recebeu o recado email_msg = scrap+"\n"+\ Notify.assinatura (user, friend, self._scrap.recados[0].data)+"\n\n" Notify.email_notify(friend, user, u"enviou um recado para %s" % friend, \ message=email_msg, link="scrap/"+friend) log.model.log(user, u'enviou recado para', objeto=friend, tipo="user", news=False) self.redirect ("/scrap/%s" % friend) else: self.render("home.html", MSG=u'Você não escreveu o seu recado.',\ NOMEPAG='recados', REGISTRY_ID=friend) else: raise HTTPError(404) else: raise HTTPError(403)
def isAllowedToComment(user, doc_id, owner): # todos os participantes da comunidade ou amigos do usuário podem comentar o objeto (registry_id, post_id) = doc_id.split("/") return ((owner == user) or isFriendOrMember(user, registry_id))