File downloads for authorized users
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.
- Provide file downloads for Premium Members.
- Allow registered users to download files from your site.
Features
- Restrict access to downloads to authorized user groups
- Full multisite support (WordPress network installations)
- File management area
- Upload files via FTP and bulk import
- File access notifications (customizable)
- Flexible shortcodes: [groups_can_access_file], [groups_can_not_access_file], [groups_file_info], [groups_file_url], [groups_file_link], [groups_file_visibility], [groups_file_access_service_key]
- Limited or unlimited number of downloads per user
- Key authentication file access
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.
Downloads
See the Groups File Access product page.
The GFA PDF Viewer is a free integration with PDF Viewer.
Documentation
See the Group File Access documentation pages.
Demo
Please visit the Demo site.
I’m looking for a plugin that prevents direct download of pdf files that users store in the library. They alone must be able to access it. Does this plugin allow this?
Hi lamiki,
yes, with this plugin you can restrict files only to the users who are in a group.
Kind regards,
Antonio B.
I would like to know how to login the demo site?
https://demo.itthinx.com/gfa/
What is the username and password?
I have tried to register, but no confirmation email sent to my email account
Hi Calvin,
You can create your own account. In the demo site, some files are restricted to registered users, so you can see how this works.
Kind Regards,
Antonio B.
Hi,
I’ve bought it in 2015 and use it only one time.
Today I would like to use it again, but I’ve got a question.
There is possibility to be notificated when a user download a file.
There is a way to optain a list (csv, xls, txt, ..) of the downloaded files and user name ?
Thanks 😉
Mick
Hi Mick,
From the settings you can enable administrator notifications ( http://tinyimg.io/i/1KSzYxE.png ), sorry, the documentation page is not updated.
Related to lists, sorry, this option is not available.
Kind Regards,
Antonio B.
A year ago I had to buy a new version of my Group Files access plug in as none of the links in my web-site would work when WordPress was updated. Now exactly the same thing has happened. Am I going to have to buy a new plug in every year?
Hi Karen,
Our plugins are distributed under these terms & conditions. Usually wordpress changes in a year do not usually make previous versions of plugins incompatible, but it really does not depend on us.
Kind Regards,
Antonio B.
I posted this on Friday, but I don’t see it yet on this page, nor have I received a response. This is a troublesome issue that is causing my client a lot of problems. Please advise, thank you. I can provide proof of purchase upon request.
Issue:
Large files (greater than a few MB) do not download correctly in browsers other than Chrome on all platforms and Edge for Windows 10. Small files download correctly in all browsers.
Symptoms:
MacOS:
Pause, then error: “Safari can’t open the page [url] because the server unexpectedly dropped the connection, This sometimes occurs when the server is busy. Wait a few minutes, and then try again.”
Firefox spins indicator, nothing happens. No messaging.
Windows 10:
Firefox spins indicator, nothing happens. No messaging.
Window 7:
Firefox does not download.
Solutions attempted with no results:
• disabling and reenabling the plugin
• disabling and reenabling mime file-type
• Increasing available RAM and transfer allowance of Digital Ocean droplet
• adding php.ini file to root directory
php.ini set to:
upload_max_filesize = 400M
post_max_size = 401M
max_execution_time = 300
Hi Adam,
Sorry for the delay, I just saw your post. Could you please contact us via support at itthinx dot com providing temporary admin and FTP access so we can check your settings and run a few tests?
Thanks!
A correction- no large files download correctly in ANY browsers on ANY platform (which is better because it’s consistent). Browsers that appeared to be functioning correctly were in fact only creating 0kb files.
Ok thanks for the update, we’ll have to take a look at this with debugging enabled.
Thanks, Kento. I have sent you additional details and logins via email.
It appears the plugin is not handling hierarchical groups properly.
Example:
I have four groups called CARS, VW, HONDA, and GM. GM, VW, and HONDA are all subgroups of CARS which mean if a user is a member of HONDA they should also have access to files available only to CARS.
Groups handles this well for post content protection, but I just noticed that file downloads do not inherit permissions. I had to explicitly add a user to both HONDA and CARS so that they could access a download that required membership in CARS.
I tried to log into your demo site to reproduce the issue. Please let me know if this is a known issue with version 1.6.1
Thanks!
Hi Andrew,
Right now hierarchical is not available. We are working on an update to add this feature. We hope to have it for next week.
Kind Regards,
Antonio B.
Hey,
if a user is in several groups, is it possible to show ALL the files the user has access to on one page?
For example like [groups_file_link]
Hi Daneil,
you can use the [groups_file_link] shortcode with the ‘groups’ attribute, some thing like this:
[groups_file_link group="*" /]
Kind Regards,
Antonio B.
Hi Antonio,
I am using group file access as a wordpress plugin. in the WP dashboard I was informed that there is a updated Version of Group File access available. Currently I am working with Version 1.6.0. I wante to confirm this is the latest version.
Thank you and best regards,
Max
Hi,
Thanks for asking! The latest version is 1.6.2 which is about to be released (before that it was 1.6.1). You should also receive the update notification as soon as it’s out.
Cheers
Hi Antonio,
I have files assigned with multiple groups, please let me know what is the shortcode syntax for displaying files with multiple groups attribute?
I understand to display files with a single group is [groups_file_link group="Group1"], but I’d like to display [groups_file_link group="Group1"&"Group2"], can you please help me with the right syntax?
Thanks, Zhonghe
Hi Zhonghe,
You can use a comma-separated list of group names. For example
[groups_file_link group="Group1,Group2"]
. More info is available on the Shortcodes documentation page of the plugin.Cheers
Thanks Kento.
Hello:
Regarding the Groups File Access plugin I would like to know:
1- If it is appropriate to set up an online store with WooCommerce that allows the client, after payment, to watch a streaming video (without download) during a certain period of time, for example, three days, three months, etc. During this time the client can watch the video as many times as he wants. Subscription with recurring payments is not necessary.
2- If you encrypt the URL of the video?
2- If it allows to know the IP of the client previously registered in a group with access permissions to the videos and detects and prevents in some way attempts to access the videos from other IPs of users who have not paid?
Thank you,
Hi Jesus,
I think that you don’t need Groups File Access. You could do it with Groups. You could create protected pages where you embed you videos. So only users in the correct group could see the page content (videos).
With Groups for Woocommerce you can sell access to the groups.
Kind Regards,
Antonio B.
Hi Antonio:
Your answer means that Groups (free) + GFA (payment) can not be configured with WooCommerce? Because it is not that registered users can access a protected page but that each client, after making the payment and registering, access the link that allows you to watch the video without downloading as a virtual product through WooCommerce.
Thanks, Jesus
It doesn’t mean that you can’t use it with WooCommerce, it’s another option. I’d say it really depends on where you host your videos among other conditions. So … where do you plan to host your videos?
Hi Lento,
Videos are hosted on Vimeo PRO.
Jesus
Ok with that you have the choice to embed a private video link on a page protected by Groups. You don’t need GFA if you don’t host the videos on your own server. What you can do is create a page, protect it with a group and place the private link there. But even the private links can be accessible by others if they know the URL so this is not completely secure – you can read more about that on Share unlisted videos with private links. Then they also offer the option to protect the video with a password, but if someone knows the private link and has the password, it’s still not completely secure because anyone could share that information with others.
So … don’t they have an option where you can request the video container via their API and embed that on the protected page? This could effectively hide the video’s URL and would make it only accessible to group members who can view the content of the page protected by Groups.
Yes, if he uses some kind of secured temporary containers for the video that could be an option and he wouldn’t need to use GFA.
Hello:
Regarding the Groups File Access plugin I would like to know:
1- If it is appropriate to set up an online store with WooCommerce that allows the client, after payment, to watch a streaming video (without download) during a certain period of time, for example, three days, three months, etc. During this time the client can watch the video as many times as he wants. Subscription with recurring payments is not necessary.
2- If you encrypt the URL of the video?
2- If it allows to know the IP of the client previously registered in a group with access permissions to the videos and detects and prevents in some way attempts to access the videos from other IPs of users who have not paid?
Thanks
Hi Jesus,
#1 Yes that’s possible, you’d set up a product that grants group access during the desired number of days and restrict access to the page where the video is streaming with Groups.
#2 Files handled by GFA are protected and use their own URL, the URL is not “encrypted”, it’s using an ID that directs at a specific file. The plugin supports Session Access (see the section under that heading on that page) and on please also look at this example of Embedding Video.
#3 It doesn’t prevent access by IP, it protects files so only members of a group can access them (they need to be logged in to access a file).
Cheers
Hi Kento:
So, if I have not misunderstood you, according to your answer it would be enough to use Groups (free) + GFA (for payment) to set up an online store with WooCommerce that allows the previously registered client, after payment, to watch a streaming video ( without discharge) during a certain period of time?
I ask because the GFA and Groups documentation does not mention WooCommerce.
Thanks, Jesus
Hi Jesus,
It’s not really depending on WooCommerce, Groups + GFA do their own thing pretty well together. It’s rather a question of how to combine things to come close to requirements. So as there is no specific general requirement related to WooCommerce, you won’t see anything particular in there 🙂
Cheers
Hi Kento,
But, then, Groups + GFA can be integrated with WooCommerce or not? Because the goal is to sell the videos as virtual products in WooCommerce.
Thanks, Jesus
Yes of course they can be used together, but it doesn’t make sense to use GFA in this case because your videos are not hosted on your server but via Vimeo Pro. What you can do with Groups and WooCommerce is to sell access to the groups and use the groups to protect the pages where they videos are embedded. Video Pro also advertises “Sell videos online and worldwide” as one of the features of their Pro plan so I’d suppose they do offer some kind of container you can embed on the pages that will be secure. Let me know if that is so please, it’s interesting.
Hi Kento:
Thanks for the suggestion of the Vimeo API to hide the URL of the video. I’ve already asked Vimeo. This suggestion could solve the problem of visibility of the URL, although I do not understand how to prevent it from being copied. The sale of videos through Vimeo is another issue that we will address later, since marketing has to do it ourselves (Vimeo does not do it) we prefer to do it without intermediaries because it is more profitable. I’ll let you know when we do.
There is another question that is earlier in the purchase process and that I do not understand when you say that what I can do is “create a page, protect it with a group and place the private link there”. Because the link to watch the video has an expiration, for example, 3 days. Where does the instruction automatically occur so that after three days the link does not work and, therefore, can not be used by the client? I thought GFA did that, but now you say that GFA is not necessary, that it only works if the video is hosted on a server of its own. But why does not GFA work if the videos are hosted on Vimeo, when today almost everyone hosts their content in the cloud?
On the other hand, I do not see that Groups and WooComerce are enough to sell the videos, as you say: “sell access to the groups and use the groups to protect the pages where the videos are embedded”. Could you explain to me how it would be done? Why do not I see Groups joining WooCommerce? Because Groups is installed and does not appear in WooCommerce PRODUCT DATA, since this is where the type of product is indicated (simple, variable, virtual, downloadable, etc.). This is the appropriate place to indicate the restrictions that together bring (or so I understood) Goups + GFA: access to the video only for customers who have purchased it and to indicate the period of time that the video will be accessible. After that time, access to the client is automatically blocked so that you can not watch the video since the access you get with the purchase is temporary. If GFA is not necessary, as you say, from which plugin does this get done, since Groups does not?
In short, how the problem is solved in the purchase process:
1º The customer buys the access to watch a video without download, once the payment is confirmed, how do you automatically access the protected page where the video URL has been inserted using the Vimeo API as a container? What plugin does this and how?
2º After the 3 days have elapsed, how and from where is the instruction given automatically so that they can no longer access the video? What plugin does this and how?
Thanks, Jesus
Hi Jesus,
Thanks for that, I’ll reply to the key points you mention:
– “… to hide the URL of the video. … the problem of visibility of the URL … how to prevent it from being copied …”
Of course you can’t prevent anyone from copying a link, the mechanism that grants access to the resource behind it is what secures it.
– “Where does the instruction automatically occur so that after three days the link does not work and, therefore, can not be used by the client? I thought GFA did that …” + “On the other hand, I do not see that Groups and WooComerce are enough to sell the videos …”
GFA protects files that you host on your own server, you upload files via GFA and it protects them by granting access to members of the right groups while they are members. If you want to sell access for 3 days using WooCommerce, then you’d need to use our integration between Groups and WooCommerce Groups WooCommerce. This will let you add a customer to a group automatically based on product purchases. It also works with WooCommerce Subscriptions.
Re #1 See Access Control with Groups – you would embed their video container on a page and protect that page using a group. You would set up a product that grants access to that group using Groups WooCommerce.
Re #2 Groups WooCommerce does that automatically based on the settings used for the particular product. If you use it with WooCommerce Subscriptions, then it will remove the user from the group once the subscription expires. If you use it with time-limited memberships (these don’t need WooCommerce Subscriptions and are built-in with Groups WooCommerce), it will automatically remove the user from the group.
I hope you get a better idea on how this works now.
Cheers
I have a question about Groups File Access, specifically restricting the ability to upload files.
Currently, it looks like the WordPress admin can upload files and restrict access to those files. And that is fine.
Is there, however, a way that I the admin can allow a specific user (who is not an admin) the ability to upload files without opening up any other functionality to them.
Thanks.
Hi Srama,
The user needs to have access to the ‘Administer Groups’ capability. From Groups->Options you can assign this capability to roles.
Kind Regards,
Antonio B.
Hi Itthinx team,
I have bought your premium plugin on CodeCanyon months ago for a client website.
My client has dozens of PDF files with restricted access to member groups with your plugin.
She recently migrated all her website to another hosting company, but now it is not possible to access this PDF files, showing a 404 error message when somebody try to access to this restricted PDF files. “Not Found. The requested URL was not found on this server.”
On the WordPress bakcend of the “Groups > Files” section shows the next message “Warning: finfo_file(/home3/(folder)/public_html/wp-content/uploads/groups-file-access/(name).pdf): failed to open stream: No such file or directory in /(folder)/sites/(website).net/web/htdocs/wp-content/plugins/groups-file-access/lib/uty/class-gfa-utility.php on line 77”
Maybe the company that did the migration of her website did something wrong? we can recover all this links easily? or we need to upload again all the files in the new hosting.?
Thanks for your help.
Hi Javier,
This message indicates that the file folder is not the same in the new server. You can re-upload the files, or accessing to the database, in the wp_groups_file table, change the prefix path according to the new server file path.
Kind Regards,
Antonio B.
I have the same problem after migrating the site to a new host. I have removed the files from the Groups/Files page, & removed them from the groups-file-access folder on the host using FileZilla. But when I try to add one of the files I deleted, I’m told it already exists. How can that be?
Nevermind, I was able to upload one of the files, so presume I can do all of them.
Hi Ann,
I’m glad it works for you.
Kind regard,
Antonio B.
Hi,
I’m using the Premium version of Groups and Groups File Access on my site and am trying to track file downloads using Google Analytics. Using this plugin, I’m not able to track downloads the standard way on GA by detecting the file extension the URL. Do you have a suggestion for the best way to track file downloads with the plugin? I was thinking I could embed tracking code into the plugin, but I want to get an opinion from a plugin developer first.
Thanks!
Hi Anna,
You can use the Groups File Access API if you need to get information about the access ( http://docs.itthinx.com/document/groups-file-access/api/ )
I have created a simple plugin that displays some data: https://github.com/eggemplo/gfa_stats
Kind Regards,
Antonio B.
Im using the Groups file access and would like to show the file extention for rendered files? I need this for my application to accept the files!
Regards
Hi Tim,
You can use the [groups_file_url] shortcode with the href html tag, instead of [groups_file_link]. Something like this:
<a href="[groups_file_url file_id="456"]">My_File_Name.pdf</a>
Kind Regards,
Antonio B.
Hello,
Yes that works but i need it to be in the URL, im using the service_key to provide a URL to put in the application, how can i do this?
for example: http://www.example.com?gfid=123&service_key=XXXXXXXXXX.pdf
or something similar?
Hi,
Maybe adding an extra param with the name? For example: http://www.example.com?gfid=123&service_key=XXXXXXXXXX&name=my_file_name.pdf
Really the ‘name’ param will not be processed. I have not really tried this solution, but I think it will work.
Kind Regards,
Antonio B.
Seem to work thanks!
Im also waiting for the ip filter, did you had time to lookinto it?
Regards
Hi Tim,
You could remind me of the ip filter problem.
Thanks,
Antonio B.
I sent you an email on the contact form from your website, please reply thanks
Tim
Please send me directly the email to antonio[at]itthinx[dot]com
Thanks,
Antonio B.
Sent you another email, please check your spam folder if you received it thanks!
Sorry Tim,
I have not received the email, please send me a copy to antonio.itthinx@gmail.com
Thanks,
Antonio B.
Is it possible to change the notification email address from Admin? We’d like to use Zapier to act on the file download notifications but by default they are sent to the administrator. Seems like this would be a useful feature.
Also, we use WP Mail SMTP (popular plugin) and on Dec 12th Groups stopped sending it’s email through this plugin and instead started sending directly from our server.
Here’s the SMTP changelog. Our other plugins appear to have adjusted to the change and are working correctly but not this one.
https://wordpress.org/plugins/wp-mail-smtp/#developers
We use a dedicated mailing service for verification purposes – we use DMARC and now all of the emails to admin from Groups File Downloads are flagged as Spam.
Hi Andrew,
The plugin uses the wp_mail function to send the notifications. Maybe you can use the ‘wp_mail’ hook.
Related to Groups and SMTP, where are the plugin sending the emails? Are you usign any integration?
Kind Regards,
Antonio B.
The SMTP plugin is supposed to intercept calls to send emails and does so for all plugins. It then uses an external email service via SMTP (we use mandrill) to send the email from a clean IP address. The SMTP plugin intercepts all calls to send emails from wordpress core.
It was working with Groups File Downloads until recently. Now, when Groups sends an email to notify the admin of a download, it is somehow bypassing the SMTP plugin. Is Groups File Download somehow using a deprecated method of sending email that SMTP isn’t intercepting?
Aside from that, I found the code that sends the emails – groups_file_served(). It requests the $admin_email from WordPress. Other than editing the plugin itself, is there a way I can modify this function to send to another address?
Also – at the end of this function it calls:
self::mail( $admin_email, $admin_subject, $admin_message, $tokens );
Shouldn’t that be wp_mail? Is the plugin calling the PHP mailer directly?
Hi,
self::mail is indicating the funtion mail in the class-groups-file-access.php file, that if you see this function, it uses the wp_mail WordPress function.
Please give me your SMTP plugin version and the Groups File Access plugin version. I’m going to recreate the scenario to see if the same thing happens to me or not.
Kind Regards,
Antonio B.
We are using the latest for all:
Groups 2.3.0
Groups File Access 1.6.2
WP Mail SMTP 1.2.2
WP Mail SMTP is configured to use an external SMTP mailer, “Other SMTP” in the settings.
The admin email for our site (set in WordPress general settings) is “clients@cignal.ai”. But emails from Groups File Access come from “wordpress@cignal.ai”.
Thanks Andrew,
It seems that we send the email before the SMTP plugin is loaded.
I created this plugin, which should solve it.
Your feedback is welcome.
Kind Regards,
Antonio B.
Thank you for your help. We will add the code to our theme.
Hello,
I just bought your plugin yesterday and it appears it cannot handle a folder system. I put all files into the uploads folder but it only read those files that are outside of the folders I also placed inside. I have thousands of files with a complex file structure. Is there any way to get this to work? Without this functionality the plugin does me no good. 🙁 Thanks in advance!
Hi Angela,
Sorry, the plugin only works with a main folder. If you need refund, please have a look at this Codecanyon refund page.
Kind Regards,
Antonio B.
Thank you, Antonio!!
Hi there, I have been using this plugin for more than a month now and suddenly the files are not accessible even though I checked and all the permissions are correct and users are logging-in using the correct account details. We are only getting forbidden access message. Please help!!.
Its urgent.
Hi Nidhi,
Please check from Groups->Files if the file’s path is the correct.
If the problem persists, please send me dashboard admin access to antonio[at]itthinx[dot]com indicating this conversation and I’ll have a look at your settings.
Kind Regards,
Antonio B.
Been using this plugin for, i think over 5 years, on two sites. I was sure we paid for it back then, but i cannot remember since it has been so long. We use it with woo-commerce and all the woo plugins for restricting pdf newspaper downloads.
Anyhow, i recently updated our server to php7.1 , everything was great until i tried to upload a file to Groups/Files. The Files tab is blank. everything else shows up. I cannot upload a newspaper for our subscribers to download.
I went into our server and set up multi PHP and set one site back to PHP 5.6 and the Groups/ Files shows up and works again.
Is the Groups File Access plugin not PHP 7+ compatible? The version we are runngin appears to be 1.0.12
Hi Trevor,
Your plugin version is too old. Please download the latest version from Codecanyon.
Kind Regards,
Antonio B.
is there anyway to add an extra parameter to files to associate them for grouping. I want to group files per event , or per class in some kind of grid …I have already purchased the module via codecanyon thanks !!
Hi Allan,
From Groups->Files you can add/remove groups to/from the files.
Kind Regards,
Antonio B.
I mean like grouping related files to each other. For example all files for an event on a day. That are related to each other by some common field. So if 1000 files that are assigned by permission groups to then be grouped by date or related event.
Hi Allan,
There isn’t an option for grouping the files per days or events, but you could use create extra groups and associate the files to these gorups, please have a look at this conversation with Sarah, maybe you could use this solution.
Kind Regards,
Antonio B.
Hello,
Can protected pdfs be opened in the browser instead of downloading to the local computer?
Best regards,
Sjoerd
Hi,
You can use the GFA PDF Viewer free integration with PDF Viewer.
Kind Regards,
Antonio B.
I get a Invalid URL for PDF Viewer
Hi,
this is the link: https://wordpress.org/plugins/pdf-viewer/
Kind Regards,
Antonio B.
Hi Antonio,
Strange thing happens. When I add the pdf from the WP media library the PDF is shown.
Added like this: [pdfviewer width=”600px” height=”849px” beta=”true/false”]http://full-url/document.pdf[/pdfviewer] it works.
But added like this:
[gfapdfviewer file_id=”1″ session_access=”yes”]
pdf.worker.js:247 Uncaught Error: Bad end offset: 51682
[gfapdfviewer file_id=”13″ session_access=”no”] now it works….
Remove former reply… It still gives errors:
The provided value ‘moz-chunked-arraybuffer’ is not a valid enum value of type XMLHttpRequestResponseType.
Hi Sjoerd,
In the shortcode you have posted, the double quotes are slanted – like this ″ – they should be plain double quotes – like this ” – if you’re using the slanted ones, then it will certainly not work. Can you please check that?
Cheers
Hi,
I’m trying to programmatically set things up such that if any file is uploaded by a specific user “X” then that file is only viewable by the Group whose name is identical to the filename (disregarding the extension).
The idea is the specific user “X” would be Zapier…for that reason it’s not possible to manually add the file through the normal Groups File Access admin interface.
Can you guys help?
Thanks very much
Hi Sonny,
Ok I see, this would really require an adequate integration with Zapier, including Groups and Groups File Access. It’s not something that I could help you with without having these ready. Sorry if this isn’t of much help …
Cheers