mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 01:21:23 +08:00
FIX: Don't show "resend email" option when user approval is on
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
<div class='ac-message'>
|
<div class='ac-message'>
|
||||||
{{{accountCreated.message}}}
|
{{{accountCreated.message}}}
|
||||||
</div>
|
</div>
|
||||||
{{#if accountCreated.username}}
|
{{#if accountCreated.show_controls}}
|
||||||
{{activation-controls sendActivationEmail=(action "sendActivationEmail")
|
{{activation-controls sendActivationEmail=(action "sendActivationEmail")
|
||||||
editActivationEmail=(action "editActivationEmail")}}
|
editActivationEmail=(action "editActivationEmail")}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
{{d-button action=sendActivationEmail
|
{{#unless siteSettings.must_approve_users}}
|
||||||
label="login.resend_title"
|
{{d-button action=sendActivationEmail
|
||||||
icon="envelope"
|
label="login.resend_title"
|
||||||
class="btn-primary resend"}}
|
icon="envelope"
|
||||||
|
class="btn-primary resend"}}
|
||||||
|
{{/unless}}
|
||||||
|
|
||||||
{{d-button action=editActivationEmail
|
{{d-button action=editActivationEmail
|
||||||
label="login.change_email"
|
label="login.change_email"
|
||||||
icon="pencil"
|
icon="pencil"
|
||||||
|
@ -537,12 +537,16 @@ class UsersController < ApplicationController
|
|||||||
|
|
||||||
@custom_body_class = "static-account-created"
|
@custom_body_class = "static-account-created"
|
||||||
@message = session['user_created_message'] || I18n.t('activation.missing_session')
|
@message = session['user_created_message'] || I18n.t('activation.missing_session')
|
||||||
@account_created = { message: @message }
|
@account_created = {
|
||||||
|
message: @message,
|
||||||
|
show_controls: false
|
||||||
|
}
|
||||||
|
|
||||||
if session_user_id = session[SessionController::ACTIVATE_USER_KEY]
|
if session_user_id = session[SessionController::ACTIVATE_USER_KEY]
|
||||||
if user = User.where(id: session_user_id.to_i).first
|
if user = User.where(id: session_user_id.to_i).first
|
||||||
@account_created[:username] = user.username
|
@account_created[:username] = user.username
|
||||||
@account_created[:email] = user.email
|
@account_created[:email] = user.email
|
||||||
|
@account_created[:show_controls] = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -618,6 +622,8 @@ class UsersController < ApplicationController
|
|||||||
RateLimiter.new(nil, "activate-min-#{request.remote_ip}", 6, 1.minute).performed!
|
RateLimiter.new(nil, "activate-min-#{request.remote_ip}", 6, 1.minute).performed!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
raise Discourse::InvalidAccess.new if SiteSetting.must_approve_users?
|
||||||
|
|
||||||
if params[:username].present?
|
if params[:username].present?
|
||||||
@user = User.find_by_username_or_email(params[:username].to_s)
|
@user = User.find_by_username_or_email(params[:username].to_s)
|
||||||
end
|
end
|
||||||
@ -626,7 +632,7 @@ class UsersController < ApplicationController
|
|||||||
if !current_user&.staff? &&
|
if !current_user&.staff? &&
|
||||||
@user.id != session[SessionController::ACTIVATE_USER_KEY]
|
@user.id != session[SessionController::ACTIVATE_USER_KEY]
|
||||||
|
|
||||||
raise Discourse::InvalidAccess
|
raise Discourse::InvalidAccess.new
|
||||||
end
|
end
|
||||||
|
|
||||||
session.delete(SessionController::ACTIVATE_USER_KEY)
|
session.delete(SessionController::ACTIVATE_USER_KEY)
|
||||||
|
@ -1461,6 +1461,20 @@ describe UsersController do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "approval is enabled" do
|
||||||
|
before do
|
||||||
|
SiteSetting.must_approve_users = true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should raise an error" do
|
||||||
|
unconfirmed_email_user = Fabricate(:user, active: true)
|
||||||
|
unconfirmed_email_user.email_tokens.create(email: unconfirmed_email_user.email)
|
||||||
|
session[SessionController::ACTIVATE_USER_KEY] = unconfirmed_email_user.id
|
||||||
|
xhr :post, :send_activation_email, username: unconfirmed_email_user.username
|
||||||
|
expect(response.status).to eq(403)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'when user does not have a valid session' do
|
describe 'when user does not have a valid session' do
|
||||||
it 'should not be valid' do
|
it 'should not be valid' do
|
||||||
user = Fabricate(:user)
|
user = Fabricate(:user)
|
||||||
|
Reference in New Issue
Block a user