Merge pull request #739 from rgarmsen2295/plt-39

PLT-39 Clicking "Resend email" on the verification page now confirms email was sent
Этот коммит содержится в:
Christopher Speller
2015-09-23 08:19:45 -04:00
родитель f340d21cf4 b4be8eb554
Коммит 772a4337c6
3 изменённых файлов: 17 добавлений и 4 удалений

Просмотреть файл

@@ -10,12 +10,14 @@ export default class EmailVerify extends React.Component {
this.state = {}; this.state = {};
} }
handleResend() { handleResend() {
window.location.href = window.location.href + '&resend=true'; const newAddress = window.location.href.replace('&resend_success=true', '');
window.location.href = newAddress + '&resend=true';
} }
render() { render() {
var title = ''; var title = '';
var body = ''; var body = '';
var resend = ''; var resend = '';
var resendConfirm = '';
if (this.props.isVerified === 'true') { if (this.props.isVerified === 'true') {
title = global.window.config.SiteName + ' Email Verified'; title = global.window.config.SiteName + ' Email Verified';
body = <p>Your email has been verified! Click <a href={this.props.teamURL + '?email=' + this.props.userEmail}>here</a> to log in.</p>; body = <p>Your email has been verified! Click <a href={this.props.teamURL + '?email=' + this.props.userEmail}>here</a> to log in.</p>;
@@ -30,6 +32,9 @@ export default class EmailVerify extends React.Component {
Resend Email Resend Email
</button> </button>
); );
if (this.props.resendSuccess) {
resendConfirm = <div><br /><p className='alert alert-success'><i className='fa fa-check'></i>{' Verification email sent.'}</p></div>;
}
} }
return ( return (
@@ -41,6 +46,7 @@ export default class EmailVerify extends React.Component {
<div className='panel-body'> <div className='panel-body'>
{body} {body}
{resend} {resend}
{resendConfirm}
</div> </div>
</div> </div>
</div> </div>
@@ -51,10 +57,12 @@ export default class EmailVerify extends React.Component {
EmailVerify.defaultProps = { EmailVerify.defaultProps = {
isVerified: 'false', isVerified: 'false',
teamURL: '', teamURL: '',
userEmail: '' userEmail: '',
resendSuccess: 'false'
}; };
EmailVerify.propTypes = { EmailVerify.propTypes = {
isVerified: React.PropTypes.string, isVerified: React.PropTypes.string,
teamURL: React.PropTypes.string, teamURL: React.PropTypes.string,
userEmail: React.PropTypes.string userEmail: React.PropTypes.string,
resendSuccess: React.PropTypes.string
}; };

Просмотреть файл

@@ -9,6 +9,7 @@ global.window.setupVerifyPage = function setupVerifyPage(props) {
isVerified={props.IsVerified} isVerified={props.IsVerified}
teamURL={props.TeamURL} teamURL={props.TeamURL}
userEmail={props.UserEmail} userEmail={props.UserEmail}
resendSuccess={props.ResendSuccess}
/>, />,
document.getElementById('verify') document.getElementById('verify')
); );

Просмотреть файл

@@ -359,6 +359,7 @@ func getChannel(c *api.Context, w http.ResponseWriter, r *http.Request) {
func verifyEmail(c *api.Context, w http.ResponseWriter, r *http.Request) { func verifyEmail(c *api.Context, w http.ResponseWriter, r *http.Request) {
resend := r.URL.Query().Get("resend") resend := r.URL.Query().Get("resend")
resendSuccess := r.URL.Query().Get("resend_success")
name := r.URL.Query().Get("teamname") name := r.URL.Query().Get("teamname")
email := r.URL.Query().Get("email") email := r.URL.Query().Get("email")
hashedId := r.URL.Query().Get("hid") hashedId := r.URL.Query().Get("hid")
@@ -379,7 +380,9 @@ func verifyEmail(c *api.Context, w http.ResponseWriter, r *http.Request) {
} else { } else {
user := result.Data.(*model.User) user := result.Data.(*model.User)
api.FireAndForgetVerifyEmail(user.Id, user.Email, team.Name, team.DisplayName, c.GetSiteURL(), c.GetTeamURLFromTeam(team)) api.FireAndForgetVerifyEmail(user.Id, user.Email, team.Name, team.DisplayName, c.GetSiteURL(), c.GetTeamURLFromTeam(team))
http.Redirect(w, r, "/", http.StatusFound)
newAddress := strings.Replace(r.URL.String(), "&resend=true", "&resend_success=true", -1)
http.Redirect(w, r, newAddress, http.StatusFound)
return return
} }
} }
@@ -404,6 +407,7 @@ func verifyEmail(c *api.Context, w http.ResponseWriter, r *http.Request) {
page.Props["IsVerified"] = isVerified page.Props["IsVerified"] = isVerified
page.Props["TeamURL"] = c.GetTeamURLFromTeam(team) page.Props["TeamURL"] = c.GetTeamURLFromTeam(team)
page.Props["UserEmail"] = email page.Props["UserEmail"] = email
page.Props["ResendSuccess"] = resendSuccess
page.Render(c, w) page.Render(c, w)
} }