[fix #4361] administrateur active

This commit is contained in:
simon lehericey 2019-10-24 11:21:12 +02:00
parent 2a052ab1ac
commit 8ae592fe25
7 changed files with 29 additions and 34 deletions

View file

@ -250,7 +250,7 @@ class ApplicationController < ActionController::Base
payload: { payload: {
DS_SIGN_IN_COUNT: current_user&.sign_in_count, DS_SIGN_IN_COUNT: current_user&.sign_in_count,
DS_CREATED_AT: current_administrateur&.created_at, DS_CREATED_AT: current_administrateur&.created_at,
DS_ACTIVE: current_administrateur&.active, DS_ACTIVE: current_administrateur&.active?,
DS_ID: current_administrateur&.id, DS_ID: current_administrateur&.id,
DS_GESTIONNAIRE_ID: current_instructeur&.id, DS_GESTIONNAIRE_ID: current_instructeur&.id,
DS_ROLES: current_user_roles DS_ROLES: current_user_roles

View file

@ -56,7 +56,7 @@ class Administrateur < ApplicationRecord
end end
def invitation_expired? def invitation_expired?
!active && !user.reset_password_period_valid? !active? && !user.reset_password_period_valid?
end end
def self.reset_password(reset_password_token, password) def self.reset_password(reset_password_token, password)
@ -84,4 +84,8 @@ class Administrateur < ApplicationRecord
def can_be_deleted? def can_be_deleted?
dossiers.state_instruction_commencee.none? && procedures.none? dossiers.state_instruction_commencee.none? && procedures.none?
end end
def active?
user.last_sign_in_at.present?
end
end end

View file

@ -29,7 +29,7 @@ class AdministrateurUsageStatisticsService
result = { result = {
ds_sign_in_count: administrateur.user.sign_in_count, ds_sign_in_count: administrateur.user.sign_in_count,
ds_created_at: administrateur.created_at, ds_created_at: administrateur.created_at,
ds_active: administrateur.active, ds_active: administrateur.active?,
ds_id: administrateur.id, ds_id: administrateur.id,
nb_services: nb_services_by_administrateur_id[administrateur.id], nb_services: nb_services_by_administrateur_id[administrateur.id],
nb_instructeurs: nb_instructeurs_by_administrateur_id[administrateur.id], nb_instructeurs: nb_instructeurs_by_administrateur_id[administrateur.id],

View file

@ -2,7 +2,8 @@ require 'rails_helper'
RSpec.describe Administrateurs::ActivateBeforeExpirationJob, type: :job do RSpec.describe Administrateurs::ActivateBeforeExpirationJob, type: :job do
describe 'perform' do describe 'perform' do
let(:administrateur) { create(:administrateur, active: active) } let(:administrateur) { create(:administrateur) }
let(:user) { administrateur.user }
let(:mailer_double) { double('mailer', deliver_later: true) } let(:mailer_double) { double('mailer', deliver_later: true) }
subject { Administrateurs::ActivateBeforeExpirationJob.perform_now } subject { Administrateurs::ActivateBeforeExpirationJob.perform_now }
@ -16,7 +17,7 @@ RSpec.describe Administrateurs::ActivateBeforeExpirationJob, type: :job do
after { Timecop.return } after { Timecop.return }
context "with an inactive administrateur" do context "with an inactive administrateur" do
let(:active) { false } before { user.update(last_sign_in_at: nil) }
context "created now" do context "created now" do
before { subject } before { subject }
@ -43,7 +44,7 @@ RSpec.describe Administrateurs::ActivateBeforeExpirationJob, type: :job do
end end
context "with an active administrateur" do context "with an active administrateur" do
let(:active) { true } before { user.update(last_sign_in_at: Time.zone.now) }
context "created now" do context "created now" do
before { subject } before { subject }

View file

@ -1,27 +0,0 @@
describe '20191007124230_update_admin_last_sign_in_at.rake' do
let(:rake_task) { Rake::Task['after_party:update_admin_last_sign_in_at'] }
subject { rake_task.invoke }
after { rake_task.reenable }
context 'with 2 administrateurs' do
let!(:admin) { create(:administrateur, active: true) }
let(:user) { admin.user }
let!(:admin2) { create(:administrateur, active: false) }
let(:user2) { admin2.user }
before do
end
it do
expect(admin.active).to be true
expect(user.last_sign_in_at).to be_nil
expect(admin.updated_at).not_to be_nil
subject
expect(user.reload.last_sign_in_at).to eq(admin.reload.updated_at)
expect(user2.reload.last_sign_in_at).to be_nil
end
end
end

View file

@ -50,4 +50,22 @@ describe Administrateur, type: :model do
# it { expect(subject).to eq([]) } # it { expect(subject).to eq([]) }
# end # end
# end # end
describe '#active?' do
let!(:administrateur) { create(:administrateur) }
subject { administrateur.active? }
context 'when the user has never signed in' do
before { administrateur.user.update(last_sign_in_at: nil) }
it { is_expected.to be false }
end
context 'when the user has already signed in' do
before { administrateur.user.update(last_sign_in_at: Time.zone.now) }
it { is_expected.to be true }
end
end
end end

View file

@ -39,7 +39,6 @@ describe AdministrateurUsageStatisticsService do
let(:administrateur) do let(:administrateur) do
create(:administrateur, create(:administrateur,
user: create(:user, sign_in_count: 17, current_sign_in_at: Time.zone.local(2019, 3, 7), last_sign_in_at: Time.zone.local(2019, 2, 27)), user: create(:user, sign_in_count: 17, current_sign_in_at: Time.zone.local(2019, 3, 7), last_sign_in_at: Time.zone.local(2019, 2, 27)),
active: true,
services: [create(:service)], services: [create(:service)],
instructeurs: [create(:instructeur)]) instructeurs: [create(:instructeur)])
end end