Loading app/controllers/registrations_controller.rb +5 −13 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # the COPYRIGHT file. class RegistrationsController < Devise::RegistrationsController before_action :check_registrations_open_or_valid_invite!, :check_valid_invite! before_action :check_registrations_open_or_valid_invite! layout -> { request.format == :mobile ? "application" : "with_header" } Loading @@ -28,20 +28,12 @@ class RegistrationsController < Devise::RegistrationsController private def check_valid_invite! return true if AppConfig.settings.enable_registrations? #this sucks return true if invite && invite.can_be_used? flash[:error] = t('registrations.invalid_invite') redirect_to new_user_session_path end def check_registrations_open_or_valid_invite! return true if invite.present? unless AppConfig.settings.enable_registrations? flash[:error] = t('registrations.closed') return true if AppConfig.settings.enable_registrations? || invite.try(:can_be_used?) flash[:error] = params[:invite] ? t("registrations.invalid_invite") : t("registrations.closed") redirect_to new_user_session_path end end def invite @invite ||= InvitationCode.find_by_token(params[:invite][:token]) if params[:invite].present? Loading app/models/user.rb +1 −2 Original line number Diff line number Diff line Loading @@ -99,10 +99,9 @@ class User < ActiveRecord::Base def process_invite_acceptence(invite) self.invited_by = invite.user invite.use! invite.use! unless AppConfig.settings.enable_registrations? end def invitation_code InvitationCode.find_or_create_by(user_id: self.id) end Loading app/views/invitations/new.html.haml +1 −1 Original line number Diff line number Diff line #paste_link = t('.paste_link') %span#codes_left = '(' + t('.codes_left', count: @invite_code.count) + ')' = "(" + t(".codes_left", count: @invite_code.count) + ")" unless AppConfig.settings.enable_registrations? .form-horizontal .control-group = invite_link(@invite_code) Loading db/migrate/20160810230114_cleanup_invitation_columns_from_users.rb +9 −2 Original line number Diff line number Diff line class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration class InvitationCode < ActiveRecord::Base end class User < ActiveRecord::Base end Loading @@ -20,7 +23,7 @@ class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration add_index :users, :email, name: :index_users_on_email, unique: true, length: 191 drop_invitations_table cleanup_invitations end def username_not_null Loading @@ -36,10 +39,14 @@ class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration end end def drop_invitations_table def cleanup_invitations reversible do |dir| dir.up do drop_table :invitations # reset negative invitation counters new_counter = AppConfig.settings.enable_registrations? ? AppConfig["settings.invitations.count"] : 0 InvitationCode.where("count < 0").update_all(count: new_counter) end dir.down do Loading features/step_definitions/user_steps.rb +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ Given /^I have been invited by an admin$/ do end Given /^I have been invited by "([^\"]+)"$/ do |email| AppConfig.settings.enable_registrations = false @inviter = User.find_by_email(email) @inviter_invite_count = @inviter.invitation_code.count i = EmailInviter.new("new_invitee@example.com", @inviter) Loading Loading
app/controllers/registrations_controller.rb +5 −13 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ # the COPYRIGHT file. class RegistrationsController < Devise::RegistrationsController before_action :check_registrations_open_or_valid_invite!, :check_valid_invite! before_action :check_registrations_open_or_valid_invite! layout -> { request.format == :mobile ? "application" : "with_header" } Loading @@ -28,20 +28,12 @@ class RegistrationsController < Devise::RegistrationsController private def check_valid_invite! return true if AppConfig.settings.enable_registrations? #this sucks return true if invite && invite.can_be_used? flash[:error] = t('registrations.invalid_invite') redirect_to new_user_session_path end def check_registrations_open_or_valid_invite! return true if invite.present? unless AppConfig.settings.enable_registrations? flash[:error] = t('registrations.closed') return true if AppConfig.settings.enable_registrations? || invite.try(:can_be_used?) flash[:error] = params[:invite] ? t("registrations.invalid_invite") : t("registrations.closed") redirect_to new_user_session_path end end def invite @invite ||= InvitationCode.find_by_token(params[:invite][:token]) if params[:invite].present? Loading
app/models/user.rb +1 −2 Original line number Diff line number Diff line Loading @@ -99,10 +99,9 @@ class User < ActiveRecord::Base def process_invite_acceptence(invite) self.invited_by = invite.user invite.use! invite.use! unless AppConfig.settings.enable_registrations? end def invitation_code InvitationCode.find_or_create_by(user_id: self.id) end Loading
app/views/invitations/new.html.haml +1 −1 Original line number Diff line number Diff line #paste_link = t('.paste_link') %span#codes_left = '(' + t('.codes_left', count: @invite_code.count) + ')' = "(" + t(".codes_left", count: @invite_code.count) + ")" unless AppConfig.settings.enable_registrations? .form-horizontal .control-group = invite_link(@invite_code) Loading
db/migrate/20160810230114_cleanup_invitation_columns_from_users.rb +9 −2 Original line number Diff line number Diff line class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration class InvitationCode < ActiveRecord::Base end class User < ActiveRecord::Base end Loading @@ -20,7 +23,7 @@ class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration add_index :users, :email, name: :index_users_on_email, unique: true, length: 191 drop_invitations_table cleanup_invitations end def username_not_null Loading @@ -36,10 +39,14 @@ class CleanupInvitationColumnsFromUsers < ActiveRecord::Migration end end def drop_invitations_table def cleanup_invitations reversible do |dir| dir.up do drop_table :invitations # reset negative invitation counters new_counter = AppConfig.settings.enable_registrations? ? AppConfig["settings.invitations.count"] : 0 InvitationCode.where("count < 0").update_all(count: new_counter) end dir.down do Loading
features/step_definitions/user_steps.rb +1 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ Given /^I have been invited by an admin$/ do end Given /^I have been invited by "([^\"]+)"$/ do |email| AppConfig.settings.enable_registrations = false @inviter = User.find_by_email(email) @inviter_invite_count = @inviter.invitation_code.count i = EmailInviter.new("new_invitee@example.com", @inviter) Loading