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() {
return [
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'))}
value={this.username()}
onchange={m.withAttr('value', this.username)}
disabled={this.loading} />
disabled={this.loading || this.isProvided('username')} />
</div>
<div className="Form-group">
<input className="FormControl" name="email" type="email" placeholder={extractText(app.translator.trans('core.forum.sign_up.email_placeholder'))}
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>
{this.props.token ? '' : (

View File

@ -104,7 +104,13 @@ class AuthenticationResponseFactory
$token = AuthToken::generate($identification);
$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;