Class: Organizations::PublicInvitationsController
- Inherits:
-
PublicController
- Object
- PublicController
- Organizations::PublicInvitationsController
- Includes:
- ControllerHelpers
- Defined in:
- app/controllers/organizations/public_invitations_controller.rb
Overview
Controller for public invitation routes (show and accept). Inherits from PublicController to avoid host app authentication filters.
Routes:
GET /invitations/:token → View invitation details
POST /invitations/:token/accept → Accept the invitation
Class Method Summary collapse
-
.controller_path ⇒ Object
Use the same view path as InvitationsController so host apps don't need to duplicate views for public routes.
Instance Method Summary collapse
-
#accept ⇒ Object
POST /invitations/:token/accept Accept an invitation (public route).
-
#show ⇒ Object
GET /invitations/:token View invitation details (public route).
Methods included from ControllerHelpers
#accept_pending_organization_invitation!, #clear_pending_organization_invitation!, #create_organization_and_switch!, #current_membership, #current_organization, #current_organization=, #handle_pending_invitation_acceptance_for, #no_organization_redirect_path, #organization_signed_in?, #pending_invitation_acceptance_redirect_path_for, #pending_organization_invitation, #pending_organization_invitation?, #pending_organization_invitation_email, #pending_organization_invitation_token, #redirect_path_after_invitation_accepted, #redirect_path_after_organization_switched, #redirect_path_when_invitation_requires_authentication, #redirect_path_when_no_organization, #redirect_to_no_organization!, #require_organization!, #require_organization_admin!, #require_organization_owner!, #require_organization_permission_to!, #require_organization_role!, #switch_to_organization!
Class Method Details
.controller_path ⇒ Object
Use the same view path as InvitationsController so host apps don't need to duplicate views for public routes
18 19 20 |
# File 'app/controllers/organizations/public_invitations_controller.rb', line 18 def self.controller_path "organizations/invitations" end |
Instance Method Details
#accept ⇒ Object
POST /invitations/:token/accept Accept an invitation (public route)
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'app/controllers/organizations/public_invitations_controller.rb', line 37 def accept return respond_invitation_authentication_required unless current_user result = accept_pending_organization_invitation!( current_user, token: @invitation.token, switch: true, skip_email_validation: false, return_failure: true ) return respond_invitation_acceptance_failure(result) if result.failure? respond_invitation_acceptance_success(result) end |
#show ⇒ Object
GET /invitations/:token View invitation details (public route)
24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/organizations/public_invitations_controller.rb', line 24 def show @user_exists = user_exists_for_invitation? @user_is_logged_in = current_user.present? @user_email_matches = @user_is_logged_in && current_user.email.downcase == @invitation.email.downcase respond_to do |format| format.html format.json { render json: invitation_show_json } end end |