//Get uploaded file and store into document library
 File file = request.getFile("file");
 String fileName = file.getName();
 
 DLFolder dlFolder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getScopeGroupId(), 0, "My Folder");
 
 ServiceContext serviceContext = ServiceContextFactory.getInstance(DLFileEntry.class.getName(),actionRequest);
 
 DLFileEntry fileEntry = DLFileEntryServiceUtil.addFileEntry(
      dlFolder.getFolderId(), file.getName(), title, StringPool.BLANK, null, file, serviceContext);
      
 //set resource permission     
Resource resource = null;
        try
        {
            resource = ResourceLocalServiceUtil.getResource(fileEntry.getCompanyId(), DLFileEntry.class.getName(),
                    ResourceConstants.SCOPE_INDIVIDUAL, String.valueOf(fileEntry.getPrimaryKey()));
        } catch (NoSuchResourceException nsre)
        {
            ResourceLocalServiceUtil.addResources(fileEntry.getCompanyId(), themeDisplay.getScopeGroupId(), 0,
                    PortletKeys.DOCUMENT_LIBRARY, fileEntry.getFileEntryId(), true, true, true);
            resource = ResourceLocalServiceUtil.getResource(fileEntry.getCompanyId(), DLFileEntry.class.getName(),
                    ResourceConstants.SCOPE_INDIVIDUAL, String.valueOf(fileEntry.getPrimaryKey()));
        }
        
        Role userRole = RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(),
                RoleConstants.USER);
        if(Validator.isNotNull(userRole)){
            
            String[] actionIds = {"ADD_DISCUSSION","DELETE","DELETE_DISCUSSION","UPDATE","UPDATE_DISCUSSION","VIEW"};
            PermissionLocalServiceUtil.setRolePermissions(userRole.getRoleId(),actionIds, resource
                    .getResourceId());
        }