[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