Package org.infoglue.cms.util.webdav

Source Code of org.infoglue.cms.util.webdav.RepositoryResource

package org.infoglue.cms.util.webdav;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.infoglue.cms.controllers.kernel.impl.simple.AccessRightController;
import org.infoglue.cms.controllers.kernel.impl.simple.ContentController;
import org.infoglue.cms.controllers.kernel.impl.simple.UserControllerProxy;
import org.infoglue.cms.entities.content.ContentVO;
import org.infoglue.cms.entities.management.RepositoryVO;
import org.infoglue.cms.exception.SystemException;
import org.infoglue.cms.security.AuthenticationModule;
import org.infoglue.cms.security.InfoGluePrincipal;

import com.bradmcevoy.http.Auth;
import com.bradmcevoy.http.CollectionResource;
import com.bradmcevoy.http.FolderResource;
import com.bradmcevoy.http.PropFindableResource;
import com.bradmcevoy.http.Range;
import com.bradmcevoy.http.Request;
import com.bradmcevoy.http.Resource;
import com.bradmcevoy.http.Request.Method;
import com.bradmcevoy.http.exceptions.BadRequestException;
import com.bradmcevoy.http.exceptions.ConflictException;
import com.bradmcevoy.http.exceptions.NotAuthorizedException;

public class RepositoryResource implements PropFindableResource, FolderResource
{
  private final static Logger logger = Logger.getLogger(RepositoryResource.class.getName());

  private final RepositoryVO repository;
  private InfoGluePrincipal principal = null;
 
  public RepositoryResource(RepositoryVO repository)
  {
    this.repository = repository;
 
 
  /*
  @Override
  public Date getCreateDate() {
    // Unknown
    return null;
  }
  */

  public Object authenticate(String user, String pwd)
  {
    if(logger.isInfoEnabled())
      logger.info("authenticate user in represource:" + user);

    try
    {
        Map loginMap = new HashMap();
          loginMap.put("j_username", user);
          loginMap.put("j_password", pwd);
      String authenticatedUserName = AuthenticationModule.getAuthenticationModule(null, null, null, true).authenticateUser(loginMap);
      if(authenticatedUserName != null)
        this.principal = UserControllerProxy.getController().getUser(authenticatedUserName);

      return authenticatedUserName;
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
    
    return null;
  }

  public boolean authorise(Request arg0, Method arg1, Auth arg2)
  {
    if(logger.isInfoEnabled())
      logger.info("authorise user in represource:" + this.principal + ":" + arg2.getTag() + ":" + arg2.getUser());
    try
    {
      boolean hasAccess = AccessRightController.getController().getIsPrincipalAuthorized(this.principal, "Repository.Read", repository.getId().toString());
      if(!hasAccess)
        return false;
    }
    catch (SystemException e)
    {
      e.printStackTrace();
    }

    return true;
  }

  public String checkRedirect(Request arg0) {
    // No redirects
    return null;
  }

  public Date getModifiedDate() {
    // Unknown
    return null;
  }

  public String getName() {
    return repository.getName();
  }

  public String getRealm() {
    return "infoglue";
  }

  public String getUniqueId() {
    return repository.getId().toString();
  }

  public Resource child(String name)
  {
    if(logger.isInfoEnabled())
      logger.info("child name:" + name);
   
    List<? extends Resource> children = getChildren();
    Iterator<? extends Resource> childrenIterator = children.iterator();
    while(childrenIterator.hasNext())
    {
      Resource resource = childrenIterator.next();
      if(resource.getName().equals(name))
      {
        return resource;
      }
    }
    return null;
  }
   
  public List<? extends Resource> getChildren()
  {
    if(logger.isInfoEnabled())
      logger.info("Looking for children on " + this.repository.getId() + ":" + this.repository.getName());
   
    List<ContentResource> contentChildren = new ArrayList<ContentResource>();
    try
    {
      ContentVO contentVO = ContentController.getContentController().getRootContentVO(this.repository.getId(), "administrator");
      if(logger.isInfoEnabled())
        logger.info("contentVO:" + contentVO);
     
      contentChildren.add( new ContentResource(contentVO) );
    }
    catch (Exception e)
    {
      e.printStackTrace()
    }
    if(logger.isInfoEnabled())
      logger.info("contentChildren:" + contentChildren.size());
   
    return contentChildren;
  }

  public CollectionResource createCollection(String arg0)
      throws NotAuthorizedException, ConflictException {
    // TODO Auto-generated method stub
    return null;
  }

  public Resource createNew(String arg0, InputStream arg1, Long arg2,
      String arg3) throws IOException, ConflictException {
    // TODO Auto-generated method stub
    return null;
  }

  public void copyTo(CollectionResource arg0, String arg1) {
    // TODO Auto-generated method stub
  }

  public void delete() throws NotAuthorizedException, ConflictException,
      BadRequestException {
    // TODO Auto-generated method stub
  }

  public Long getContentLength() {
    // TODO Auto-generated method stub
    return null;
  }

  public String getContentType(String arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  public Long getMaxAgeSeconds(Auth arg0) {
    // TODO Auto-generated method stub
    return null;
  }

  public void sendContent(OutputStream arg0, Range arg1,
      Map<String, String> arg2, String arg3) throws IOException,
      NotAuthorizedException, BadRequestException {
    // TODO Auto-generated method stub
  }

  public void moveTo(CollectionResource arg0, String arg1)
      throws ConflictException {
    // TODO Auto-generated method stub
  }

  public Date getCreateDate() {
    // TODO Auto-generated method stub
    return null;
  }
}
TOP

Related Classes of org.infoglue.cms.util.webdav.RepositoryResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.