def get(self): user = self.get_current_user() post_id = self.get_argument("id","") self._mblog = model.Mblog().retrieve(post_id) if self._mblog: mblog_data = self._mblog.props() registry_id = mblog_data["registry_id"] (type, privacidade) = getType(registry_id) if type == "member" or type == "community": if isAllowedToAccess(user, registry_id) == 0: mblog_data["apagar"] = (mblog_data["owner"] == user) mblog_data["data_cri"] = human_date(mblog_data["data_cri"]) if "data_original" in mblog_data: mblog_data["data_original"] = human_date(mblog_data["data_original"]) (permission, autocomplete) = autocomplete_mblog(user, registry_id) self.render("modules/mblog/post.html", NOMEPAG="microblog", \ REGISTRY_ID=registry_id, POST=mblog_data, \ MAX_CHR_MBLOG=MAX_CHR_MBLOG, \ PERMISSION=permission, \ AUTOCOMPLETE_LIST=autocomplete) else: raise HTTPError(403) else: # usuario suspenso raise HTTPError(404) else: raise HTTPError(404)
def get (self, service, registry_id, objeto=""): user = self.get_current_user() (registry_type, privacidade) = getType(registry_id) if not has_editable_permission(service): self.render("home.html", MSG=u"Serviço inválido.", REGISTRY_ID=registry_id, \ NOMEPAG='comunidades') return if service == "wiki" and objeto in ["home", "indice"]: service_perm = ( [(item, TXT_PERM[registry_type][item]) for item in ["acesso_activ","acesso_publico"]], [(item, TXT_PERM[registry_type][item]) for item in SERVICES[registry_type][service]["perm_w"]] ) elif privacidade == "Privada": service_perm = ( [(item, TXT_PERM[registry_type][item]) for item in ["acesso_privado", "acesso_grupos", "acesso_comunidade"]], [(item, TXT_PERM[registry_type][item]) for item in SERVICES[registry_type][service]["perm_w"]] ) else: service_perm = model.service_permissions (service, registry_type) groups = core.model.Registry().retrieve(registry_id).groups.keys() perm_id = '/'.join([service, registry_id, objeto]) self._perm = model.Permission().retrieve(perm_id) if not self._perm: self._perm = model.Permission(id=perm_id, \ leitura=model.default_permission("R", service, registry_type, privacidade), \ escrita=model.default_permission("W", service, registry_type, privacidade)) self.render("modules/permission/perm-edit.html", \ NOMEPAG=SERVICES[registry_type][service]["description"], \ REGISTRY_ID=registry_id, PERM_ID=perm_id, PERMDATA=self._perm, \ PATH=get_object_path(service, registry_id, objeto), \ SERVICE=service, GROUPS=groups, \ LEGENDA_R=SERVICES[registry_type][service]["legenda_perm_r"], \ LEGENDA_W=SERVICES[registry_type][service]["legenda_perm_w"], \ SERVICE_PERM=service_perm, \ MSG="")
def get (self, registry_id): user = self.get_current_user() folder = self.get_argument("folder","") page = int(self.get_argument("page","1")) paginas = [] (registry_type, privacidade) = getType(registry_id) # se não estou vendo a pasta raiz... if folder: folder_id = registry_id+"/"+folder self._wiki = model.Wiki().retrieve(folder_id) if self._wiki and self._wiki.is_folder=="S": path = self._wiki.getPagePath() pag_count = self._wiki.countFolderPages() # inclui referência .. para subir na árvore paginas.append(self._wiki) nomefolder = paginas[0]["nomepag"] paginas[0]["nomepag"] = ".." #paginas[0]["owner"] = self._wiki.owner paginas[0]["owner"] = "" paginas[0]["nomepag_id"] = paginas[0]["parent_folder"] paginas[0]["apagar"] = False paginas[0]["alterar"] = False paginas[0]["data_alt"] = "" paginas[0]["data_nofmt"] = "" paginas[0]["alterado_por"] = "" paginas[0]["registry_id"] = registry_id paginas[0]["mover"] = False paginas[0]["escrita"] = permission.model.default_permission("W", "wiki", registry_type, privacidade) paginas[0]["leitura"] = permission.model.default_permission("R", "wiki", registry_type, privacidade) if not isAllowedToReadObject(user, "wiki", registry_id, folder): self.write (dict(status=1, msg=u"Você não tem permissão para listar essa pasta.")) return else: self.write (dict(status=1, msg=u"Pasta não encontrada.")) return else: path = "/"+registry_id+"/" pag_count = model.Wiki.countRootFolderPages(registry_id) (sel_multipla, pags) = prepareFolderPages(user, model.Wiki.listFolderPages(user, registry_id, folder, page, NUM_MAX_WIKIPAGES), registry_type, privacidade) paginas.extend(pags) self.write (dict(status=0, result=dict(paginas=paginas, path=path, pag_count=pag_count, sel_multipla=sel_multipla)))
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 post(self, service, registry_id, objeto=""): user = self.get_current_user() registry_type = getType(registry_id)[0] user_data = _EMPTYCOMMUNITY() user_data.update(core.database.REGISTRY[registry_id]) groups = user_data["groups"].keys() grupos_r = [] grupos_w = [] for g in groups: if self.get_argument("escopo_R","")=="acesso_grupos" and self.get_argument("R_"+g, "") == "S": grupos_r.append(g) if self.get_argument("escopo_W","")=="acesso_grupos" and self.get_argument("W_"+g, "") == "S": grupos_w.append(g) leitura={"escopo":self.get_argument("escopo_R",""), "grupos":grupos_r} escrita={"escopo":self.get_argument("escopo_W",""), "grupos":grupos_w} data_agora = str(datetime.now()) perm_id = '/'.join([service, registry_id, objeto]) self._perm = model.Permission().retrieve(perm_id) if not self._perm: # Permissão não existe. Busco o owner do objeto. owner = objectOwnerFromService (service, registry_id, objeto) if owner==None: self.render("home.html", MSG=u"Serviço inválido.", REGISTRY_ID=registry_id, \ NOMEPAG='comunidades') return # crio a permissão deste objeto. self._perm = model.Permission(id=perm_id, \ owner=owner, \ service=service, registry_id=registry_id, nomeobj=objeto, \ data_cri = data_agora, \ leitura=leitura, escrita=escrita) else: self._perm.leitura = leitura self._perm.escrita = escrita self._perm.data_alt = data_agora self._perm.alterado_por = user self._perm.save() """ # notifica o dono da página alterada email_msg = u"Página alterada: "+doc_id+"\n"+\ Notify.assinatura(user, registry_id, self._wiki.historico[-1]["data_alt"])+"\n\n" Notify.email_notify(self._wiki.owner, user, u"alterou uma página criada por você", \ message=email_msg, \ link="wiki/"+doc_id) log.model.log(user, u'alterou a página', objeto=doc_id, tipo="wiki") self.redirect("/wiki/%s" % doc_id) """ self.render("modules/permission/perm-edit.html", \ NOMEPAG=SERVICES[registry_type][service]["description"], \ REGISTRY_ID=registry_id, PERM_ID=perm_id, PERMDATA=self._perm, \ MSG=u"Permissões alteradas", \ PATH=get_object_path(service, registry_id, objeto), \ SERVICE=service, GROUPS=groups, \ LEGENDA_R=SERVICES[registry_type][service]["legenda_perm_r"], \ LEGENDA_W=SERVICES[registry_type][service]["legenda_perm_w"], \ SERVICE_PERM=model.service_permissions (service, registry_type))
def get (self, registry_id): user = self.get_current_user() page = int(self.get_argument("page","1")) (sel_multipla, pags) = prepareFolderPages(user, model.Wiki.listFolderPages(user, registry_id, "", page, NUM_MAX_WIKIPAGES, True), getType(registry_id)[0]) pag_count = model.Wiki.countRemovedPages(registry_id) links = [] if isUserOrOwner(user, registry_id): links.append((u"Listar páginas", "/static/imagens/icones/wiki32.png", "/wiki/"+registry_id)) self.write (dict(status=0, result=dict(pag_count=pag_count, paginas=pags, page=page, pagesize=NUM_MAX_WIKIPAGES, e_usuario=isAUser(registry_id) )))
def assinatura (cls, user, registry_id, data): str = user if model.getType(registry_id)[0]=="community": str += " na comunidade %s" % registry_id str += u" em %s" % short_datetime(data) return str