mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
server-ts: Port etapi_tokens service
This commit is contained in:
parent
56ca0ea5d0
commit
1b58dbe401
@ -19,10 +19,10 @@ class BEtapiToken extends AbstractBeccaEntity<BEtapiToken> {
|
|||||||
static get primaryKeyName() { return "etapiTokenId"; }
|
static get primaryKeyName() { return "etapiTokenId"; }
|
||||||
static get hashedProperties() { return ["etapiTokenId", "name", "tokenHash", "utcDateCreated", "utcDateModified", "isDeleted"]; }
|
static get hashedProperties() { return ["etapiTokenId", "name", "tokenHash", "utcDateCreated", "utcDateModified", "isDeleted"]; }
|
||||||
|
|
||||||
etapiTokenId!: string;
|
etapiTokenId?: string;
|
||||||
name!: string;
|
name!: string;
|
||||||
tokenHash!: string;
|
tokenHash!: string;
|
||||||
private _isDeleted!: boolean;
|
private _isDeleted?: boolean;
|
||||||
|
|
||||||
constructor(row: EtapiTokenRow) {
|
constructor(row: EtapiTokenRow) {
|
||||||
super();
|
super();
|
||||||
@ -36,7 +36,7 @@ class BEtapiToken extends AbstractBeccaEntity<BEtapiToken> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get isDeleted() {
|
get isDeleted() {
|
||||||
return this._isDeleted;
|
return !!this._isDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFromRow(row: EtapiTokenRow) {
|
updateFromRow(row: EtapiTokenRow) {
|
||||||
@ -74,8 +74,10 @@ class BEtapiToken extends AbstractBeccaEntity<BEtapiToken> {
|
|||||||
|
|
||||||
super.beforeSaving();
|
super.beforeSaving();
|
||||||
|
|
||||||
|
if (this.etapiTokenId) {
|
||||||
this.becca.etapiTokens[this.etapiTokenId] = this;
|
this.becca.etapiTokens[this.etapiTokenId] = this;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export = BEtapiToken;
|
export = BEtapiToken;
|
||||||
|
@ -46,12 +46,12 @@ export interface OptionRow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface EtapiTokenRow {
|
export interface EtapiTokenRow {
|
||||||
etapiTokenId: string;
|
etapiTokenId?: string;
|
||||||
name: string;
|
name: string;
|
||||||
tokenHash: string;
|
tokenHash: string;
|
||||||
utcDateCreated?: string;
|
utcDateCreated?: string;
|
||||||
utcDateModified?: string;
|
utcDateModified?: string;
|
||||||
isDeleted: boolean;
|
isDeleted?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface BlobRow {
|
export interface BlobRow {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
const becca = require('../becca/becca');
|
const becca = require('../becca/becca');
|
||||||
const eu = require('./etapi_utils');
|
const eu = require('./etapi_utils');
|
||||||
const passwordEncryptionService = require('../services/encryption/password_encryption');
|
const passwordEncryptionService = require('../services/encryption/password_encryption');
|
||||||
const etapiTokenService = require('../services/etapi_tokens.js');
|
const etapiTokenService = require('../services/etapi_tokens');
|
||||||
|
|
||||||
function register(router, loginMiddleware) {
|
function register(router, loginMiddleware) {
|
||||||
eu.NOT_AUTHENTICATED_ROUTE(router, 'post', '/etapi/auth/login', loginMiddleware, (req, res, next) => {
|
eu.NOT_AUTHENTICATED_ROUTE(router, 'post', '/etapi/auth/login', loginMiddleware, (req, res, next) => {
|
||||||
|
@ -2,7 +2,7 @@ const cls = require('../services/cls');
|
|||||||
const sql = require('../services/sql');
|
const sql = require('../services/sql');
|
||||||
const log = require('../services/log');
|
const log = require('../services/log');
|
||||||
const becca = require('../becca/becca');
|
const becca = require('../becca/becca');
|
||||||
const etapiTokenService = require('../services/etapi_tokens.js');
|
const etapiTokenService = require('../services/etapi_tokens');
|
||||||
const config = require('../services/config');
|
const config = require('../services/config');
|
||||||
const GENERIC_CODE = "GENERIC";
|
const GENERIC_CODE = "GENERIC";
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const etapiTokenService = require('../../services/etapi_tokens.js');
|
const etapiTokenService = require('../../services/etapi_tokens');
|
||||||
|
|
||||||
function getTokens() {
|
function getTokens() {
|
||||||
const tokens = etapiTokenService.getTokens();
|
const tokens = etapiTokenService.getTokens();
|
||||||
|
@ -11,7 +11,7 @@ const eventService = require('../../services/events');
|
|||||||
const sqlInit = require('../../services/sql_init');
|
const sqlInit = require('../../services/sql_init');
|
||||||
const sql = require('../../services/sql');
|
const sql = require('../../services/sql');
|
||||||
const ws = require('../../services/ws');
|
const ws = require('../../services/ws');
|
||||||
const etapiTokenService = require('../../services/etapi_tokens.js');
|
const etapiTokenService = require('../../services/etapi_tokens');
|
||||||
|
|
||||||
function loginSync(req) {
|
function loginSync(req) {
|
||||||
if (!sqlInit.schemaExists()) {
|
if (!sqlInit.schemaExists()) {
|
||||||
|
@ -56,7 +56,7 @@ const keysRoute = require('./api/keys.js');
|
|||||||
const backendLogRoute = require('./api/backend_log.js');
|
const backendLogRoute = require('./api/backend_log.js');
|
||||||
const statsRoute = require('./api/stats.js');
|
const statsRoute = require('./api/stats.js');
|
||||||
const fontsRoute = require('./api/fonts.js');
|
const fontsRoute = require('./api/fonts.js');
|
||||||
const etapiTokensApiRoutes = require('./api/etapi_tokens.js');
|
const etapiTokensApiRoutes = require('./api/etapi_tokens');
|
||||||
const relationMapApiRoute = require('./api/relation-map');
|
const relationMapApiRoute = require('./api/relation-map');
|
||||||
const otherRoute = require('./api/other.js');
|
const otherRoute = require('./api/other.js');
|
||||||
const shareRoutes = require('../share/routes.js');
|
const shareRoutes = require('../share/routes.js');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const etapiTokenService = require('./etapi_tokens.js');
|
const etapiTokenService = require('./etapi_tokens');
|
||||||
const log = require('./log');
|
const log = require('./log');
|
||||||
const sqlInit = require('./sql_init');
|
const sqlInit = require('./sql_init');
|
||||||
const utils = require('./utils');
|
const utils = require('./utils');
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
const becca = require('../becca/becca');
|
import becca = require('../becca/becca');
|
||||||
const utils = require('./utils');
|
import utils = require('./utils');
|
||||||
const BEtapiToken = require('../becca/entities/betapi_token');
|
import BEtapiToken = require('../becca/entities/betapi_token');
|
||||||
const crypto = require("crypto");
|
import crypto = require("crypto");
|
||||||
|
|
||||||
function getTokens() {
|
function getTokens() {
|
||||||
return becca.getEtapiTokens();
|
return becca.getEtapiTokens();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTokenHash(token) {
|
function getTokenHash(token: crypto.BinaryLike) {
|
||||||
return crypto.createHash('sha256').update(token).digest('base64');
|
return crypto.createHash('sha256').update(token).digest('base64');
|
||||||
}
|
}
|
||||||
|
|
||||||
function createToken(tokenName) {
|
function createToken(tokenName: string) {
|
||||||
const token = utils.randomSecureToken(32);
|
const token = utils.randomSecureToken(32);
|
||||||
const tokenHash = getTokenHash(token);
|
const tokenHash = getTokenHash(token);
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ function createToken(tokenName) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseAuthToken(auth) {
|
function parseAuthToken(auth: string) {
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ function parseAuthToken(auth) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function isValidAuthHeader(auth) {
|
function isValidAuthHeader(auth: string) {
|
||||||
const parsed = parseAuthToken(auth);
|
const parsed = parseAuthToken(auth);
|
||||||
|
|
||||||
if (!parsed) {
|
if (!parsed) {
|
||||||
@ -93,7 +93,7 @@ function isValidAuthHeader(auth) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function renameToken(etapiTokenId, newName) {
|
function renameToken(etapiTokenId: string, newName: string) {
|
||||||
const etapiToken = becca.getEtapiToken(etapiTokenId);
|
const etapiToken = becca.getEtapiToken(etapiTokenId);
|
||||||
|
|
||||||
if (!etapiToken) {
|
if (!etapiToken) {
|
||||||
@ -104,7 +104,7 @@ function renameToken(etapiTokenId, newName) {
|
|||||||
etapiToken.save();
|
etapiToken.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteToken(etapiTokenId) {
|
function deleteToken(etapiTokenId: string) {
|
||||||
const etapiToken = becca.getEtapiToken(etapiTokenId);
|
const etapiToken = becca.getEtapiToken(etapiTokenId);
|
||||||
|
|
||||||
if (!etapiToken) {
|
if (!etapiToken) {
|
||||||
@ -114,7 +114,7 @@ function deleteToken(etapiTokenId) {
|
|||||||
etapiToken.markAsDeletedSimple();
|
etapiToken.markAsDeletedSimple();
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
export = {
|
||||||
getTokens,
|
getTokens,
|
||||||
createToken,
|
createToken,
|
||||||
renameToken,
|
renameToken,
|
Loading…
x
Reference in New Issue
Block a user