Groups File Access

Groups File Access is a WordPress plugin that allows to provide file download links for authorized users. Access to files is restricted to users by their group membership.

Among the many possible use cases covered by this plugin, the most prominent are:

  • Provide file downloads for Premium Members.
  • Allow registered users to download files from your site.


Access to files is restricted by group membership. To be able to download a file, a user must be a member of a group that is assigned to the file. If an access limit has been set for the file, the user must also have accessed (downloaded) the file fewer times than the file’s access limit.

If you want to restrict access to a file to users that belong to a certain group, create the group, add the desired users to the group and assign the group to the files that the group should be able to access. More than one group can be assigned to a file.

Shortcodes are used on posts or pages to render links to files, provide information about files and conditionally show content to users depending on whether they are allowed to access a file.

For example, the [groups_file_link group="Premium"] shortcode renders links to files that members of the Premium group can click to download the files.

Download

Get the plugin here: Groups File Access

Documentation


Online Demo

108 comments

  • I want to give individual clients/users access to design files that I would upload. Would I need to create a group for every client? Is there a better way to handle this?

    • Creating a group for each client would be the appropriate way to do this. Let’s say ACME Corp is a client of yours and two people in their organization need to have access to the files. Create a group for that client, create a user account for each of them and assign them to that group.

  • How would I construct a shortcode to show ALL files the user has access to? This would allow a user to go to a page and access any of the files they are allowed. The example codes limit the listing to individual file IDs or groups.

  • Hi I am creating a membership site for my appointment setters/sales consultants.

    I want to create per-recorded webinars loaded in their marketing resources page so they can drive traffic to these links for different services, seo, mobile, text marketing etc. After the customer watches the video if they want to purchase the service then they can click the buy button, and the sales person gets the commission.

    I am confused on how to do that.
    I did watch the video on banners.
    Please help!
    Thx
    Armando

  • What I need to do should be simple, but it won’t work.
    I have a library of user guides for business telephone systems.
    I want to assign users to groups based on their system type and display only the relevant guides on the user guide page. There will be about 50 different groups to start with and I will be adding to it on an ongoing basis and I don’t want to have to update the shortcodes on the download page every time I add a group.
    The idea is to have the user go to a single page and only see the documents that are relevant to them without having to know what make, model and version of system they have.
    What I need the shortcodes to do for me is something like this:
    [groups_non_member group="{any/all groups}"]
    Please log in
    You must be a registered member to access the files available for download.
    [/groups_non_member]

    [groups_member group="{any/all groups}"]
    Downloads:
    [groups_file_link group="{any/all groups}" description="yes"]
    [/groups_member]

    I don’t know if I am explaining this very well but it is very frustrating not to be able to figure out how to do something that should be so simple.

  • When I use description=”yes” in the shortcode the bullet shows up on the line above the file information. When I do not use description=”yes” the bullet lines up fine.

  • Jaybe

    I would like more information about how, specifically and technically, files and assets are secured from direct access should someone discover the source URL/location.

    Does GFA handle managing that aspect?

    What about access keys, unique identifiers, etc. to track and ensure intended recipients and deter sharing, etc.?

    Thank you.

    • GFA serves files through its own handler. If you try to access a protected file without the proper credentials, you will get a 403 Forbidden. Users access files through their account, i.e. they have to be logged in to access a file.

      • Jaybe

        Are the actual source locations of the files protected to keep people from identifying where the files live and directly linking/accessing?

        Or would something like that be done with access rules and restrictions, allowing only localhost or the likes to access the files via the GFA handler?

        • These are protected, the links that allow to download files use a file identifier passed to a URL parameter.

          • jaybe

            I am looking to understand /how/ they are protected?

            Are they protected via .htaccess (for Apache) by the web server?

            What about users of Nginx, for example?

            How are the absolute, static links to the file/folder protected?

            What I am getting at is, … is there documentation explaining how to protect the contents of the secured directory and its files for Nginx, Apcache, etc.?

            Thanks again!

          • For Apache an .htaccess file is created that contains deny from all, where GFA uses its own handler to decide whether the request for a file should be granted or not.

            I’m not really Nginx proficient, but the equivalent for the .htaccess should do it.

            Thanks for mentioning this by the way, I think this should be added to the documentation (taken note to do that).

  • Jason

    I currently use your wonderful Groups and Groups for WooCommerce and want to restrict access to the downloaded products we are selling. It appears this will server my purposes just find for downloads, but I have a couple of questions.
    Can this be used with external files?
    Can this be used for progressive download files?
    I would like to host my files on S3 and embed my audio and video players directly on the page but restrict access to the source.

    Thanks

    • Hey Jason,

      It can’t be used with external files, the plugin handles downloads for files it controls on the server so for your case it wouldn’t really be an option … but the idea of it acting as a proxy to external files isn’t bad at all :)

  • david

    So can I use the members plugin by justin tadlock to create my group permissions? Or can I use the buddypress groups that I already have?

    I’d hate to have to install a 3rd software group system just to add in this ability. Does your plugin tie into any of the other group systems available for WordPress. (usergrups, roles, buddypress, etc)

    • It’s really an extension to Groups based on the framework it provides to build solutions like this one. I created Groups because I wasn’t satisfied with the way other plugins were designed and/or implemented, so it doesn’t make much sense to me to try to cover other solutions with extensions built on Groups.

  • Brenda

    I have customers that are retail and wholesale customers – I do not want my retail customers to see my wholesalers prices. Will this plugin allow me to restrict access to my prices? Set up how? Sorry a newbie here.

    • Hi Brenda,
      Did you get an answer to your question?
      I am looking for the same thing!
      Sarah

      • GFA is not suitable for that, it restricts access to . Groups is used to restrict access to content and pages, with its access restriction options you can restrict access to pages containing your prices to authorized users. You can also use it to restrict access to certain product pages if that’s what you’re looking for.

  • Erbol-uz

    HI, I am able see log file which user and how many time download any files?

    • You can get notifications when users access files, do you mean per-user stats on the back end or a shortcode? That’s not available in the current version (the data to do it is stored though) but I’m adding it as a good idea to the feature requests.

  • Linn

    Two questions:

    - Is there any way to insert line breaks or paragraph tags into the file description?
    - I’m using the shortcode to display all files a user has access to on a single page ([groups_file_link group="Premium"]). Can I sort this file list somehow? They seem to be ordered by ID with the lowest number at the bottom of the list currently. I’d love to be able to at least switch that order to have the lowest ID first, or even sort by title or filename.

    Thanks!

    • Linn

      Scratch the bit about sorting the file list – I think I’ve figured that out. Would still like to have linebreaks in file descriptions though :)

      • Ah, good :) Let me know if you think the other shortcode would be helpful for you, otherwise we can add an option to deactivate the filter on this one as well. An updated release is pending so it could be added then.

        • Linn

          Being able to use filter=”none” on [groups_file_link] would be fantastic! Since – correct me if I’m wrong – wouldn’t using the [groups_file_info] shortcode require a lot more work than [groups_file_link]? As in, the latter lists all of the files available to a specific user, whereas the former you’d have to use for specific files repeatedly to list all available files, right?

    • When you use the [groups_file_link] shortcode, it will filter these out. But you can use the [groups_file_info] short code indicating filter=”none”.
      Currently the list is ordered by name in ascending order, the shortcode could use some additional options for sorting the list of files though.

  • Luca

    Hi, I’ve successfully installed this plugin!

    Now I need to show all links of files that user can download.
    For example, something like that [groups_file_link group="ALL GROUPS"].
    This should render all links to files that members has access to.

    Thanks,
    Luca

    • Hi Luca,

      For example, you would use [groups_file_link group="Registered"] for all files that registered users can access. This will include all files in Groups > Files that have been added to the Registered group. Of course you can also do the same for different groups. You cannot use this to show files for all groups yet, you would have to place one for each of the groups. The capability to show files for all groups is going to be added, also see the call for feature requests for other features that will be available.

      Thanks for using the plugin :)

      Cheers

  • Beth

    I have installed and activated the Groups and Groups File Access plugins. I am able to go to the File page and upload a file, and I have verified via FTP that the files does upload… but it cannot be viewed on the “File’ Page. Any idea of why and how to remedy this. I do have the latest version of wordpress… I am using the u-design theme… and am browsing on a Mac via Firefox or Safari.

    • Beth

      problem = slideshow plugin.

    • I assume you mean the Groups > Files section in the back end. Are you saying after you have added a new file in that section (with the New File button on top) you cannot see it in the list of files? If that’s the case, do you have any filters set? The filter settings are ‘sticky’ – i.e. if you filter for example by Name and there is no result, then leave the page and come back, the filter will still be set.

  • Hi Kento!
    Just bought the groupsfileaccess plugin at codecanyon, and I have a request:
    Because I need to upload huge files to use with the plugin, it’s easier to do so by FTP transfer.
    Can you add the option to simply set the full file path manually ? (overriding the upload function from the admin panel?)

    Best regards.
    Carlos

  • Virgo

    If I click the upload button, is it possible to link large files uploaded via ftp? WordPress Standard Upload windows do that, but it’s not shonw in your screenshots, thanks.

    • An option to scan for new files would be great to have, this would allow you to upload files directly via FTP and then have the plugin scan for new files and include them automatically.

  • Ian

    Wow this looks like it’s the answer to my problems. Before i go to far I just wanted to check my thinking is right.

    Example: A company ABC has say 10 Departments. Each Department has a Director, Manager, Staff. Would the set-up be as follows:-

    ABC = Parent
    Department 1 = Child of ABC
    Director of Department 1 = Child of Department 1
    Manager of Department 1 = Child of Director of Department 1
    Staff of Department 1 = Child of Manager of Department 1

    Then so on for Department 2 etc..

    OR would it be that Director/Manager/Staff are all Child of Department 1

    Also, would ABC be able to post content that was visible to ALL Directors of ALL Departments, or ALL Staff of ALL Departments, if so how?

    • I assume this question is related to Groups in terms of how to set it up, but you want to grant access to files depending on where in a hierarchy a member is? You can set up pretty much any hierarchy, just like the one you are explaining. Just note that the actual user accounts would be group members, as you would assign the user account to one or more groups.

  • Ian

    Sorry, just had another thought pop into my head, following on from my last question;

    If I had the company then departments set up could I just designate the role of Director to a user and then assign them to a Department so that they could only see that Department? That would save having to add Director of Department 1, 2, 3 etc

  • Jose

    Hi,

    first at all, congratulations for your very usefull group plugin.

    I use “Groups File Access” plugin for manage some private PDF files.

    The client needs that users could open these files in a new tab (target=”_blank”), not download it.

    I tried with the following link but it doesn’t work:

    View pdf

    It is possible???

    Thanks in advance.

    • antonio

      Hi Jose,
      I can see the link, please use pastebin.com, this might be useful for others as well. (the code was stripped out to your comment).

      cheers

  • Hello,
    I’d like to know if it is possible to notify a group when a file deposited with it for?
    and I’d like to know if the next version will download statistics?

    If the modules are top

    cordially

    • antonio

      Hi Romain,
      currently no such option. You can do it manually with a newsletter plugin.

      cheers

      • damage, otherwise your solution is perfect. Too bad we can notify the administrator but not automatically groups

        • Actually the idea sounds good to me, this could certainly be added, i.e. notify group members when a new file has been made available for them, I can think of good use cases for that. Thanks for the suggestion Romain, I’ve added this to the list of feature requests to be implemented.

  • Makoto Morikawa

    File size to be uploaded has grown to 5MB, Is there a way to upload a file of 20MB?

  • Seems there is a UTF-8 problem when entering file descriptions. Works on file name text field.

  • Makoto Morikawa

    Thanks for the great plugin.
    If you want to display by uploading a PDF file, but I’d like to display inline in a browser, there is no way I would be?

  • Beth

    How secure is this program? I have a members only section for a non profit company, and need to ensure that their files remain secure… and only viewable by them when they are signed in.

    • It is as secure as your server is – GFA restricts access to the files and only authorized members will be able to access them. As long as your server is secured, GFA will be able to protect them.

  • Gareth

    Hi there – product looks great – I am looking something that will also allow us to track how many times a specific user downloads specific files

    Would this plugin have this capability – or is there anyway to do this in WordPress???

    Thanks! :)

  • I’m hopeful your plugin can resolve my problem.

    I have a public site with a Members Only section. Currently my user registration/login and content permissions (page/post access based on Roles) is handled by the Absolute Privacy Plugin. I naively thought the page/post access restriction covered all files uploaded to or linked to the page, but I recently learned that those files (PDFs, JPEGs, MSOffice docs, etc.) are accessible by anyone through their direct URLs (typed in or located by search engine).

    I understand your plugin works based on Groups and not Roles so, if I add all of my registered users to a group, will your plugin enable me restrict access to the files on my restricted pages so that only logged in group members can view and/or download them? Also, will I have to re-upload the dozens of files already on the site that need to be restricted or can the restriction be added to existing Media Library files?

    • antonio

      Hi,
      yes, this plugin is based in groups, and the files are protected from access direct.
      Sorry, but you need to re-uploads the files, and then assign to one group (or more), and add the users to respective group/s.
      It restricts all file types.

      cheers

  • fulla

    Can I show the file to download in limited time and after that it display

    • antonio

      Hi,
      you can control how many times you can download the files (in Groups->Files, Max# field)
      But you can control the period time.
      cheers

  • Max

    Hello,

    I purchased your plugin, and I’m having a serious issue:
    When an authorised user downloads a pdf, he gets a “Corrupted pdf” message when he tries to open it.
    Can you help?
    Thanks a lot!

    • Hi Max,

      Can you provide a link and user access to the site to have a look please?

      • Max

        Hi Kento,

        Thanks for your reply.
        On what email can I send you the link and access info?

        • Sure :) Please send it to support at itthinx dot com.

          • Max

            Hi,

            I sent you the website info the 31st of may and didn’t get a response from you. Can you tell me what’s wrong with the plugin?
            Thanks!

          • Hi Max,

            Sorry I must have missed that, I just tried to log in with the details but login is rejected. I also created an account but it doesn’t give access to the documents obviously, can you please send the current password or grant access to the itthinx user?

          • Max

            Could you try to connect again? It should work now…

          • Got it, thanks. I’ve managed to get the file, but it is effectively ‘corrupted’ because of the following Warning which appears in the file that is downloaded (quoting the message without the tags):

            Warning: set_time_limit() has been disabled for security reasons in /home/www/91018f06866fdd3615e609e7ed630184/web/wp-content/plugins/groups-file-access/lib/file/class-gfa-file-renderer.php on line 42

            After that, the actual PDF starts.

            Solutions:
            - As suggested e.g. here, try setting safe_mode=off in php.ini, or
            - as a temporary quick fix, comment line 42 in wp-content/plugins/groups-file-access/lib/file/class-gfa-file-renderer.php.

            In any case, doing the check for safe_mode would be a good idea to add before line 42, I’ll add that and release an update.

            Thanks for your patience and for reporting the issue you had, helps to make it better! :)

          • Seems to work ok now, I can see the PDF correctly.

        • Max

          Thank you so much!
          The fix did it! It’s really nice to see this nice plugin work like it should!
          Thanks again!

    • max

      Strange, I thought I had sent a reply… Can’t see it anymore

      It works now, the fix did the trick. thanks a lot for your help!

  • Hi there!

    Just about to get your plugins but need to know first if it is possible to assign a single file to be accesible to many groups, so I don’t have to upload a file per group… this is a mandatory requirement from our client.

    What they want is to share file1.pdf to group1 and group2 but file2.pdf only to group2…

    Cheers!

  • What I am trying to do is create a portion of my website where I sell image files to one group, but give those files away for free to another group. Would this plugin work for that? I have been banging my head against a wall for the entire day trying to find a good plugin for this. I have temporarily decided to use woocommerce and the groups plugin to create these different groups, but hoping that this plugin will work for the final peice of the puzzle.

    • Hi Mike,

      Yes that would work. Assuming you have two groups, Premium and Freebies, Premium pays to get access to the images, Freebies doesn’t but can access those same images as well. You would assign the files they should be allowed to access to both groups … voilà ;)

  • I just want registered users to be able to see products in cart so how do i make registered users a group?

    • antonio

      Hi,
      you can use [groups_member] shortcode in your cart page. For example with woocommerce:

      [groups_member group="Gold"]
      [woocommerce_cart]
      [/groups_member]

      cheers

      • ok i got that part – and i have a group called insiders which is my gold however it has no capabilities. capabilities seem to be more backend things …then view/checkout product in cart. help

        and then the options – how does that work -

        • antonio

          Hi,
          you can create a capability “isInsider”, and assign it to group “Insiders”.
          and restrict all pages related to the shopping cart (cart, checkout, …) to this capability.
          cheers

          • so i created the capabiltiy but it just says description not any restriction – what am i doing wrong – thought i’d then go to options but no way to link capability and options

          • antonio

            Hi,
            you must:
            1.- create the capability
            2.- Assign to a group (in Groups->Groups have the buttons above the table).
            3.- In Groups->Options->Capabilities must select the new capability.
            4.- In a post/page, in right sidebar you can select the necessary capabilities.
            cheers

          • totally missed the dropdown in 2. Thanks. alright now re 3 .- In Groups->Options->Capabilities must select the new capability – do access restrictions all get checked? i selected the capability insiders under capabilites but also have checks under the 4 user types in persmissions. Right or wrong?

          • You normally wouldn’t change the permissions on that screen unless you want any of the roles to have certain management capabilities related to Groups on the back end. The normal thing is to have them checked for the Administrator role and none checked for any of the other roles.

        • something still not adding up here …how do i take this off forums and get individual support

          • It seems your questions are more related to the Groups plugin itself. You should post your questions on the Groups plugin page unless they are directly related to GFA.

  • Hi..
    I’m using your plugin which I like very well.
    I’m moving a lot of files from one place to this new one I’m making with Groups and Groups File Access. Is there a way to copy bunch of files into one group instead of one at a time?
    Thanks,
    Anna

    • antonio

      Hi,
      sorry, but you only can upload files one by one.
      Once uploaded, you can assign several at a time to a group using the table’s checkbox.
      cheers

  • Michel

    I recently purchased the Groups File Access along with Groups and WooCommerce for replacing our new IT Training Video website.

    The files I need to add are much larger than 8MB. Heck I have PDFs that are larger than 8MB. How can I upload larger files into WordPress from the Group File Access option?

    Thanks!

    Michel

    • Michel

      Nevermind, I did an unrelated google search and found out that I needed to add something like this in my PHP.ini file:

      post_max_size = 150M

      Note: I would recommend putting this into your documentation for future users for how they can upload larger files.

      Michel

      • Hi Michel,

        There are two more that you should take into account: upload_max_filesize and max_execution_time. For example, add these to your php.ini:

        upload_max_filesize = 192M
        post_max_size = 193M
        max_execution_time = 300

        See also this post on WordPress hosting requirements.

        You’re right, it would be a good idea to add this in the documentation. Doing it right now, thanks!

        • Michel

          Thanks for the follow-up kento.

          Yeah, I had the others in my PHP.ini file except for the execution_time value, which I had added now. Thanks for the fast reply and the help.

          Michel

Leave a comment

Your email address will not be published. Required fields are marked *

*


9 × = forty five

Please follow the Support guidelines.

Premium Support is available for customers in the Forums.