Answers.Body: <p>The way I do this is by using the "Require participant approval?" feature in the event set up. This means that anyone can apply for the event, but then their application is manually reviewed by one of the admins to see if they are a member.</p>
  
  <p>Clearly, this introduces a manual process, but it does mean it's quite secure and it means any anonymous user can apply without having to log in.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-14T19:02:41.810Z
Answers.Text: That sounds like a good workaround. Can you batch update these via a Batch Update Profile? If so might be worth adding a short 'how to' to this answer.
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-15T09:50:44.827Z
Answers.Text: If you display all the applicants using a Find Participants search (which you can save and add to your navigation menu), then you can select a number of applicants and update them all to "Pending from Approval" in one go. They will each then get sent an automatic email asking them to complete their registration
Answers.UserDisplayName: Stuart Parker
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-19T07:28:54.597Z
Answers.Text: I'm guessing this would result in the need to refund payments to non-members that apply and are not approved?
Answers.UserDisplayName: millionleaves
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-20T06:37:04.303Z
Answers.Text: @millionleaves - no need to refund payments to non-members, since they don't get to pay until the approval has gone through
Answers.UserDisplayName: Stuart Parker
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-14T10:24:15.810Z
Answers.LastActivityDate: 2016-04-14T10:24:15.810Z
Answers.UserDisplayName: Stuart Parker
Answers.Body: <p>This extension allows you to restrict online registration to certain events to logged in members only but still have other events open to the public.</p>
  
  <p>The extension allows you to set a flag to any event so registration is restricted to those that have a current membership.</p>
  
  <p><a href="https://civicrm.org/extensions/member-only-event" rel="nofollow noreferrer">https://civicrm.org/extensions/member-only-event</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-06T12:37:50.163Z
Answers.LastActivityDate: 2018-10-06T12:37:50.163Z
Answers.UserDisplayName: Anil
Answers.Body: <p>Use the Drupal module included in the CiviCRM tarball that synchs CiviCRM members to Drupal roles. Then set Drupal permissions on viewing the Event registration page to appropriate membership roles. For events not restricted to members, set the event page to be viewable by anonymous users.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-09T23:57:49.893Z
Answers.Text: Would this work for "limit some events, not all"
Answers.UserDisplayName: petednz - fuzion
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-12T07:59:32.480Z
Answers.Text: The Register for Events permission applies to all event registration pages. You can't do this selectively, at least not within Drupal. I've had some success in the past where I've added an Event ID field to an Event node type, and displayed the value as a button that links to the related CiviCRM event registration page. I can then restrict access to individual Event nodes. But if an anonymous user gets hold of the registration URL (or just guesses the URL based on the standard CIviCRM url structure), then they can register even if they aren't supposed to.
Answers.UserDisplayName: millionleaves
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-09T15:48:07.963Z
Answers.LastActivityDate: 2016-04-10T02:25:16.427Z
Answers.LastEditDate: 2016-04-10T02:25:16.427Z
Answers.UserDisplayName: Joe Murray
Body: <p>I've been trying to figure out how to set up events where only members can register. Is this possible?</p>
  
  <p>What I'm looking for is the ability to:</p>
  
  <ul>
  <li>specify one or more memberships that can register for an event, and
  limit registration to those members.</li>
  <li>require authentication as part
  of registration for events where membership is required OR allow
  membership signup during registration</li>
  <li>not require authentication if
  the event registration is not limited to members only.</li>
  </ul>
  
  <p>I'm running CiviCRM on Drupal, and I know I could set the Drupal permission for <code>CiviEvent: register for events</code> so that only logged-in users with a given role could register. I would then sync CiviCRM memberships with Drupal roles. But I only want to limit some events, not all, so this approach won't work.</p>
  
  <p>Also, if I had multiple roles (one per membership), those roles would all need the same Register permission, meaning any member could register for any event, even those events should be limited to people holding a specific membership.</p>
  
  <p>I also know that I could publish details of member-only events to just those members. But those members could share the registration URL with non-members, who could then register.</p>
  
  <p>Any suggestions?</p>
  
Tags: <civievent><civimember><registration>
Title: Is it possible to restrict event registration to members?
ThreadText: # Is it possible to restrict event registration to members?
  
  (Asked by: username_0 on 2016-04-06)
  
  I've been trying to figure out how to set up events where only members can register. Is this possible?
  
  What I'm looking for is the ability to:
  
  * specify one or more memberships that can register for an event, and
    limit registration to those members.
  * require authentication as part
    of registration for events where membership is required OR allow
    membership signup during registration
  * not require authentication if
    the event registration is not limited to members only.
  
  I'm running CiviCRM on Drupal, and I know I could set the Drupal permission for `CiviEvent: register for events` so that only logged-in users with a given role could register. I would then sync CiviCRM memberships with Drupal roles. But I only want to limit some events, not all, so this approach won't work.
  
  Also, if I had multiple roles (one per membership), those roles would all need the same Register permission, meaning any member could register for any event, even those events should be limited to people holding a specific membership.
  
  I also know that I could publish details of member-only events to just those members. But those members could share the registration URL with non-members, who could then register.
  
  Any suggestions?
  
  **Tags:** civievent, civimember, registration
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2016-04-14. Score: 5
  
  The way I do this is by using the "Require participant approval?" feature in the event set up. This means that anyone can apply for the event, but then their application is manually reviewed by one of the admins to see if they are a member.
  
  Clearly, this introduces a manual process, but it does mean it's quite secure and it means any anonymous user can apply without having to log in.
  
  > **Comments:**
  > **username_2**: That sounds like a good workaround. Can you batch update these via a Batch Update Profile? If so might be worth adding a short 'how to' to this answer.  
  > **username_1**: If you display all the applicants using a Find Participants search (which you can save and add to your navigation menu), then you can select a number of applicants and update them all to "Pending from Approval" in one go. They will each then get sent an automatic email asking them to complete their registration  
  > **username_0**: I'm guessing this would result in the need to refund payments to non-members that apply and are not approved?  
  > **username_1**: @username_0 - no need to refund payments to non-members, since they don't get to pay until the approval has gone through  
  
  ---
  
  ### Answer by username_3 on 2018-10-06. Score: 4
  
  This extension allows you to restrict online registration to certain events to logged in members only but still have other events open to the public.
  
  The extension allows you to set a flag to any event so registration is restricted to those that have a current membership.
  
  <https://civicrm.org/extensions/member-only-event>
  
  
  ---
  
  ### Answer by username_4 on 2016-04-09. Score: 3
  
  Use the Drupal module included in the CiviCRM tarball that synchs CiviCRM members to Drupal roles. Then set Drupal permissions on viewing the Event registration page to appropriate membership roles. For events not restricted to members, set the event page to be viewable by anonymous users.
  
  > **Comments:**
  > **username_2**: Would this work for "limit some events, not all"  
  > **username_0**: The Register for Events permission applies to all event registration pages. You can't do this selectively, at least not within Drupal. I've had some success in the past where I've added an Event ID field to an Event node type, and displayed the value as a button that links to the related CiviCRM event registration page. I can then restrict access to individual Event nodes. But if an anonymous user gets hold of the registration URL (or just guesses the URL based on the standard CIviCRM url structure), then they can register even if they aren't supposed to.  
  
  ---
  
  