fix: wording and small adjustment
This commit is contained in:
parent
7f440c40e9
commit
0f694ea777
4 changed files with 75 additions and 14 deletions
|
|
@ -108,7 +108,10 @@ async function listFolder(path: string[]) {
|
||||||
const list = await new Promise<{ pathname: string; name: string }[]>((resolve, reject) => {
|
const list = await new Promise<{ pathname: string; name: string }[]>((resolve, reject) => {
|
||||||
const item: { pathname: string; name: string }[] = [];
|
const item: { pathname: string; name: string }[] = [];
|
||||||
|
|
||||||
const stream = minioClient.listObjectsV2(DEFAULT_BUCKET, path.join("/") + "/");
|
const stream = minioClient.listObjectsV2(
|
||||||
|
DEFAULT_BUCKET,
|
||||||
|
path.length === 0 ? "" : path.join("/") + "/",
|
||||||
|
);
|
||||||
stream.on("data", (v) => {
|
stream.on("data", (v) => {
|
||||||
if (v && v.prefix)
|
if (v && v.prefix)
|
||||||
item.push({
|
item.push({
|
||||||
|
|
@ -388,7 +391,7 @@ export class StorageController extends Controller {
|
||||||
@Post("file")
|
@Post("file")
|
||||||
@Tags("Storage File")
|
@Tags("Storage File")
|
||||||
@Security("bearerAuth", ["management-role", "admin"])
|
@Security("bearerAuth", ["management-role", "admin"])
|
||||||
@SuccessResponse(HttpStatusCode.NO_CONTENT, "สำเร็จ")
|
@SuccessResponse(HttpStatusCode.OK, "สำเร็จ")
|
||||||
public async postFile(
|
public async postFile(
|
||||||
@Request() request: { user: { preferred_username: string } },
|
@Request() request: { user: { preferred_username: string } },
|
||||||
@Body() body: FileBody,
|
@Body() body: FileBody,
|
||||||
|
|
@ -441,7 +444,7 @@ export class StorageController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
await esClient.index({
|
await esClient.index({
|
||||||
index: DEFAULT_INDEX!,
|
index: DEFAULT_INDEX,
|
||||||
document: metadata,
|
document: metadata,
|
||||||
refresh: "wait_for", // Must have or else it doesn't wait for updated index resulted in data not found on fetch
|
refresh: "wait_for", // Must have or else it doesn't wait for updated index resulted in data not found on fetch
|
||||||
});
|
});
|
||||||
|
|
@ -450,6 +453,8 @@ export class StorageController extends Controller {
|
||||||
|
|
||||||
const presignedUrl = await minioClient.presignedPutObject(DEFAULT_BUCKET, metadata.pathname);
|
const presignedUrl = await minioClient.presignedPutObject(DEFAULT_BUCKET, metadata.pathname);
|
||||||
|
|
||||||
|
console.log(presignedUrl);
|
||||||
|
|
||||||
return { ...metadata, uploadUrl: presignedUrl };
|
return { ...metadata, uploadUrl: presignedUrl };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -730,6 +730,7 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.post('/storage/list',
|
app.post('/storage/list',
|
||||||
|
authenticateMiddleware([{"bearerAuth":[]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.getList)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.getList)),
|
||||||
|
|
||||||
|
|
@ -755,11 +756,13 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.post('/storage/folder',
|
app.post('/storage/folder',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.postFolder)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.postFolder)),
|
||||||
|
|
||||||
function StorageController_postFolder(request: any, response: any, next: any) {
|
function StorageController_postFolder(request: any, response: any, next: any) {
|
||||||
const args = {
|
const args = {
|
||||||
|
request: {"in":"request","name":"request","required":true,"dataType":"object"},
|
||||||
body: {"in":"body","name":"body","required":true,"ref":"FolderBody"},
|
body: {"in":"body","name":"body","required":true,"ref":"FolderBody"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -780,6 +783,7 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.put('/storage/folder',
|
app.put('/storage/folder',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.moveFolder)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.moveFolder)),
|
||||||
|
|
||||||
|
|
@ -805,6 +809,7 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.delete('/storage/folder',
|
app.delete('/storage/folder',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.deleteStorage)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.deleteStorage)),
|
||||||
|
|
||||||
|
|
@ -830,11 +835,13 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.post('/storage/file',
|
app.post('/storage/file',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.postFile)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.postFile)),
|
||||||
|
|
||||||
function StorageController_postFile(request: any, response: any, next: any) {
|
function StorageController_postFile(request: any, response: any, next: any) {
|
||||||
const args = {
|
const args = {
|
||||||
|
request: {"in":"request","name":"request","required":true,"dataType":"object"},
|
||||||
body: {"in":"body","name":"body","required":true,"ref":"FileBody"},
|
body: {"in":"body","name":"body","required":true,"ref":"FileBody"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -848,18 +855,20 @@ export function RegisterRoutes(app: Router) {
|
||||||
|
|
||||||
|
|
||||||
const promise = controller.postFile.apply(controller, validatedArgs as any);
|
const promise = controller.postFile.apply(controller, validatedArgs as any);
|
||||||
promiseHandler(controller, promise, response, 204, next);
|
promiseHandler(controller, promise, response, 200, next);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.put('/storage/file',
|
app.put('/storage/file',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.moveFile)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.moveFile)),
|
||||||
|
|
||||||
function StorageController_moveFile(request: any, response: any, next: any) {
|
function StorageController_moveFile(request: any, response: any, next: any) {
|
||||||
const args = {
|
const args = {
|
||||||
|
request: {"in":"request","name":"request","required":true,"dataType":"object"},
|
||||||
body: {"in":"body","name":"body","required":true,"ref":"PutFileBody"},
|
body: {"in":"body","name":"body","required":true,"ref":"PutFileBody"},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -880,6 +889,7 @@ export function RegisterRoutes(app: Router) {
|
||||||
});
|
});
|
||||||
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
// WARNING: This file was auto-generated with tsoa. Please do not modify it. Re-run tsoa to re-generate this file: https://github.com/lukeautry/tsoa
|
||||||
app.delete('/storage/file',
|
app.delete('/storage/file',
|
||||||
|
authenticateMiddleware([{"bearerAuth":["management-role","admin"]}]),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
...(fetchMiddlewares<RequestHandler>(StorageController)),
|
||||||
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.deleteFile)),
|
...(fetchMiddlewares<RequestHandler>(StorageController.prototype.deleteFile)),
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2032,7 +2032,11 @@
|
||||||
"Storage Folder",
|
"Storage Folder",
|
||||||
"Storage File"
|
"Storage File"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2057,7 +2061,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage Folder"
|
"Storage Folder"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2081,7 +2092,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage Folder"
|
"Storage Folder"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2105,7 +2123,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage Folder"
|
"Storage Folder"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2123,7 +2148,7 @@
|
||||||
"post": {
|
"post": {
|
||||||
"operationId": "PostFile",
|
"operationId": "PostFile",
|
||||||
"responses": {
|
"responses": {
|
||||||
"204": {
|
"200": {
|
||||||
"description": "สำเร็จ",
|
"description": "สำเร็จ",
|
||||||
"content": {
|
"content": {
|
||||||
"application/json": {
|
"application/json": {
|
||||||
|
|
@ -2225,7 +2250,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage File"
|
"Storage File"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2268,7 +2300,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage File"
|
"Storage File"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
@ -2291,7 +2330,14 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Storage File"
|
"Storage File"
|
||||||
],
|
],
|
||||||
"security": [],
|
"security": [
|
||||||
|
{
|
||||||
|
"bearerAuth": [
|
||||||
|
"management-role",
|
||||||
|
"admin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"requestBody": {
|
"requestBody": {
|
||||||
"required": true,
|
"required": true,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ export async function expressAuthentication(
|
||||||
? request.headers["authorization"].split(" ")[1]
|
? request.headers["authorization"].split(" ")[1]
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
if (!token) throw new HttpError(HttpStatusCode.UNAUTHORIZED, "ไม่พบข้อมูลสำหัรบบืนบันตัวตน");
|
if (!token) throw new HttpError(HttpStatusCode.UNAUTHORIZED, "ไม่พบข้อมูลสำหรับยินยันตัวตน");
|
||||||
|
|
||||||
let payload: JwtPayload = {};
|
let payload: JwtPayload = {};
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@ export async function expressAuthentication(
|
||||||
scopes.length > 0 &&
|
scopes.length > 0 &&
|
||||||
scopes
|
scopes
|
||||||
.map((v) => (v === "management-role" ? process.env.MANAGEMENT_ROLE : v))
|
.map((v) => (v === "management-role" ? process.env.MANAGEMENT_ROLE : v))
|
||||||
.every((v) => !payload.resource_access[payload.azp].roles.includes(v))
|
.every((v) => !payload.role.includes(v))
|
||||||
) {
|
) {
|
||||||
throw new HttpError(HttpStatusCode.FORBIDDEN, "คุณไม่มีสิทธิในเข้าถึงข้อมูลนี้");
|
throw new HttpError(HttpStatusCode.FORBIDDEN, "คุณไม่มีสิทธิในเข้าถึงข้อมูลนี้");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue