[opencms-dev] Issues programmatically creating resources
Deiverson Silveira
deiverson at solutioncms.com
Wed Jun 22 16:40:54 CEST 2011
Hi,
I had a similar problem, was a contact form, which should
create a structured content then submit contact form .
The problem was the User logoff, and permission/security, because if user´s
(a lot user´s) submit, if get logout in moment that a procedure is
occurring.
If I do not log out, a visitor could also log User /system/login/, and we
would have a major security problem, because access to information not
allowed.
Other problem, maybe, if you give a logout and use your portal Session to
something, because logout execute a session.invalidate().
My Object, I did not know this form CmsObject OpenCms.initCmsObject cms =
("Guest"), I make this :
CmsObject cmsObject = cms.getCmsObject();
CmsProject cmsproject = cmsObject.readProject("Offline");
cmsObject.getRequestContext().setCurrentProject(cmsproject);
cmsObject.getRequestContext().setSiteRoot("/myproject");
Regards,
Deiverson Silveira
2011/6/22 Michael Emmerich <m.emmerich at alkacon.com>
> Yves,
>
> the problem is in the following code:
>
> [...]
> CmsObject cms = OpenCms.initCmsObject("Guest");
> cms.loginUser("contentcreator", "thepassword");
> [...]
>
> By doing so, you log in as the user "contentcreator", but you are in the
> Online project. And there, you cannot create a resource of course.
>
> So you must at least add the following lines after this code:
>
>
>
> [...]
> CmsObject cms = OpenCms.initCmsObject("Guest");
> cms.loginUser("contentcreator", "thepassword");
> CmsProject project = cms.readProject("Offline");
> cms.getRequestContext().setCurrentProject(project);
> [...]
>
> By this, you change to the Offline project. You also might have to
> change to the correct site, so you can use the setSiteRoot Method in the
> request context.
>
> It would be a good idea to check what you have in the request context
> after you initialized the CmsObect (cms.getRequestContext()) to see how
> your current request is initialized.
>
>
> Kind Regards,
> Michael.
>
> Am 21.06.2011 22:57, schrieb Yves Glodt:
> > Bunp... really no OpenCms-Api expert around ? :-)
> >
> > On 18 June 2011 15:21, Yves Glodt <yg at mind.lu <mailto:yg at mind.lu>>
> wrote:
> >
> > Bump :-)
> >
> >
> > On 16 June 2011 09:48, Yves Glodt <yg at mind.lu <mailto:yg at mind.lu>>
> > wrote:
> >
> > Hi there,
> >
> > I am currently trying to do a interface to a Website where you
> > can import files to the VFS with an http post.
> >
> > Unfortunately it does not work, and I do not find why. I get an
> > exception with the only message "Error creating the resource
> > "/thepath/".
> >
> > Here is the code, maybe someone spots the error :-)
> >
> > Best regards,
> > Yves
> >
> >
> >
> > <%@ page language="java" contentType="text/html; charset=UTF-8"
> > pageEncoding="UTF-8" session="false" %>
> > <%@ page import="java.io.*, java.lang.*, java.util.*,
> > java.text.*" %>
> > <%@ page import="javax.servlet.*, javax.servlet.http.*" %>
> > <%@ page import="org.opencms.*, org.opencms.main.*,
> > org.opencms.flex.*, org.opencms.jsp.*, org.opencms.file.*,
> > org.opencms.file.types.*" %>
> > <%@ page import="org.apache.commons.lang.*" %>
> > <%@ page import="org.apache.commons.fileupload.*,
> > org.apache.commons.fileupload.disk.*,
> > org.apache.commons.fileupload.servlet.*" %>
> > <%
> >
> > FileItemFactory factory = new DiskFileItemFactory();
> > ServletFileUpload upload = new ServletFileUpload(factory);
> >
> > List<FileItem> items = null;
> >
> > try {
> > items = upload.parseRequest(request);
> > } catch (FileUploadException e) {
> > out.println("Error parsing request");
> > System.out.println(request.getRemoteAddr()+": Import: Error
> > parsing request.");
> > return;
> > }
> >
> > Iterator<FileItem> iter = items.iterator();
> >
> > Integer no_dossier = null;
> > String no_article = null;
> > String filename = null;
> > byte[] bytes = null;
> >
> > while (iter.hasNext()) {
> > FileItem item = (FileItem) iter.next();
> >
> > if (item.isFormField()) {
> >
> > if (item.getFieldName().equals("no_dossier")) {
> > no_dossier = Integer.parseInt(item.getString());
> > }
> >
> > if (item.getFieldName().equals("no_article")) {
> > no_article = item.getString();
> > }
> >
> > } else {
> > filename = item.getName();
> > bytes = item.get();
> > }
> > }
> >
> > try {
> >
> > CmsObject cms = OpenCms.initCmsObject("Guest");
> > cms.loginUser("contentcreator", "thepassword");
> >
> > if (!cms.existsResource("/images")) {
> > System.out.println("Creating /images");
> > cms.createResource("/images",
> > CmsResourceTypeFolder.RESOURCE_TYPE_ID);
> > }
> >
> > if (!cms.existsResource("/images/articles")) {
> > System.out.println("Creating /images/articles");
> > cms.createResource("/images/articles",
> > CmsResourceTypeFolder.RESOURCE_TYPE_ID);
> > }
> >
> > if (!cms.existsResource("/images/articles/"+no_dossier)) {
> > System.out.println("Creating
> > /images/articles/"+no_dossier);
> > cms.createResource("/images/articles/"+no_dossier,
> > CmsResourceTypeFolder.RESOURCE_TYPE_ID);
> > }
> >
> > if
> >
> (!cms.existsResource("/images/articles/"+no_dossier+"/"+no_article))
> > {
> > System.out.println("Creating
> > /images/articles/"+no_dossier+"/"+no_article);
> >
> > cms.createResource("/images/articles/"+no_dossier+"/"+no_article,
> CmsResourceTypeFolder.RESOURCE_TYPE_ID);
> > }
> >
> > String newResname =
> >
> cms.getRequestContext().getFileTranslator().translateResource("/images/articles/"+no_dossier+"/"+no_article+"/"
> > + filename);
> > int resTypeId =
> >
> OpenCms.getResourceManager().getDefaultTypeForName(filename).getTypeId();
> > cms.createResource(newResname, resTypeId, bytes, null);
> >
> > cms.unlockResource("/images/articles/"+no_dossier);
> >
> >
> cms.unlockResource("/images/articles/"+no_dossier+"/"+no_article);
> >
> > //cms.publishResource(newResname);
> > //OpenCms.getPublishManager().publishResource(cms, folder);
> > //OpenCms.getPublishManager().waitWhileRunning();
> >
> > } catch (Exception e) {
> > out.println("Error: "+e.getMessage() );
> > }
> >
> > %>
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > This mail is sent to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the list, please
> visit
> > http://lists.opencms.org/mailman/listinfo/opencms-dev
>
> --
> Kind Regards,
> Michael.
>
> -------------------
> Michael Emmerich
>
> Alkacon Software GmbH - The OpenCms Experts
> http://www.alkacon.com - http://www.opencms.org
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
>
--
*
www.solutioncms.com
The Brazilian
Official Provider OpenCms
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20110622/17babff8/attachment.htm>
More information about the opencms-dev
mailing list