Esempio n. 1
0
    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)
Esempio n. 2
0
 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="")
Esempio n. 3
0
    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)))
Esempio n. 4
0
 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,"<","&lt;")
     scrap = replace(scrap,">","&gt;")
     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)
Esempio n. 5
0
    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))
Esempio n. 6
0
 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) )))
Esempio n. 7
0
 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