Package com.dotmarketing.business

Examples of com.dotmarketing.business.PermissionAPI


    returnValue = folderAPI.matchFilter(folder, fileName);
    return returnValue;
  }

  private Summary[] getChildrenData(String folderUriAux, User user) throws IOException {
    PermissionAPI perAPI = APILocator.getPermissionAPI();
    Logger.debug(this.getClass(), "getChildrenNames");
    folderUriAux=stripMapping(folderUriAux);
    ArrayList<Summary> returnValue = new ArrayList<Summary>();
    try {
      // ### GET THE HOST ###
      if (folderUriAux.equals("") || folderUriAux.equals("/")) {
        List<Host> hosts = hostAPI.findAll(user, false);
        for (Host host : hosts) {
          Summary s = new Summary();
          s.setName(host.getHostname());
          s.setPath("/" + s.getName());
          s.setFolder(true);
          s.setCreateDate(host.getModDate());
          s.setModifyDate(host.getModDate());
          s.setHost(host);
          returnValue.add(s);
        }
      } else {
        // ### GET THE FOLDERS AT THE FIRST LEVEL ###
        String hostName = getHostname(folderUriAux);
        Host host;
        try {
          host = hostAPI.findByName(hostName, user, false);
        } catch (DotDataException e) {
          Logger.error(DotWebdavHelper.class, e.getMessage(), e);
          throw new IOException(e.getMessage());
        } catch (DotSecurityException e) {
          Logger.error(DotWebdavHelper.class, e.getMessage(), e);
          throw new IOException(e.getMessage());
        }
        String path = getPath(folderUriAux);
        if (path.equals("") || path.equals("/")) {
          List<Folder> folders = folderAPI.findSubFolders(host,user,false);
          for (Folder folderAux : folders) {
            if (perAPI.doesUserHavePermission(folderAux, PERMISSION_READ, user, false)) {
              Summary s = new Summary();
              s.setName(folderAux.getName());
              s.setPath("/" + host.getHostname()
                  + idapi.find(folderAux).getPath());
              s.setPath(s.getPath().substring(0,
                  s.getPath().length() - 1));
              s.setFolder(true);
              s.setCreateDate(folderAux.getIDate());
              s.setCreateDate(folderAux.getModDate());
              s.setHost(host);
              returnValue.add(s);
            }
          }
        } else {
          // ### GET THE FOLDERS, HTMLPAHES AND FILES AT SECOND LEVEL
          // AND LOWERS ###
          path += "/";
          Folder folder = folderAPI.findFolderByPath(path, host, user, false);
          if (InodeUtils.isSet(folder.getInode())) {
            List<Folder> folders = new ArrayList<Folder>();
            // List<HTMLPage> pages = new ArrayList<HTMLPage>();
            List<Versionable> files = new ArrayList<Versionable>();
            // List<Link> links = new ArrayList<Link>();

            try {
              folders = (ArrayList<Folder>)APILocator.getFolderAPI().findSubFolders(folder, user, false);
              // pages = (ArrayList<HTMLPage>)
              // InodeFactory.getChildrenClassByCondition(folder,HTMLPage.class,
              // conditionAsset);
              files.addAll(folderAPI.getWorkingFiles(folder, user,false));
              if(folder.getInode().equals(FolderAPI.SYSTEM_FOLDER)){
                files.addAll(APILocator.getFileAssetAPI().findFileAssetsByHost(APILocator.getHostAPI().find(folder.getHostId(), user,false), user,false));
              }else{
                files.addAll(APILocator.getFileAssetAPI().findFileAssetsByFolder(folder, user,false));
              }
              // links = (ArrayList<Link>)
              // InodeFactory.getChildrenClassByCondition(folder,Link.class,
              // conditionAsset);
            } catch (Exception ex) {
              String message = ex.getMessage();
              Logger.debug(this, ex.toString());
            }

            for (Folder folderAux : folders) {
              if (perAPI.doesUserHavePermission(folderAux,
                  PERMISSION_READ, user, false)) {
                Summary s = new Summary();
                s.setFolder(true);
                s.setCreateDate(folderAux.getiDate());
                s.setModifyDate(folderAux.getModDate());
                s.setName(folderAux.getName());
                s.setPath("/" + host.getHostname()
                    + idapi.find(folderAux).getPath());
                s.setPath(s.getPath().substring(0,
                    s.getPath().length() - 1));
                s.setHost(host);
                returnValue.add(s);
              }
            }

            for (Versionable file : files) {
              if (perAPI.doesUserHavePermission((Permissionable)file,
                  PERMISSION_READ, user, false)) {
                IFileAsset fa = (IFileAsset)file;
                String fileUri = "";
                java.io.File workingFile = null;
                FileInputStream is = null;
View Full Code Here


      while(!done) {
        dh.setFirstResult(internalOffset);
        dh.setMaxResults(internalLimit);
        resultList = dh.list();
        PermissionAPI permAPI = APILocator.getPermissionAPI();
        toReturn.addAll(permAPI.filterCollection(resultList, PermissionAPI.PERMISSION_READ, false, user));
        if(countLimit > 0 && toReturn.size() >= countLimit + offset)
          done = true;
        else if(resultList.size() < internalLimit)
          done = true;
View Full Code Here

    Set<Object> permAssets = new HashSet<Object>();
    HashMap<String, List<Permission>> permByInode = new HashMap<String, List<Permission>>();

    RoleAPI roleAPI = APILocator.getRoleAPI();
    PermissionAPI permAPI = APILocator.getPermissionAPI();
    Host systemHost = hostAPI.findSystemHost(systemUser, false);

    Role role = roleAPI.loadRoleById(roleId);

    List<Permission> perms = permAPI.getPermissionsByRole(role, true, true);

    for(Permission p : perms) {
      List<Permission> permList = permByInode.get(p.getInode());
      if(permList == null) {
        permList = new ArrayList<Permission>();
        permByInode.put(p.getInode(), permList);
      }
      permList.add(p);
      Identifier ident = APILocator.getIdentifierAPI().findFromInode(p.getInode());
      if(ident.getAssetType().equals("folder")) {
        Folder f =  APILocator.getFolderAPI().find(p.getInode(), systemUser, respectFrontendRoles);
        permAssets.add(f);
      } else {
        Host h = hostAPI.find(p.getInode(), systemUser, respectFrontendRoles);
        if(h != null) {
          permAssets.add(h);
        }
      }
    }

    List<Map<String, Object>> hostMaps = new ArrayList<Map<String,Object>>();
    List<Map<String, Object>> folderMaps = new ArrayList<Map<String,Object>>();
    boolean systemHostInList = false;
    for(Object i : permAssets) {
      if(i instanceof Host && ((Host)i).isSystemHost())
        systemHostInList = true;
      Map<String, Object> assetMap = i instanceof Host?((Host)i).getMap():((Inode)i).getMap();
      String assetId = i instanceof Host?((Host)i).getIdentifier():((Inode)i).getInode();
      List<Map<String, Object>> permissionsList = new ArrayList<Map<String,Object>>();
      for(Permission p: permByInode.get(assetId)) {
        permissionsList.add(p.getMap());
      }
      assetMap.put("permissions", permissionsList);
      if(i instanceof Host) {
        assetMap.put("type", "host");
        hostMaps.add(assetMap);
      } else {
        Folder f = (Folder) i;
        Identifier id = APILocator.getIdentifierAPI().find(f);
        String hostId = f.getHostId();
        Host h = hostAPI.find(hostId, systemUser, false);
        assetMap.put("fullPath", h.getHostname() + ":" + id.getParentPath() + f.getName());
        folderMaps.add(assetMap);
      }
      boolean permissionToEditPermissions = permAPI.doesUserHavePermission((Permissionable)i, PermissionAPI.PERMISSION_EDIT_PERMISSIONS, user, respectFrontendRoles);
      assetMap.put("permissionToEditPermissions", permissionToEditPermissions);
    }

    if(!systemHostInList) {
      Map<String, Object> systemHostMap = systemHost.getMap();
      systemHostMap.put("type", "host");
      boolean permissionToEditPermissions = permAPI.doesUserHavePermission(systemHost, PermissionAPI.PERMISSION_EDIT_PERMISSIONS, user, respectFrontendRoles);
      systemHostMap.put("permissionToEditPermissions", permissionToEditPermissions);
      systemHostMap.put("permissions", new ArrayList<Map<String, Object>>());
      hostMaps.add(systemHostMap);
    }
    List<Map<String, Object>> toReturn = new ArrayList<Map<String,Object>>();
View Full Code Here

    HibernateUtil.startTransaction();
    //Retrieving the current user
    User systemUser = userAPI.getSystemUser();
    boolean respectFrontendRoles = false;

    PermissionAPI permissionAPI = APILocator.getPermissionAPI();
    Host host = hostAPI.find(folderHostId, systemUser, false);
    Folder folder = null;
    if(host == null) {
      folder =APILocator.getFolderAPI().find(folderHostId, APILocator.getUserAPI().getSystemUser(), false);
    }
    Permissionable permissionable = host == null?folder:host;
    List<Permission> permissionsToSave = new ArrayList<Permission>();

    if(APILocator.getPermissionAPI().isInheritingPermissions(permissionable)){
      Permissionable parentPermissionable = permissionAPI.findParentPermissionable(permissionable);
      permissionAPI.permissionIndividually(parentPermissionable, permissionable, systemUser, respectFrontendRoles);
    }

    if(permissions.get("individual") != null) {
      int permission = Integer.parseInt(permissions.get("individual"));
      permissionsToSave.add(new Permission(PermissionAPI.INDIVIDUAL_PERMISSION_TYPE, permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("hosts") != null) {
      int permission = Integer.parseInt(permissions.get("hosts"));
      permissionsToSave.add(new Permission(Host.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("folders") != null) {
      int permission = Integer.parseInt(permissions.get("folders"));
      permissionsToSave.add(new Permission(Folder.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("containers") != null) {
      int permission = Integer.parseInt(permissions.get("containers"));
      permissionsToSave.add(new Permission(Container.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("templates") != null) {
      int permission = Integer.parseInt(permissions.get("templates"));
      permissionsToSave.add(new Permission(Template.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("templateLayouts") != null) {
      int permission = Integer.parseInt(permissions.get("templateLayouts"));
      permissionsToSave.add(new Permission("com.dotmarketing.portlets.templates.model.TemplateLayout", permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("files") != null) {
      int permission = Integer.parseInt(permissions.get("files"));
      permissionsToSave.add(new Permission(File.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("links") != null) {
      int permission = Integer.parseInt(permissions.get("links"));
      permissionsToSave.add(new Permission(Link.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("content") != null) {
      int permission = Integer.parseInt(permissions.get("content"));
      permissionsToSave.add(new Permission(Contentlet.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    // DOTCMS - 3755
    if(permissions.get("pages") != null) {
      int permission = Integer.parseInt(permissions.get("pages"));
      permissionsToSave.add(new Permission(HTMLPage.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("structures") != null) {
      int permission = Integer.parseInt(permissions.get("structures"));
      permissionsToSave.add(new Permission(Structure.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }
    if(permissions.get("categories") != null) {
      int permission = Integer.parseInt(permissions.get("categories"));
      permissionsToSave.add(new Permission(Category.class.getCanonicalName(), permissionable.getPermissionId(), roleId, permission, true));
    }


    if(permissionsToSave.size() > 0) {
      permissionAPI.assignPermissions(permissionsToSave, permissionable, systemUser, respectFrontendRoles);
    }

    if(cascade && permissionable.isParentPermissionable()) {
      Logger.info(this, "Cascading permissions for role " + roleId + " and folder/host id " + folderHostId);
      Role role = APILocator.getRoleAPI().loadRoleById(roleId);
View Full Code Here

    this.host = host;
  }

  private List<Folder> listFolders(){
      User user=(User)HttpManager.request().getAuthorization().getTag();
    PermissionAPI perAPI = APILocator.getPermissionAPI();
    FolderAPI folderAPI = APILocator.getFolderAPI();
    List<Folder> folders = new ArrayList<Folder>();
    try {
      folders = folderAPI.findSubFolders(host,user,false);
    } catch (Exception e) {
View Full Code Here

      while (!done) {
        dh.setFirstResult(internalOffset);
        dh.setMaxResults(internalLimit);
        resultList = dh.list();
        PermissionAPI permAPI = APILocator.getPermissionAPI();
        toReturn.addAll(permAPI.filterCollection(resultList, PermissionAPI.PERMISSION_READ, false, user));
        if (countLimit > 0 && toReturn.size() >= countLimit + offset)
          done = true;
        else if (resultList.size() < internalLimit)
          done = true;
View Full Code Here

        Logger.debug( FileFactory.class, "identifier=" + identifier.getURI() );

        WorkingCache.removeAssetFromCache( newFile );
        WorkingCache.addToWorkingAssetToCache( newFile );
        PermissionAPI permissionAPI = APILocator.getPermissionAPI();

        try {
            APILocator.getVersionableAPI().setWorking( newFile );
            if ( file.isLive() )
                APILocator.getVersionableAPI().setLive( newFile );
        } catch ( DotStateException e ) {
            Logger.error( this, e.getMessage() );
        } catch ( DotSecurityException e ) {
            Logger.error( this, e.getMessage() );
        }
        // Copy permissions
        permissionAPI.copyPermissions( file, newFile );

        return newFile;
    }
View Full Code Here

    Folder f = (Folder) req.getAttribute(WebKeys.FOLDER_EDIT);
    Folder parentFolder = (Folder) req.getAttribute(WebKeys.FOLDER_PARENT);
    Host parentHost = (Host) req.getAttribute(WebKeys.HOST_PARENT);
    User user = _getUser(req);

    PermissionAPI permAPI = APILocator.getPermissionAPI();

    if(!InodeUtils.isSet(f.getInode()) && parentFolder != null && !permAPI.doesUserHavePermission(parentFolder, PermissionAPI.PERMISSION_CAN_ADD_CHILDREN, user)){
      if(!InodeUtils.isSet(f.getInode()) && parentHost != null && !permAPI.doesUserHavePermission(parentHost, PermissionAPI.PERMISSION_CAN_ADD_CHILDREN, user)){
        throw new DotSecurityException("You don't have permissions to add this folder");
      }
    } else if(InodeUtils.isSet(f.getInode()) && !permAPI.doesUserHavePermission(f, PermissionAPI.PERMISSION_EDIT, user)){
      throw new DotSecurityException("You don't have permissions to edit this folder");
    }

    FolderForm folderForm = (FolderForm) form;
   
View Full Code Here

  }

  public static void _deleteChildrenAssetsFromFolder(Folder folder,  Set<Inode> objectsList) throws DotDataException, DotStateException, DotSecurityException {

    PermissionAPI perAPI =  APILocator.getPermissionAPI();
    FolderAPI fapi = APILocator.getFolderAPI();
   
    /****** begin *************/
    List<HTMLPage> htmlPages = fapi.getHTMLPages(folder,APILocator.getUserAPI().getSystemUser(),false);
    for (HTMLPage page: htmlPages) {
      Identifier identifier = APILocator.getIdentifierAPI().find(page);
            if(!InodeUtils.isSet(identifier.getInode())) {
                Logger.warn(FolderFactory.class, "_deleteChildrenAssetsFromFolder: page inode = " + ((HTMLPage)page).getInode() " doesn't have a valid identifier associated.");
                continue;
            }
           
            perAPI.removePermissions((HTMLPage)page);

      List<Versionable> versions = APILocator.getVersionableAPI().findAllVersions(identifier, APILocator.getUserAPI().getDefaultUser(),false);

      for (Versionable versionV : versions) {
        HTMLPage version = (HTMLPage) versionV;
        if (version.isWorking()) {
          //updating caches
          WorkingCache.removeAssetFromCache(version);
          CacheLocator.getIdentifierCache().removeFromCacheByVersionable(version);
        }

        if (version.isLive()) {
          LiveCache.removeAssetFromCache(version);
        }

        InodeFactory.deleteInode(version);
      }
      APILocator.getIdentifierAPI().delete(identifier);
    }

    List<File> files = fapi.getFiles(folder,APILocator.getUserAPI().getDefaultUser(),false);
    for (File file: files) {
      Identifier identifier = APILocator.getIdentifierAPI().find(file);

            if(!InodeUtils.isSet(identifier.getInode())) {
                Logger.warn(FolderFactory.class, "_deleteChildrenAssetsFromFolder: file inode = " + ((File)file).getInode() " doesn't have a valid identifier associated.");
                continue;
            }

            perAPI.removePermissions((File)file);

            List<Versionable> versions = APILocator.getVersionableAPI().findAllVersions(identifier, APILocator.getUserAPI().getDefaultUser(),false);
           
            for (Versionable versionV : versions) {
              File version = (File) versionV;
              //assets cache
              if (version.isLive())
                  LiveCache.removeAssetFromCache(version);
              if (version.isWorking())
                WorkingCache.removeAssetFromCache(version);
 
        InodeFactory.deleteInode(version);
            }
            APILocator.getIdentifierAPI().delete(identifier);
    }
    List<Link> links = fapi.getLinks(folder,APILocator.getUserAPI().getSystemUser(),false);
    for (Link link: links) {   
      if (link.isWorking()) {

        Identifier identifier = APILocator.getIdentifierAPI().find(link);

                if(!InodeUtils.isSet(identifier.getInode())) {
                    Logger.warn(FolderFactory.class, "_deleteChildrenAssetsFromFolder: link inode = " + link.getInode() +
                            " doesn't have a valid identifier associated.");
                    continue;
                }

                perAPI.removePermissions(link);

              List<Versionable> versions =APILocator.getVersionableAPI().findAllVersions(identifier, APILocator.getUserAPI().getSystemUser(), false);
             
              for (Versionable version : versions) {
          new HibernateUtil().delete(version);
View Full Code Here

        m.put("categories", categoriesString);
  }

  @SuppressWarnings("unchecked")
  protected void loadPermissions(Contentlet con, Map<String,String> m) throws DotDataException {
        PermissionAPI permissionAPI = APILocator.getPermissionAPI();
        List<Permission> permissions = permissionAPI.getPermissions(con, false, false, false);
        StringBuilder permissionsSt = new StringBuilder();
        boolean ownerCanRead = false;
        boolean ownerCanWrite = false;
        boolean ownerCanPub = false;
        for (Permission permission : permissions) {
View Full Code Here

TOP

Related Classes of com.dotmarketing.business.PermissionAPI

Copyright © 2018 www.massapicom. 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.