Move invitation invalidation to service
This commit is contained in:
parent
e8c1a6066a
commit
6dac732a7f
|
@ -104,7 +104,5 @@ class SignupController < ApplicationController
|
|||
password: @user.password,
|
||||
invitation: @invitation
|
||||
)
|
||||
|
||||
@invitation.update! invited_user_id: @user.id, used_at: DateTime.now
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,8 +8,9 @@ class CreateAccount < ApplicationService
|
|||
end
|
||||
|
||||
def call
|
||||
create_user_in_database
|
||||
user = create_user_in_database
|
||||
add_ldap_document
|
||||
update_invitation(user.id) if @invitation.present?
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -24,6 +25,10 @@ class CreateAccount < ApplicationService
|
|||
)
|
||||
end
|
||||
|
||||
def update_invitation(user_id)
|
||||
@invitation.update! invited_user_id: user_id, used_at: DateTime.now
|
||||
end
|
||||
|
||||
def add_ldap_document
|
||||
dn = "cn=#{@username},ou=kosmos.org,cn=users,dc=kosmos,dc=org"
|
||||
attr = {
|
||||
|
|
|
@ -23,6 +23,28 @@ RSpec.describe CreateAccount, type: :model do
|
|||
end
|
||||
end
|
||||
|
||||
describe "#update_invitation" do
|
||||
let(:invitation) { create :invitation }
|
||||
let(:service) { CreateAccount.new(
|
||||
username: 'isaacnewton',
|
||||
email: 'isaacnewton@example.com',
|
||||
password: 'bright-ideas-in-autumn',
|
||||
invitation: invitation
|
||||
)}
|
||||
|
||||
before(:each) do
|
||||
service.send(:update_invitation, 23)
|
||||
end
|
||||
|
||||
it "marks the invitation as used" do
|
||||
expect(invitation.used_at).not_to be_nil
|
||||
end
|
||||
|
||||
it "saves the invited user's ID" do
|
||||
expect(invitation.invited_user_id).to eq(23)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#add_ldap_document" do
|
||||
let(:service) { CreateAccount.new(
|
||||
username: 'halfinney',
|
||||
|
|
Loading…
Reference in New Issue
Block a user