mirror of
https://github.com/kamask-dev/pchelpmaster.git
synced 2026-11-11 05:49:38 +00:00
Migration sets access rules, password min 8, name max 100, password-only auth, and a case-insensitive unique email index. A hook rejects non-ASCII and malformed emails on every save. API tests cover registration, login, and isolation between two users and a guest. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
/// <reference path="../pb_data/types.d.ts" />
|
|
|
|
function configureUsers(app, { deleteRule, nameMax, emailColumn }) {
|
|
const users = app.findCollectionByNameOrId('users');
|
|
|
|
users.listRule = 'id = @request.auth.id';
|
|
users.viewRule = 'id = @request.auth.id';
|
|
users.createRule = '';
|
|
users.updateRule = 'id = @request.auth.id';
|
|
users.deleteRule = deleteRule;
|
|
|
|
// Встроенный индекс PocketBase учитывает регистр: без замены A@x.ru и a@x.ru — разные аккаунты.
|
|
users.addIndex('idx_email__pb_users_auth_', true, emailColumn, "`email` != ''");
|
|
|
|
users.fields.getByName('password').min = 8;
|
|
users.fields.getByName('name').max = nameMax;
|
|
|
|
users.passwordAuth.enabled = true;
|
|
users.passwordAuth.identityFields = ['email'];
|
|
users.oauth2.enabled = false;
|
|
users.otp.enabled = false;
|
|
users.mfa.enabled = false;
|
|
|
|
app.save(users);
|
|
}
|
|
|
|
migrate(
|
|
(app) =>
|
|
configureUsers(app, {
|
|
deleteRule: null,
|
|
nameMax: 100,
|
|
emailColumn: '`email` COLLATE NOCASE',
|
|
}),
|
|
(app) =>
|
|
configureUsers(app, {
|
|
deleteRule: 'id = @request.auth.id',
|
|
nameMax: 255,
|
|
emailColumn: '`email`',
|
|
}),
|
|
);
|