Prefill user_id and password on user creation

Change-Id: I3f604f38c1842f155f3b39da20ba45992ba522be
This commit is contained in:
Michael Albert 2020-02-04 11:04:56 +01:00 committed by Manuel Stahl
parent 07e7ed98b5
commit c9bce409d2

View File

@ -60,6 +60,47 @@ export const UserList = props => (
</List>
);
function generateRandomUser() {
const homeserver = localStorage.getItem("home_server");
const user_id =
"@" +
Array(8)
.fill("0123456789abcdefghijklmnopqrstuvwxyz")
.map(
x =>
x[
Math.floor(
(crypto.getRandomValues(new Uint32Array(1))[0] /
(0xffffffff + 1)) *
x.length
)
]
)
.join("") +
":" +
homeserver;
const password = Array(20)
.fill(
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@-#$"
)
.map(
x =>
x[
Math.floor(
(crypto.getRandomValues(new Uint32Array(1))[0] / (0xffffffff + 1)) *
x.length
)
]
)
.join("");
return {
id: user_id,
password: password,
};
}
// https://matrix.org/docs/spec/appendices#user-identifiers
const validateUser = regex(
/^@[a-z0-9._=\-/]+:.*/,
@ -67,7 +108,7 @@ const validateUser = regex(
);
export const UserCreate = props => (
<Create {...props}>
<Create record={generateRandomUser()} {...props}>
<SimpleForm>
<TextInput source="id" autoComplete="off" validate={validateUser} />
<TextInput source="displayname" />