mirror of
https://github.com/LemmyNet/lemmy-ui.git
synced 2024-11-26 06:11:15 +00:00
Add honeypot for user and form creation. Fixes #433
This commit is contained in:
parent
3afdbdb941
commit
60da3ac830
5 changed files with 42 additions and 7 deletions
|
@ -72,7 +72,7 @@
|
||||||
"husky": "^7.0.2",
|
"husky": "^7.0.2",
|
||||||
"import-sort-style-module": "^6.0.0",
|
"import-sort-style-module": "^6.0.0",
|
||||||
"iso-639-1": "^2.1.9",
|
"iso-639-1": "^2.1.9",
|
||||||
"lemmy-js-client": "0.13.0",
|
"lemmy-js-client": "0.13.1-rc.1",
|
||||||
"lint-staged": "^11.0.1",
|
"lint-staged": "^11.0.1",
|
||||||
"mini-css-extract-plugin": "^2.3.0",
|
"mini-css-extract-plugin": "^2.3.0",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
|
|
|
@ -364,3 +364,7 @@ br.big {
|
||||||
.tribute-container .menu-highlighted {
|
.tribute-container .menu-highlighted {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.honeypot {
|
||||||
|
display:none !important;
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { Options, passwordStrength } from "check-password-strength";
|
||||||
|
import { I18nKeys } from "i18next";
|
||||||
import { Component, linkEvent } from "inferno";
|
import { Component, linkEvent } from "inferno";
|
||||||
import { T } from "inferno-i18next-dess";
|
import { T } from "inferno-i18next-dess";
|
||||||
import {
|
import {
|
||||||
|
@ -10,7 +12,6 @@ import {
|
||||||
} from "lemmy-js-client";
|
} from "lemmy-js-client";
|
||||||
import { Subscription } from "rxjs";
|
import { Subscription } from "rxjs";
|
||||||
import { i18n } from "../../i18next";
|
import { i18n } from "../../i18next";
|
||||||
import { Options, passwordStrength } from "check-password-strength";
|
|
||||||
import { UserService, WebSocketService } from "../../services";
|
import { UserService, WebSocketService } from "../../services";
|
||||||
import {
|
import {
|
||||||
authField,
|
authField,
|
||||||
|
@ -26,7 +27,6 @@ import {
|
||||||
} from "../../utils";
|
} from "../../utils";
|
||||||
import { HtmlTags } from "../common/html-tags";
|
import { HtmlTags } from "../common/html-tags";
|
||||||
import { Icon, Spinner } from "../common/icon";
|
import { Icon, Spinner } from "../common/icon";
|
||||||
import {I18nKeys} from "i18next";
|
|
||||||
|
|
||||||
const passwordStrengthOptions: Options<string> = [
|
const passwordStrengthOptions: Options<string> = [
|
||||||
{
|
{
|
||||||
|
@ -76,6 +76,7 @@ export class Signup extends Component<any, State> {
|
||||||
show_nsfw: false,
|
show_nsfw: false,
|
||||||
captcha_uuid: undefined,
|
captcha_uuid: undefined,
|
||||||
captcha_answer: undefined,
|
captcha_answer: undefined,
|
||||||
|
honeypot: undefined,
|
||||||
},
|
},
|
||||||
registerLoading: false,
|
registerLoading: false,
|
||||||
captcha: undefined,
|
captcha: undefined,
|
||||||
|
@ -272,6 +273,16 @@ export class Signup extends Component<any, State> {
|
||||||
</T>
|
</T>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
<input
|
||||||
|
tabIndex={-1}
|
||||||
|
autoComplete="false"
|
||||||
|
name="a_password"
|
||||||
|
type="text"
|
||||||
|
class="form-control honeypot"
|
||||||
|
id="register-honey"
|
||||||
|
value={this.state.registerForm.honeypot}
|
||||||
|
onInput={linkEvent(this, this.handleHoneyPotChange)}
|
||||||
|
/>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<button type="submit" class="btn btn-secondary">
|
<button type="submit" class="btn btn-secondary">
|
||||||
|
@ -371,6 +382,11 @@ export class Signup extends Component<any, State> {
|
||||||
i.setState(i.state);
|
i.setState(i.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleHoneyPotChange(i: Signup, event: any) {
|
||||||
|
i.state.registerForm.honeypot = event.target.value;
|
||||||
|
i.setState(i.state);
|
||||||
|
}
|
||||||
|
|
||||||
handleRegenCaptcha(i: Signup) {
|
handleRegenCaptcha(i: Signup) {
|
||||||
i.audio = null;
|
i.audio = null;
|
||||||
i.state.captchaPlaying = false;
|
i.state.captchaPlaying = false;
|
||||||
|
|
|
@ -326,6 +326,16 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
<input
|
||||||
|
tabIndex={-1}
|
||||||
|
autoComplete="false"
|
||||||
|
name="a_password"
|
||||||
|
type="text"
|
||||||
|
class="form-control honeypot"
|
||||||
|
id="register-honey"
|
||||||
|
value={this.state.postForm.honeypot}
|
||||||
|
onInput={linkEvent(this, this.handleHoneyPotChange)}
|
||||||
|
/>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<button
|
<button
|
||||||
|
@ -466,6 +476,11 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
|
||||||
i.setState(i.state);
|
i.setState(i.state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleHoneyPotChange(i: PostForm, event: any) {
|
||||||
|
i.state.postForm.honeypot = event.target.value;
|
||||||
|
i.setState(i.state);
|
||||||
|
}
|
||||||
|
|
||||||
handleCancel(i: PostForm) {
|
handleCancel(i: PostForm) {
|
||||||
i.props.onCancel();
|
i.props.onCancel();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4915,10 +4915,10 @@ lcid@^1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
invert-kv "^1.0.0"
|
invert-kv "^1.0.0"
|
||||||
|
|
||||||
lemmy-js-client@0.13.0:
|
lemmy-js-client@0.13.1-rc.1:
|
||||||
version "0.13.0"
|
version "0.13.1-rc.1"
|
||||||
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.13.0.tgz#fc15f603a8492e0c2542a3b55fb4df06a182b4fc"
|
resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.13.1-rc.1.tgz#e1af4749a5493954a17f87b7b20dcccb8c585f22"
|
||||||
integrity sha512-7RBgbd3hOTq8fb+oef3B8U1O1UmIutTI0n+fx0EMHjFIselYwBwHhpSD6/ORtPPMXDY5MS6jiwO5QV7blSQRtA==
|
integrity sha512-fncCq6Zu8s6GpeCrkmJS8/rqXcyrJ8p8EyWfXiiuZlWkgzOIi+qZjTRnO63wI6DomYwVOjwk7sry4RbOJSdK5Q==
|
||||||
|
|
||||||
levn@^0.4.1:
|
levn@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
|
|
Loading…
Reference in a new issue