Ae cara, segue o código que você pediu em outro tópico. Qualquer coisa é só perguntar... Abraço. Ps:. o yahoomail não coopera, logo o código segue sem identação. ### Name: save_file.py ### Author: Pedro Vítor L. Rodrigues ### Date: 06-02-2008
from Products.PythonScripts.standard import html_quote from Products.CMFCore.utils import getToolByName from DateTime import DateTime #import datetime #padrão request = container.REQUEST RESPONSE = request.RESPONSE #pega dados da data atual para montar nome do arquivo data = DateTime() mes = str(data.month()) dia = str(data.day()) ano = str(data.year()) #pega arquivo e nome do arquivo a ser gravado #'file' é o nome do input file do form file = request.get('file',None) filename = "BI-" + ano + "-" + mes + "-" + dia + ".pdf" #pega contexto inicial portal = context.portal_url.getPortalObject() #pega contexto da pasta 'publicações', dentro da pasta raíz folder = getattr(portal, 'publicacoes') #pega contexto da pasta 'bi', dentro da pasta publicações folder = getattr(folder, 'bi') #se o tipo de arquivo for PDF, salva if filename[-3:].lower() in ['pdf']: #se ainda não existir uma pasta com o nome ano, cria if not hasattr(folder, ano): novaPasta={'type_name':'Folder', 'id':ano, 'title':'B.I.s do ano ' + ano, 'description':'Pasta com os B.I.s deste ano'} folder.invokeFactory(**novaPasta) #pega referência à novaPasta criada anteriormente objeto = getattr(folder, novaPasta['id']) #publica o objeto objeto.content_status_modify(workflow_action='publish') #pega contexto da pasta do ano atual folder = getattr(folder, ano) #se não existir uma pasta do mês atual dentro da pasta do ano, cria if not hasattr(folder, mes): novaPastaMes={'type_name':'Folder', 'id':mes, 'title':'B.I.s do mes ' + mes, 'description':'Pasta com os B.I.s deste mes'} folder.invokeFactory(**novaPastaMes) objeto = getattr(folder, novaPastaMes['id']) objeto.content_status_modify(workflow_action='publish') #faz o mesmo com o mês folder = getattr(folder, mês) #cria o arquivo no servidor, caso este não exista ainda na pasta mês if hasattr(folder, filename): folder.manage_delObjects(filename) novoArquivo={'type_name':'File', 'id':filename, 'title': filename, 'file': file} folder.invokeFactory(**novoArquivo) objeto = getattr(folder, novoArquivo['id']) objeto.content_status_modify(workflow_action='publish') folder = getattr(portal, 'publicacoes') id="bi-do-dia" #Sempre que um BI for adicionado, quero que a URL estática do portal #aponte para esse BI. Quero sempre a URL relacionada ao BI mais atual. #Assim, sempre que criar um arquivo, faço uma cópia com um id 'bi-do-dia', e #ao criar a url mando esta apontar para um objeto com este id. Veja que o id não #muda, quando um arquivo novo é carregado deleto o antigo com esse id e adiciono uma #cópia do novo com ele. if hasattr(folder, id): folder.manage_delObjects(id) url = {'type_name':'Link', 'id':id, 'title':'B.I do Dia', 'remote_url':'./bi/' + ano + '/' + mes + '/' + filename} folder.invokeFactory(**url) objeto = getattr(folder, id) objeto.content_status_modify(workflow_action='publish') #se o arquivo não for pdf... else: print 'Arquivo não suportado.' + filename[-3].lower() RESPONSE.redirect("./erro-upload?erro='2'") return printed ----- Mensagem original ---- De: illidam <[EMAIL PROTECTED]> Para: zope-pt@yahoogrupos.com.br Enviadas: Segunda-feira, 16 de Junho de 2008 11:21:46 Assunto: [zope-pt] Re: Ajuda com 'Privilégios Insuficientes' --- Em [EMAIL PROTECTED] .com.br, Jorge Guimarães <[EMAIL PROTECTED] .> escreveu > > > O script não tem privilégios suficientes para manipular a pasta do contexto. Porque não tenta colocar esse script como um outro papel, tipo "manager"? > > Att, > > Jorge > opa jorge , tudo bom ne!? Cara eu ja fiz isso e mesmo assim o danado não roda!! Alguma outra dica!!? =D valeu ae... att. Guilherme Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/