浏览代码

Remove registration fallback code. (#15405)

The registration fallback is broken and unspecced. This removes it
since there is no plan to spec it.

Note that this does not modify the login fallback code.
tags/v1.82.0rc1
Patrick Cloke 1年前
committed by GitHub
父节点
当前提交
d751f65e71
找不到此签名对应的密钥 GPG 密钥 ID: 4AEE18F83AFDEB23
共有 10 个文件被更改,包括 17 次插入227 次删除
  1. +1
    -0
      changelog.d/15405.removal
  2. +5
    -1
      synapse/res/templates/recaptcha.html
  3. +1
    -5
      synapse/res/templates/registration_token.html
  4. +4
    -0
      synapse/res/templates/style.css
  5. +6
    -1
      synapse/res/templates/terms.html
  6. +0
    -34
      synapse/static/client/register/index.html
  7. +0
    -2
      synapse/static/client/register/js/jquery-3.4.1.min.js
  8. +0
    -117
      synapse/static/client/register/js/register.js
  9. +0
    -3
      synapse/static/client/register/register_config.sample.js
  10. +0
    -64
      synapse/static/client/register/style.css

+ 1
- 0
changelog.d/15405.removal 查看文件

@@ -0,0 +1 @@
Remove the broken, unspecced registration fallback. Note that the *login* fallback is unaffected by this change.

+ 5
- 1
synapse/res/templates/recaptcha.html 查看文件

@@ -3,7 +3,11 @@

{% block header %}
<script src="https://www.recaptcha.net/recaptcha/api.js" async defer></script>
<link rel="stylesheet" href="/_matrix/static/client/register/style.css">
<style type="text/css">
.g-recaptcha div {
margin: auto;
}
</style>
<script>
function captchaDone() {
document.getElementById('registrationForm').submit();


+ 1
- 5
synapse/res/templates/registration_token.html 查看文件

@@ -1,12 +1,8 @@
{% extends "_base.html" %}
{% block title %}Authentication{% endblock %}

{% block header %}
<link rel="stylesheet" href="/_matrix/static/client/register/style.css">
{% endblock %}

{% block body %}
<form id="registrationForm" method="post" action="{{ myurl }}">
<form method="post" action="{{ myurl }}">
<div>
{% if error is defined %}
<p class="error"><strong>Error: {{ error }}</strong></p>


+ 4
- 0
synapse/res/templates/style.css 查看文件

@@ -27,3 +27,7 @@ body {
h3 { font-size: .85rem; }
h4 { font-size: .8rem; }
}

.error {
color: red;
}

+ 6
- 1
synapse/res/templates/terms.html 查看文件

@@ -2,7 +2,12 @@
{% block title %}Authentication{% endblock %}

{% block header %}
<link rel="stylesheet" href="/_matrix/static/client/register/style.css">
<style type="text/css">
#registrationForm input {
display: block;
margin: auto;
}
</style>
{% endblock %}

{% block body %}


+ 0
- 34
synapse/static/client/register/index.html 查看文件

@@ -1,34 +0,0 @@
<!doctype html>
<html>
<head>
<title> Registration </title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<script src="js/jquery-3.4.1.min.js"></script>
<script src="https://www.recaptcha.net/recaptcha/api/js/recaptcha_ajax.js"></script>
<script src="register_config.js"></script>
<script src="js/register.js"></script>
</head>
<body onload="matrixRegistration.onLoad()">
<form id="registrationForm" onsubmit="matrixRegistration.signUp(); return false;">
<div>
Create account:<br/>
<div style="text-align: center">
<input id="desired_user_id" size="32" type="text" placeholder="Matrix ID (e.g. bob)" autocapitalize="off" autocorrect="off" />
<br/>
<input id="pwd1" size="32" type="password" placeholder="Type a password"/>
<br/>
<input id="pwd2" size="32" type="password" placeholder="Confirm your password"/>
<br/>
<span id="feedback" style="color: #f00"></span>
<br/>
<div id="regcaptcha"></div>

<button type="submit" style="margin: 10px">Sign up</button>
</div>
</div>
</form>
</body>
</html>

+ 0
- 2
synapse/static/client/register/js/jquery-3.4.1.min.js
文件差异内容过多而无法显示
查看文件


+ 0
- 117
synapse/static/client/register/js/register.js 查看文件

@@ -1,117 +0,0 @@
window.matrixRegistration = {
endpoint: location.origin + "/_matrix/client/api/v1/register"
};

var setupCaptcha = function() {
if (!window.matrixRegistrationConfig) {
return;
}
$.get(matrixRegistration.endpoint, function(response) {
var serverExpectsCaptcha = false;
for (var i=0; i<response.flows.length; i++) {
var flow = response.flows[i];
if ("m.login.recaptcha" === flow.type) {
serverExpectsCaptcha = true;
break;
}
}
if (!serverExpectsCaptcha) {
console.log("This server does not require a captcha.");
return;
}
console.log("Setting up ReCaptcha for "+matrixRegistration.endpoint);
var public_key = window.matrixRegistrationConfig.recaptcha_public_key;
if (public_key === undefined) {
console.error("No public key defined for captcha!");
setFeedbackString("Misconfigured captcha for server. Contact server admin.");
return;
}
Recaptcha.create(public_key,
"regcaptcha",
{
theme: "red",
callback: Recaptcha.focus_response_field
});
window.matrixRegistration.isUsingRecaptcha = true;
}).fail(errorFunc);
};

var submitCaptcha = function(user, pwd) {
var challengeToken = Recaptcha.get_challenge();
var captchaEntry = Recaptcha.get_response();
var data = {
type: "m.login.recaptcha",
challenge: challengeToken,
response: captchaEntry
};
console.log("Submitting captcha");
$.post(matrixRegistration.endpoint, JSON.stringify(data), function(response) {
console.log("Success -> "+JSON.stringify(response));
submitPassword(user, pwd, response.session);
}).fail(function(err) {
Recaptcha.reload();
errorFunc(err);
});
};

var submitPassword = function(user, pwd, session) {
console.log("Registering...");
var data = {
type: "m.login.password",
user: user,
password: pwd,
session: session
};
$.post(matrixRegistration.endpoint, JSON.stringify(data), function(response) {
matrixRegistration.onRegistered(
response.home_server, response.user_id, response.access_token
);
}).fail(errorFunc);
};

var errorFunc = function(err) {
if (err.responseJSON && err.responseJSON.error) {
setFeedbackString(err.responseJSON.error + " (" + err.responseJSON.errcode + ")");
}
else {
setFeedbackString("Request failed: " + err.status);
}
};

var setFeedbackString = function(text) {
$("#feedback").text(text);
};

matrixRegistration.onLoad = function() {
setupCaptcha();
};

matrixRegistration.signUp = function() {
var user = $("#desired_user_id").val();
if (user.length == 0) {
setFeedbackString("Must specify a username.");
return;
}
var pwd1 = $("#pwd1").val();
var pwd2 = $("#pwd2").val();
if (pwd1.length < 6) {
setFeedbackString("Password: min. 6 characters.");
return;
}
if (pwd1 != pwd2) {
setFeedbackString("Passwords do not match.");
return;
}
if (window.matrixRegistration.isUsingRecaptcha) {
submitCaptcha(user, pwd1);
}
else {
submitPassword(user, pwd1);
}
};

matrixRegistration.onRegistered = function(hs_url, user_id, access_token) {
// clobber this function
console.warn("onRegistered - This function should be replaced to proceed.");
};

+ 0
- 3
synapse/static/client/register/register_config.sample.js 查看文件

@@ -1,3 +0,0 @@
window.matrixRegistrationConfig = {
recaptcha_public_key: "YOUR_PUBLIC_KEY"
};

+ 0
- 64
synapse/static/client/register/style.css 查看文件

@@ -1,64 +0,0 @@
html {
height: 100%;
}

body {
height: 100%;
font-family: "Myriad Pro", "Myriad", Helvetica, Arial, sans-serif;
font-size: 12pt;
margin: 0px;
}

h1 {
font-size: 20pt;
}

a:link { color: #666; }
a:visited { color: #666; }
a:hover { color: #000; }
a:active { color: #000; }

input {
width: 100%
}

textarea, input {
font-family: inherit;
font-size: inherit;
}

.smallPrint {
color: #888;
font-size: 9pt ! important;
font-style: italic ! important;
}

#recaptcha_area {
margin: auto
}

.g-recaptcha div {
margin: auto;
}

#registrationForm {
text-align: left;
padding: 5px;
margin-bottom: 40px;
display: inline-block;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15);
-moz-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15);
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15);
background-color: #f8f8f8;
border: 1px #ccc solid;
}

.error {
color: red;
}

正在加载...
取消
保存