Пример #1
0
  def post(self, registry_id):               
      user = self.get_current_user()
      msg = ""
      if isUserOrOwner(user, registry_id):
          grupo = self.get_argument("grupo","")
          p = re.compile(VALID_LOGIN)
          if not grupo:
              msg = u"Grupo não preenchido."    
          elif not p.match(grupo):
              msg = u"Nome inválido. Deve ter no mínimo 3 caracteres, começando e terminando com letras ou números e utilizando apenas letras, números, '_' e '.' em sua composição. Não utilize acentuação!<br/>"                    
          else:
              user_data = _EMPTYCOMMUNITY()
              user_data.update(core.database.REGISTRY[registry_id])
              if grupo not in user_data["groups"]:
                  user_data["groups"][grupo] = []
                  core.database.REGISTRY[registry_id] = user_data     
                  msg = u"Grupo criado com sucesso."
              else:
                  msg = u"Grupo já existente."                    
 
      elif isACommunity(registry_id):
          msg=u"Somente administradores da comunidade podem criar grupos."  
      else:
          msg=u"Somente o próprio usuário pode criar grupos."
          
      self.render("popup_msg.html", MSG=msg, REGISTRY_ID=registry_id)                    
Пример #2
0
 def get(self, registry_id):               
     user = self.get_current_user()
     if isUserOrOwner(user, registry_id):
         user_data = _EMPTYCOMMUNITY()
         user_data.update(core.database.REGISTRY[registry_id])
         groups = user_data["groups"].keys()
         
         self.render("modules/community/create-group.html", NOMEPAG='comunidades', \
                     GROUPS=groups, \
                     REGISTRY_ID=registry_id, MSG="")   
     elif isACommunity(registry_id):
         self.render("home.html", MSG=u"Somente administradores da comunidade podem criar grupos.", NOMEPAG='comunidades')  
     else:
         self.render("home.html", MSG=u"Somente o próprio usuário pode criar grupos.", NOMEPAG='amigos')  
Пример #3
0
    def get(self, registry_id):               
        user = self.get_current_user()
        if isACommunity(registry_id):
            if isUserOrOwner(user, registry_id):
                part = self.get_argument("part","")
                group = self.get_argument("group","")
    
                user_data = _EMPTYCOMMUNITY()
                user_data.update(core.database.REGISTRY[registry_id])
                if part:
                    groups = [(group, part in user_data["groups"][group]) for group in user_data["groups"].keys()]
                    
                    self.render("modules/community/update-groups.html", NOMEPAG='comunidades', \
                                PART=part, GROUPS=groups, \
                                REGISTRY_ID=registry_id, MSG="")   
                elif group:
                    parts = [(part, part in user_data["groups"][group]) for part in user_data["participantes"] if isAUser(part)]
                    self.render("modules/community/update-parts.html", NOMEPAG='comunidades', \
                                PARTS=parts, GROUP=group, \
                                REGISTRY_ID=registry_id, MSG="")                   
                else:
                    self.render("home.html", MSG=u"Chamada inválida.", NOMEPAG='comunidades')                    
            else:
                    self.render("home.html", MSG=u"Somente administradores da comunidade podem agrupar participantes.", NOMEPAG='comunidades')  

        else:
            if isUserOrOwner(user, registry_id):
                part = self.get_argument("part","")
                group = self.get_argument("group","")
    
                user_data = _EMPTYMEMBER()
                user_data.update(core.database.REGISTRY[registry_id])
                if part:
                    groups = [(group, part in user_data["groups"][group]) for group in user_data["groups"].keys()]
                    
                    self.render("modules/community/update-groups.html", NOMEPAG='amigos', \
                                PART=part, GROUPS=groups, \
                                REGISTRY_ID=registry_id, MSG="")   
                elif group:
                    parts = [(part, part in user_data["groups"][group]) for part in user_data["amigos"]]
                    self.render("modules/community/update-parts.html", NOMEPAG='amigos', \
                                PARTS=parts, GROUP=group, \
                                REGISTRY_ID=registry_id, MSG="")                   
                else:
                    self.render("home.html", MSG=u"Chamada inválida.", NOMEPAG='amigos')                    
            else:
                    self.render("home.html", MSG=u"Somente o próprio usuário pode agrupar seus amigos.", NOMEPAG='amigos')                              
Пример #4
0
    def post(self, registry_id):               
        user = self.get_current_user()
        if isUserOrOwner(user, registry_id):
            part = self.get_argument("part","")
            group = self.get_argument("group","")

            if isACommunity(registry_id):
                user_data = _EMPTYCOMMUNITY()
            else:
                user_data = _EMPTYMEMBER()
            user_data.update(core.database.REGISTRY[registry_id])
            
            if part:
                for group in user_data["groups"].keys():
                    checkbox_value = self.get_argument(group,"")
                    if checkbox_value=="S" and part not in user_data["groups"][group]:
                        user_data["groups"][group].append(part)
                    elif checkbox_value<>"S" and part in user_data["groups"][group]:
                        while part in user_data["groups"][group]:
                            user_data["groups"][group].remove(part)
                core.database.REGISTRY[registry_id] = user_data
                     
                self.render("popup_msg.html", MSG=u"Grupos alterados com sucesso.", REGISTRY_ID=registry_id)
                
            elif group:
                pessoas = user_data["participantes"] if isACommunity(registry_id) else user_data["amigos"]
                for part in pessoas:
                    checkbox_value = self.get_argument(part,"")
                    if checkbox_value=="S" and part not in user_data["groups"][group]:
                        user_data["groups"][group].append(part)
                    elif checkbox_value<>"S" and part in user_data["groups"][group]:
                        while part in user_data["groups"][group]:
                            user_data["groups"][group].remove(part)
                core.database.REGISTRY[registry_id] = user_data
                     
                self.render("popup_msg.html", MSG=u"Participantes alterados com sucesso.", REGISTRY_ID=registry_id)               

            else:
                self.render("popup_msg.html", MSG=u"Chamada inválida.")                    
             
        else:
            if isACommunity(registry_id):
                self.render("popup_msg.html", MSG=u"Somente administradores da comunidade podem agrupar participantes.", REGISTRY_ID=registry_id)  
            else:                
                self.render("popup_msg.html", MSG=u"Somente o próprio usuário pode agrupar seus amigos.", REGISTRY_ID=registry_id)                    
Пример #5
0
    def get(self, registry_id):               
        user = self.get_current_user()
        grupo = self.get_argument("group","")
        if isUserOrOwner(user, registry_id):
            user_data = _EMPTYCOMMUNITY()
            user_data.update(core.database.REGISTRY[registry_id])
            if grupo in user_data["groups"]:
                del user_data["groups"][grupo]
                core.database.REGISTRY[registry_id] = user_data     
                if isACommunity(registry_id):
                    self.redirect ("/members/"+registry_id)
                else:
                    self.redirect ("/friends/"+registry_id)
                return
                    
            else:
                msg = u"Grupo não existente."   
        elif isACommunity(registry_id):
            msg = u"Somente administradores da comunidade podem excluir grupos."
        else:
            msg = u"Somente o próprio usuário pode excluir grupos."

        self.render("popup_msg.html", MSG=msg, REGISTRY_ID=registry_id)  
Пример #6
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))