Move invitation invalidation to service
This commit is contained in:
parent
e8c1a6066a
commit
6dac732a7f
|
@ -104,7 +104,5 @@ class SignupController < ApplicationController
|
||||||
password: @user.password,
|
password: @user.password,
|
||||||
invitation: @invitation
|
invitation: @invitation
|
||||||
)
|
)
|
||||||
|
|
||||||
@invitation.update! invited_user_id: @user.id, used_at: DateTime.now
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,8 +8,9 @@ class CreateAccount < ApplicationService
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
create_user_in_database
|
user = create_user_in_database
|
||||||
add_ldap_document
|
add_ldap_document
|
||||||
|
update_invitation(user.id) if @invitation.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -24,6 +25,10 @@ class CreateAccount < ApplicationService
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_invitation(user_id)
|
||||||
|
@invitation.update! invited_user_id: user_id, used_at: DateTime.now
|
||||||
|
end
|
||||||
|
|
||||||
def add_ldap_document
|
def add_ldap_document
|
||||||
dn = "cn=#{@username},ou=kosmos.org,cn=users,dc=kosmos,dc=org"
|
dn = "cn=#{@username},ou=kosmos.org,cn=users,dc=kosmos,dc=org"
|
||||||
attr = {
|
attr = {
|
||||||
|
|
|
@ -23,6 +23,28 @@ RSpec.describe CreateAccount, type: :model do
|
||||||
end
|
end
|
||||||
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
|
describe "#add_ldap_document" do
|
||||||
let(:service) { CreateAccount.new(
|
let(:service) { CreateAccount.new(
|
||||||
username: 'halfinney',
|
username: 'halfinney',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user