示例#1
0
    def get (self, registry_id, name_id):
        user = self.get_current_user()
        _va = model.Videoaula().retrieve_by_name_id(registry_id, name_id)
        if _va:
            ext = _va.arqvideo.split(".")[-1]

            links = []
            if isUserOrOwner(user, registry_id) or user == objectOwnerFromService("videoaula", registry_id, name_id):
                links.append((u"Alterar permissões desta videoaula", "/static/imagens/icones/permissions32.png", "/permission/videoaula/"+registry_id+"/"+name_id, "", "", True))     
            if isAllowedToDeleteObject(user, _va.owner, registry_id+"/"+name_id):
                links.append(("Remover esta videoaula", "/static/imagens/icones/delete32.png", "/videoaula/delete/"+registry_id+"/"+name_id,
                              "return confirm('Deseja realmente remover esta videoaula?');"))            
            self.render("modules/videoaula/videoaula-edit.html", NOMEPAG="videoaulas", VIDEODATA=_va, \
                        FOLDERS = files.model.Files.listFolders(user, registry_id, "files/all_data"), \
                        SORTEDKEYS=sortedKeys, MIME_TYPE=mime_types[ext],            
                        LINKS=links, \
                        REGISTRY_ID=registry_id, MSG="")
        else:
            raise HTTPError(404)
示例#2
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))