feat(user migration): user migration to the new app with a default password that will force reset
This commit is contained in:
@@ -5,17 +5,16 @@ meta {
|
||||
}
|
||||
|
||||
post {
|
||||
url: {{url}}/lst/api/admin/users
|
||||
body: none
|
||||
url: {{url}}/lst/api/admin/users/new
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"username":"matthes01",
|
||||
"name":"blake",
|
||||
"email":"blake.matthes@alpla.com",
|
||||
"password":"nova0511"
|
||||
"username":"hardin001",
|
||||
"email":"ryan.hardin@alpla.com",
|
||||
"password":"Alpla2025!"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
27
LogisticsSupportTool_API_DOCS/app/admin/User/Get roles.bru
Normal file
27
LogisticsSupportTool_API_DOCS/app/admin/User/Get roles.bru
Normal file
@@ -0,0 +1,27 @@
|
||||
meta {
|
||||
name: Get roles
|
||||
type: http
|
||||
seq: 7
|
||||
}
|
||||
|
||||
patch {
|
||||
url: {{url}}/lst/api/admin/users/:userID/grant
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
params:path {
|
||||
userID: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"module":"siloAdjustments",
|
||||
"role":"viewer"
|
||||
}
|
||||
}
|
||||
|
||||
settings {
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
vars {
|
||||
url: https://usiow2prod.alpla.net
|
||||
url: http://localhost:4200
|
||||
session_cookie:
|
||||
urlv2: http://localhost:3000
|
||||
jwtV2:
|
||||
|
||||
@@ -9,6 +9,7 @@ import morgan from "morgan";
|
||||
import os from "os";
|
||||
import { dirname, join } from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import { userMigrate } from "./src/internal/auth/controller/userMigrate.js";
|
||||
import { schedulerManager } from "./src/internal/logistics/controller/schedulerManager.js";
|
||||
import { printers } from "./src/internal/ocp/printers/printers.js";
|
||||
import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js";
|
||||
@@ -188,6 +189,7 @@ const main = async () => {
|
||||
|
||||
// start up the v1listener
|
||||
v1Listener();
|
||||
userMigrate();
|
||||
}, 5 * 1000);
|
||||
|
||||
// start the server up
|
||||
|
||||
34
app/src/internal/auth/controller/userMigrate.ts
Normal file
34
app/src/internal/auth/controller/userMigrate.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { Client } from "pg";
|
||||
import { auth } from "../../../pkg/auth/auth.js";
|
||||
import { createLogger } from "../../../pkg/logger/logger.js";
|
||||
|
||||
export const userMigrate = async () => {
|
||||
const log = createLogger({ module: "admin", subModule: "migrate users" });
|
||||
const client = new Client({
|
||||
connectionString: process.env.DATABASE_URL_V1,
|
||||
});
|
||||
|
||||
await client.connect();
|
||||
|
||||
const res = await client.query(`
|
||||
SELECT username, email
|
||||
FROM users
|
||||
`);
|
||||
|
||||
for (const u of res.rows) {
|
||||
log.info({}, `${u.username}, being transferred`);
|
||||
try {
|
||||
await auth.api.signUpEmail({
|
||||
body: {
|
||||
username: u.username,
|
||||
name: u.username,
|
||||
email: u.email,
|
||||
password: "Alpla2025!",
|
||||
},
|
||||
});
|
||||
log.info({}, `${u.username}, transferred`);
|
||||
} catch (e) {
|
||||
log.info({}, `${u.username}, already existed`);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -53,7 +53,7 @@ router.post("/", async (req: Request, res: Response) => {
|
||||
}
|
||||
|
||||
if (err instanceof APIError) {
|
||||
return res.status(400).json({
|
||||
return res.status(200).json({
|
||||
success: false,
|
||||
message: err.message,
|
||||
error: err.status,
|
||||
|
||||
10
app/src/internal/system/controller/modules/baseModules.ts
Normal file
10
app/src/internal/system/controller/modules/baseModules.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import { readFileSync } from "fs";
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
export const baseModules = async () => {
|
||||
const modulePath = path.resolve(__dirname, "./modules.json");
|
||||
};
|
||||
30
app/src/internal/system/controller/modules/modules.json
Normal file
30
app/src/internal/system/controller/modules/modules.json
Normal file
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"name": "plantToken",
|
||||
"value": "test3",
|
||||
"description": "The plant token for the plant IE: test3 or usday1",
|
||||
"moduleName": "system",
|
||||
"roles": ["systemAdmin"]
|
||||
},
|
||||
{
|
||||
"name": "dbServer",
|
||||
"value": "usmcd1vms036",
|
||||
"description": "What is the db server",
|
||||
"moduleName": "system",
|
||||
"roles": ["systemAdmin"]
|
||||
},
|
||||
{
|
||||
"name": "v1Server",
|
||||
"value": "localhost",
|
||||
"description": "What is the port the v1app is on",
|
||||
"moduleName": "system",
|
||||
"roles": ["systemAdmin"]
|
||||
},
|
||||
{
|
||||
"name": "v1Port",
|
||||
"value": "3000",
|
||||
"description": "What is the port the v1app is on",
|
||||
"moduleName": "system",
|
||||
"roles": ["systemAdmin"]
|
||||
}
|
||||
]
|
||||
@@ -1,40 +1,41 @@
|
||||
import { OpenAPIHono } from "@hono/zod-openapi";
|
||||
|
||||
import login from "./routes/login.js";
|
||||
import register from "./routes/register.js";
|
||||
import session from "./routes/session.js";
|
||||
import getAccess from "./routes/user/getUserRoles.js";
|
||||
import setAccess from "./routes/userAdmin/setUserRoles.js";
|
||||
import profile from "./routes/user/profileUpdate.js";
|
||||
import { areRolesIn } from "./utils/roleCheck.js";
|
||||
import createUser from "./routes/userAdmin/createUser.js";
|
||||
import allUsers from "./routes/userAdmin/getUsers.js";
|
||||
import updateUser from "./routes/userAdmin/updateUser.js";
|
||||
import allUserRoles from "./routes/userAdmin/getAllUserRoles.js";
|
||||
import allUsers from "./routes/userAdmin/getUsers.js";
|
||||
import setAccess from "./routes/userAdmin/setUserRoles.js";
|
||||
import updateUser from "./routes/userAdmin/updateUser.js";
|
||||
import { massAccountCreation } from "./utils/DefaultAccountCreation.js";
|
||||
import { areRolesIn } from "./utils/roleCheck.js";
|
||||
|
||||
const app = new OpenAPIHono();
|
||||
|
||||
// run the role check
|
||||
setTimeout(() => {
|
||||
areRolesIn();
|
||||
areRolesIn();
|
||||
}, 5000);
|
||||
|
||||
const routes = [
|
||||
login,
|
||||
register,
|
||||
session,
|
||||
profile,
|
||||
getAccess,
|
||||
setAccess,
|
||||
createUser,
|
||||
allUsers,
|
||||
allUserRoles,
|
||||
updateUser,
|
||||
login,
|
||||
register,
|
||||
session,
|
||||
profile,
|
||||
getAccess,
|
||||
setAccess,
|
||||
createUser,
|
||||
allUsers,
|
||||
allUserRoles,
|
||||
updateUser,
|
||||
] as const;
|
||||
|
||||
// app.route("/server", modules);
|
||||
const appRoutes = routes.forEach((route) => {
|
||||
app.route("/auth", route);
|
||||
app.route("/auth", route);
|
||||
});
|
||||
|
||||
// setTimeout(() => {
|
||||
|
||||
Reference in New Issue
Block a user