Merge pull request #1330 from clarkwinkelmann/signup-fields-locking

Prevent editing fields in sign up modal according to identification data
This commit is contained in:
Toby Zerner 2018-01-12 08:38:49 +10:30 committed by GitHub
commit 64b30faa39
2 changed files with 13 additions and 3 deletions

View File

@ -60,6 +60,10 @@ export default class SignUpModal extends Modal {
]; ];
} }
isProvided(field) {
return this.props.identificationFields && this.props.identificationFields.indexOf(field) !== -1;
}
body() { body() {
return [ return [
this.props.token ? '' : <LogInButtons/>, this.props.token ? '' : <LogInButtons/>,
@ -69,14 +73,14 @@ export default class SignUpModal extends Modal {
<input className="FormControl" name="username" type="text" placeholder={extractText(app.translator.trans('core.forum.sign_up.username_placeholder'))} <input className="FormControl" name="username" type="text" placeholder={extractText(app.translator.trans('core.forum.sign_up.username_placeholder'))}
value={this.username()} value={this.username()}
onchange={m.withAttr('value', this.username)} onchange={m.withAttr('value', this.username)}
disabled={this.loading} /> disabled={this.loading || this.isProvided('username')} />
</div> </div>
<div className="Form-group"> <div className="Form-group">
<input className="FormControl" name="email" type="email" placeholder={extractText(app.translator.trans('core.forum.sign_up.email_placeholder'))} <input className="FormControl" name="email" type="email" placeholder={extractText(app.translator.trans('core.forum.sign_up.email_placeholder'))}
value={this.email()} value={this.email()}
onchange={m.withAttr('value', this.email)} onchange={m.withAttr('value', this.email)}
disabled={this.loading || (this.props.token && this.props.email)} /> disabled={this.loading || this.isProvided('email')} />
</div> </div>
{this.props.token ? '' : ( {this.props.token ? '' : (

View File

@ -104,7 +104,13 @@ class AuthenticationResponseFactory
$token = AuthToken::generate($identification); $token = AuthToken::generate($identification);
$token->save(); $token->save();
$payload = array_merge($identification, $suggestions, ['token' => $token->id]); $payload = array_merge(
$identification,
$suggestions,
['token' => $token->id],
// List of the fields that can't be edited during sign up
['identificationFields' => array_keys($identification)]
);
} }
return $payload; return $payload;