ensure login label is used on self enrollment

fixes CNVS-17962

If you have self enrollments enabled and set a custom label, that
custom label should be used when doing a self enrollment

Test

Given you have self enrollments enabled for a course
And you've set up a custom label for that course (by going to
accounts/self/settings)
When you go to a self enrollment link
The login label should be set to that text

Change-Id: I0c2fc08bbb69bfd72f87674e124d0e8ca7d73fb8
Reviewed-on: https://gerrit.instructure.com/48659
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: Sterling Cobb <sterling@instructure.com>
This commit is contained in:
Sterling Cobb 2015-02-11 13:44:29 -07:00
parent e2d1903bd3
commit 0c647ac089
3 changed files with 22 additions and 3 deletions

View File

@ -22,7 +22,13 @@ class SelfEnrollmentsController < ApplicationController
include Api::V1::Course
def new
@domain_root_account.reload
js_env :PASSWORD_POLICY => @domain_root_account.password_policy
@login_label_name = t("email")
login_handle_name = @domain_root_account.login_handle_name
@login_label_name = login_handle_name if login_handle_name
if !@current_user && delegated_authentication_url?
store_location
flash[:notice] = t('notices.login_required', "Please log in to join this course.")

View File

@ -1,11 +1,11 @@
<form action="<%= self_enrollment_url %>" method="post" id="enroll_form" class="form-horizontal bootstrap-form">
<%= registration_summary || content_tag(:p, mt(:getting_started, "You are enrolling in **%{course}**.", :course => @course.name)) %>
<p><%= t(:enter_email, "Please enter your email address:") %></p>
<p><%= t("Please enter your %{label_name}:", :label_name => @login_label_name) %></p>
<input type="hidden" name="user[initial_enrollment_type]" value="student">
<div class="control-group" id="email_info">
<label class="control-label" for="student_email"><%= t "labels.email", "Email" %></label>
<label class="control-label" for="student_email"><%= @login_label_name %></label>
<div class="controls">
<input type="text" id="student_email" name="pseudonym[unique_id]">
<input type="text" id="student_email" name="pseudonym[unique_id]" placeholder="<%= @login_label_name %>">
</div>
</div>
<div class="control-group" id="initial_action">

View File

@ -51,5 +51,18 @@ describe SelfEnrollmentsController do
get 'new', :self_enrollment_code => code
expect(response).to be_success
end
it "should default assign login_label_name to 'email'" do
get 'new', :self_enrollment_code => @course.self_enrollment_code
expect(assigns(:login_label_name)).to eq("Email")
end
it "should change login_label_name when set on domain_root_account" do
custom_label = "batman is the best"
Account.any_instance.stubs(:login_handle_name).returns(custom_label)
get 'new', :self_enrollment_code => @course.self_enrollment_code
expect(assigns(:login_label_name)).to eq(custom_label)
end
end
end