summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDessalines <happydooby@gmail.com>2019-04-26 07:34:04 -0700
committerDessalines <happydooby@gmail.com>2019-04-26 07:34:04 -0700
commit018cbe1feef64a8985b76175b50923344e89cfc1 (patch)
treea146070aa946b78d43a948ad0ee623ae92ac0ada
parent009b3b50793ffb42790eb4949860e8f079823762 (diff)
Fixing rust warning.
- Fixes #111
-rw-r--r--server/Cargo.toml1
-rw-r--r--server/src/websocket_server/server.rs5
-rw-r--r--ui/src/components/login.tsx14
-rw-r--r--ui/src/interfaces.ts1
4 files changed, 15 insertions, 6 deletions
diff --git a/server/Cargo.toml b/server/Cargo.toml
index 93bd6acb..1daaca66 100644
--- a/server/Cargo.toml
+++ b/server/Cargo.toml
@@ -2,6 +2,7 @@
name = "server"
version = "0.0.1"
authors = ["Dessalines <happydooby@gmail.com>"]
+autobins = false
[[bin]]
name = "lemmy"
diff --git a/server/src/websocket_server/server.rs b/server/src/websocket_server/server.rs
index dbd1be8d..d6a9226b 100644
--- a/server/src/websocket_server/server.rs
+++ b/server/src/websocket_server/server.rs
@@ -92,6 +92,7 @@ pub struct Register {
password: String,
password_verify: String,
admin: bool,
+ spam_timer: i64,
}
#[derive(Serialize, Deserialize)]
@@ -789,6 +790,10 @@ impl Perform for Register {
return Err(self.error("Passwords do not match."))?
}
+ if self.spam_timer < 1142 {
+ return Err(self.error("Too fast"))?
+ }
+
if has_slurs(&self.username) {
return Err(self.error("No slurs"))?
}
diff --git a/ui/src/components/login.tsx b/ui/src/components/login.tsx
index e6dec2d2..0713b776 100644
--- a/ui/src/components/login.tsx
+++ b/ui/src/components/login.tsx
@@ -10,7 +10,6 @@ interface State {
registerForm: RegisterForm;
loginLoading: boolean;
registerLoading: boolean;
- spamTimer: number;
}
@@ -27,10 +26,10 @@ export class Login extends Component<any, State> {
password: undefined,
password_verify: undefined,
admin: false,
+ spam_timer: undefined,
},
loginLoading: false,
registerLoading: false,
- spamTimer: new Date().getTime()
}
constructor(props: any, context: any) {
@@ -126,7 +125,7 @@ export class Login extends Component<any, State> {
<input type="password" value={this.state.registerForm.password_verify} onInput={linkEvent(this, this.handleRegisterPasswordVerifyChange)} class="form-control" required />
</div>
</div>
- <input type="hidden" value={this.state.spamTimer} />
+ <input type="hidden" value={this.state.registerForm.spam_timer} />
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-secondary">{this.state.registerLoading ?
@@ -162,16 +161,19 @@ export class Login extends Component<any, State> {
event.preventDefault();
let endTimer = new Date().getTime();
- let elapsed = endTimer - i.state.spamTimer;
- if (elapsed > 4500) {
+ let elapsed = endTimer - i.state.registerForm.spam_timer;
+
+ i.state.registerForm.spam_timer = elapsed;
+ if (elapsed > 1142) {
WebSocketService.Instance.register(i.state.registerForm);
} else {
- location.reload(true);
+ window.location.href = "https://github.com/dessalines/lemmy";
}
}
handleRegisterUsernameChange(i: Login, event: any) {
i.state.registerForm.username = event.target.value;
+ i.state.registerForm.spam_timer = new Date().getTime();
i.setState(i.state);
}
diff --git a/ui/src/interfaces.ts b/ui/src/interfaces.ts
index 68d1b412..4fa30d18 100644
--- a/ui/src/interfaces.ts
+++ b/ui/src/interfaces.ts
@@ -330,6 +330,7 @@ export interface RegisterForm {
email?: string;
password: string;
password_verify: string;
+ spam_timer: number;
admin: boolean;
}