Пример #1
0
def isAllowedToEditObject(user, owner, doc_id, edicao_publica="S"):
    # só o dono da comunidade ou dono do objeto ou
    # (qq membro se o objeto for de edição pública)
    (registry_id, nomeobj) = doc_id.split("/")
    return (user == owner or \
            isUserOrOwner(user, registry_id) or \
            (isMember(user, registry_id) and edicao_publica=="S") )
Пример #2
0
 def replyTo (user, user_to, user_from):
     reply_to = ""
     if isAUser(user_to):
         if isFriend(user, user_from):
             reply_to = user_from
     else:
         if isMember(user, user_to):
             reply_to = user_to
     return reply_to
Пример #3
0
    def post(self):
        user = self.get_current_user()
        msg = ""
            
        #Email agora é um array
        emails = self.get_argument("email", "")
        email_array = list(set(emails.split()))
        
        msg += self._validate_emails(email_array)
        
        user_keys = core.database.REGISTRY[user]['mykeys']
        lista_invited = [ model.MAGKEYS[key]["email"] for key in user_keys]
            
        invited_before = self._already_invited(email_array,lista_invited)
        
        if invited_before:
            for mail in invited_before:
                msg += u"Você já convidou o e-mail: %s<br/>" %mail
        
        for email in email_array:
            if emailExists(email):
                msg += u"Já existe um usuário cadastrado com o email: %s<br/>" % email
        
        # Comunidades é uma lista das comunidades default do usuário
        # que vai se cadastrar com esta chave
        comunidades = []
        for comu in list(set(self.get_argument("comunidades", "").split())):
            if isACommunity(comu):
                if isOwner(user, comu) or isMember(user, PRIV_GLOBAL_ADMIN):
                    comunidades.append(comu)
                else:
                    msg += u"Você deve ser dono ou administrador da comunidade %s.<br/>" % comu
                    
            else:
                msg += u"Comunidade %s não existente.<br/>" % comu
        
        if not msg:
            [self._send_invites(mail, user, comunidades) for mail in email_array]

            request_id = self.get_argument("request_id", "")
            if request_id != "":
                request_data = _EMPTYREQUESTINVITE()
                request_data.update(model.REQUESTINVITE[request_id])
                request_data["estado"] = "aprovado"
                model.REQUESTINVITE[request_id] = request_data
        else:
            msg += u"Os convites não foram enviados.<br/>"

        if msg:
            showInvitesPage(self, user, msg, email_list=emails, community_list=self.get_argument("comunidades", ""))
        else:
            showInvitesPage(self, user, u"Convites enviados com sucesso.<br/>")
Пример #4
0
def channel_name(user, registry_id):
    if isACommunity(registry_id):
        if isMember(user, registry_id):   
            return registry_id
        else:
            return None
            
    else:
        if isFriend(user, registry_id):
            channel = [user, registry_id]   
            channel.sort()
            return ":".join(channel)
        else:
            return None
Пример #5
0
    def get(self, registry_id):
        user = self.get_current_user()
        if isMember(user, registry_id):
            
            aval_data = prepareEvaluations(user, model.Evaluation.listEvaluations(user, registry_id))
            
            links = []
            if isOwner(user, registry_id):
                links.append((u"Nova avaliação de páginas", "/static/imagens/icones/wiki32.png", "/evaluation/new/"+registry_id+"/wiki"))
                links.append((u"Nova avaliação de participantes", "/static/imagens/icones/members32.png", "/evaluation/new/"+registry_id+"/member"))
                links.append(("Votos dos participantes", "/static/imagens/icones/vote32.png", "/evaluation/result/"+registry_id))

            log.model.log(user, u'acessou a lista de avaliações de', objeto=registry_id, tipo="evaluation", news=False)
            self.render("modules/evaluation/evaluation-list.html", EVALUATIONDATA=aval_data, \
                        MSG="", \
                        REGISTRY_ID=registry_id, PERMISSION=isOwner(user,registry_id), \
                        LINKS=links, \
                        NOMEPAG=u"Avaliações")

        else:
            self.render("home.html", MSG=u"Você não é membro desta comunidade.", REGISTRY_ID=ifExists(registry_id, user), \
                            NOMEPAG="comunidades")
Пример #6
0
def showInvitesPage (cls, user, msg, email_list="", community_list=""):
    
    magic_keys = dict()
    forms = dict()

    # processa lista de convidados de um usuário
    for key in core.database.REGISTRY[user]['mykeys']:
        if key in model.MAGKEYS:
            key_data = _EMPTYKEYS()
            key_data.update(model.MAGKEYS[key])
            key_data["datafmt"] = short_datetime (key_data["data_convite"])
            magic_keys[key] = key_data
            

    # para cada formulário...
    for form in model.REQUESTINVITEFORM.view('requestinviteform/all_data',startkey=[user],endkey=[user, {}]):
        form_id = form.key[1]           # registry_id/nome_form
        forms[form_id] = dict(titulo=form.value["titulo"], \
                                      data_inicio=form.value["data_inicio"], \
                                      data_encerramento=form.value["data_encerramento"],
                                      pendentes=[],
                                      recusados=[],
                                      aprovados=[])
        
        # processa suas inscrições pendentes...
        for rqst in model.REQUESTINVITE.view('requestinvitespendentes/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["pendentes"].append(request_dict)
    
        # processa suas inscrições recusadas...
        for rqst in model.REQUESTINVITE.view('requestinvitesrecusados/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["recusados"].append(request_dict)
    
        # processa suas inscrições aprovadas...
        for rqst in model.REQUESTINVITE.view('requestinvitesaprovados/all_data',startkey=[user,form_id],endkey=[user,form_id, {}]):
            # verifica se este email já existe no registry
            usuarios = usersByEmail(rqst.value["email"])
            if usuarios:
                # se encontrar mais de um usuário cadastrado com este email, assume o primeiro encontrado.
                msgUsuario = u"<input type='checkbox' name='users' value='%s'> Usuário já cadastrado: %s" % (usuarios[0], usuarios[0])
            else:
                msgUsuario = u"Convite enviado: aguardando registro do usuário."

            request_dict = dict(request_id=rqst.value["_id"], 
                                nome=rqst.value["nome"], 
                                email=rqst.value["email"], 
                                campo_livre=rqst.value["campolivre"], 
                                msg=msgUsuario,
                                data_cri=short_datetime(rqst.value["data_cri"]))
            forms[form_id]["aprovados"].append(request_dict)
    
    links = []
    if isMember(user, PRIV_CONVIDAR_USUARIOS):
        links.append((u"Novo formulário", "/static/imagens/icones/new32.png", "/invites/createform"))

    cls.render("modules/invites/invites.html", REGISTRY_ID=user, MAGICKEYS=magic_keys, \
                    EMAIL_LIST=email_list, COMMUNITY_LIST=community_list, \
                    REQUESTINVITEFORMS=forms, \
                    IS_ADMIN= isMember(user, PRIV_GLOBAL_ADMIN), \
                    IS_ALLOWED_TO_INVITE= isMember(user, PRIV_CONVIDAR_USUARIOS), \
                    LINKS=links, \
                    MSG=msg, \
                    NOMEPAG="convites")