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") )
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
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/>")
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
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")
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")