mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 11:23:25 +08:00
Disable wizard invites step when local_logins are turned off
This commit is contained in:
parent
34e4d82f1a
commit
f6fb079129
|
@ -39,6 +39,8 @@ class WizardStepSerializer < ApplicationSerializer
|
|||
end
|
||||
|
||||
def description
|
||||
return translate("disabled") if object.disabled
|
||||
|
||||
translate("description", base_path: Discourse.base_path)
|
||||
end
|
||||
|
||||
|
|
|
@ -4112,6 +4112,7 @@ en:
|
|||
invites:
|
||||
title: "Invite Staff"
|
||||
description: "You’re almost done! Let’s invite some people to help <a href='https://blog.discourse.org/2014/08/building-a-discourse-community/' target='blank'>seed your discussions</a> with interesting topics and replies to get your community started."
|
||||
disabled: "Since local logins are disabled, it’s not possible to send invites to anyone. Please proceed to the next step."
|
||||
|
||||
finished:
|
||||
title: "Your Discourse is Ready!"
|
||||
|
|
|
@ -233,24 +233,27 @@ class Wizard
|
|||
end
|
||||
|
||||
@wizard.append_step('invites') do |step|
|
||||
if SiteSetting.enable_local_logins
|
||||
staff_count = User.staff.human_users.where('username_lower not in (?)', reserved_usernames).count
|
||||
step.add_field(id: 'staff_count', type: 'component', value: staff_count)
|
||||
|
||||
staff_count = User.staff.human_users.where('username_lower not in (?)', reserved_usernames).count
|
||||
step.add_field(id: 'staff_count', type: 'component', value: staff_count)
|
||||
step.add_field(id: 'invite_list', type: 'component')
|
||||
|
||||
step.add_field(id: 'invite_list', type: 'component')
|
||||
step.on_update do |updater|
|
||||
users = JSON.parse(updater.fields[:invite_list])
|
||||
|
||||
step.on_update do |updater|
|
||||
users = JSON.parse(updater.fields[:invite_list])
|
||||
|
||||
users.each do |u|
|
||||
args = {}
|
||||
args[:moderator] = true if u['role'] == 'moderator'
|
||||
begin
|
||||
Invite.create_invite_by_email(u['email'], @wizard.user, args)
|
||||
rescue => e
|
||||
updater.errors.add(:invite_list, e.message.concat("<br>"))
|
||||
users.each do |u|
|
||||
args = {}
|
||||
args[:moderator] = true if u['role'] == 'moderator'
|
||||
begin
|
||||
Invite.create_invite_by_email(u['email'], @wizard.user, args)
|
||||
rescue => e
|
||||
updater.errors.add(:invite_list, e.message.concat("<br>"))
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
step.disabled = true
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Wizard
|
||||
class Step
|
||||
attr_reader :id, :updater
|
||||
attr_accessor :index, :fields, :next, :previous, :banner
|
||||
attr_accessor :index, :fields, :next, :previous, :banner, :disabled
|
||||
|
||||
def initialize(id)
|
||||
@id = id
|
||||
|
|
|
@ -27,4 +27,14 @@ describe Wizard::Builder do
|
|||
expect(wizard.steps).to be_blank
|
||||
end
|
||||
|
||||
it "returns wizard with disabled invites step when local_logins are off" do
|
||||
SiteSetting.enable_local_logins = false
|
||||
|
||||
wizard = Wizard::Builder.new(moderator).build
|
||||
|
||||
invites_step = wizard.steps.find { |s| s.id == "invites" }
|
||||
expect(invites_step.fields).to be_blank
|
||||
expect(invites_step.disabled).to be_truthy
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user