Replace demo admins with a single login and drop fake inbox seed.
Only 09128081392 / 123456 remains as admin; remove seeded internal messages and add a reset-admin script for production databases. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -76,7 +76,7 @@ git add deploy-bundle.tar.gz && git commit -m "refresh deploy bundle" && git pus
|
||||
|
||||
| نقش | ورود | رمز / OTP |
|
||||
|------|------|-----------|
|
||||
| ادمین | `09121112222` | `admin123` |
|
||||
| ادمین | `09128081392` | `123456` |
|
||||
| مشتری | `09121234567` | OTP پیامکی (۴ رقم) — با `SMS_ENABLED=false` کد ثابت: `1234` |
|
||||
|
||||
## متغیرهای محیطی
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ const client_1 = require("@prisma/client");
|
||||
const bcrypt = __importStar(require("bcryptjs"));
|
||||
const prisma_service_1 = require("../prisma/prisma.service");
|
||||
const phone_1 = require("../common/utils/phone");
|
||||
const DEFAULT_PASSWORD = 'admin123';
|
||||
const DEFAULT_PASSWORD = '123456';
|
||||
let AdminUsersService = class AdminUsersService {
|
||||
prisma;
|
||||
constructor(prisma) {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"version":3,"file":"admin-users.service.js","sourceRoot":"","sources":["../../src/admin-users/admin-users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,2CAAmD;AACnD,iDAAmC;AACnC,6DAAyD;AAEzD,iDAI+B;AAE/B,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAG7B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACjD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC/B,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,sBAAsB,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAuB;QAClC,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CACpC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,gBAAgB,EACxC,EAAE,CACH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC9C,IAAI,EAAE;oBACJ,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC7B,KAAK;oBACL,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,YAAY;oBACZ,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,kBAAS,CAAC,KAAK;oBACjC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;iBAC/B;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IACE,CAAC,YAAY,eAAM,CAAC,6BAA6B;gBACjD,CAAC,CAAC,IAAI,KAAK,OAAO,EAClB,CAAC;gBACD,MAAM,IAAI,0BAAiB,CAAC,2BAA2B,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,GAAuB;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,KAAK,GACT,GAAG,CAAC,KAAK,KAAK,SAAS;YACrB,CAAC,CAAC,IAAA,sBAAc,EAAC,IAAA,uBAAe,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,4BAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAgC;YACxC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;YAC9B,KAAK;YACL,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE;YACtC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACvB,CAAC;QACF,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC9C,KAAK,EAAE,EAAE,EAAE,EAAE;gBACb,IAAI;aACL,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IACE,CAAC,YAAY,eAAM,CAAC,6BAA6B;gBACjD,CAAC,CAAC,IAAI,KAAK,OAAO,EAClB,CAAC;gBACD,MAAM,IAAI,0BAAiB,CAAC,2BAA2B,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,QAAiB;QAC3C,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9C,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,IAAI,EAAE,EAAE,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,EAAU;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,0BAAiB,CAAC,sBAAsB,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,GAAG,CAAC,IAUX;QACC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,IAAI;YACpD,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;SACxC,CAAC;IACJ,CAAC;CACF,CAAA;AA7HY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAE0B,8BAAa;GADvC,iBAAiB,CA6H7B"}
|
||||
{"version":3,"file":"admin-users.service.js","sourceRoot":"","sources":["../../src/admin-users/admin-users.service.ts"],"names":[],"mappings":"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"}
|
||||
+14
-107
@@ -1,4 +1,4 @@
|
||||
import { PrismaClient, AdminRole, CustomerType, OrderStatus, SettlementType, CheckRegistrationMode, CheckStatus, CashPaymentStatus, ShipmentStatus, NotificationTone } from '@prisma/client';
|
||||
import { PrismaClient, AdminRole, CustomerType, OrderStatus, SettlementType, CheckRegistrationMode, CheckStatus, CashPaymentStatus, ShipmentStatus } from '@prisma/client';
|
||||
import * as bcrypt from 'bcryptjs';
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
@@ -25,61 +25,18 @@ async function main() {
|
||||
await prisma.internalMessage.deleteMany();
|
||||
await prisma.systemSettings.deleteMany();
|
||||
|
||||
const passwordHash = await bcrypt.hash('admin123', 10);
|
||||
const passwordHash = await bcrypt.hash('123456', 10);
|
||||
|
||||
await prisma.adminUser.createMany({
|
||||
data: [
|
||||
{
|
||||
id: 'usr-1',
|
||||
fullName: 'علی محمدی',
|
||||
phone: '09121112222',
|
||||
email: 'admin@fabrictrade.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.admin,
|
||||
isActive: true,
|
||||
lastLoginAt: new Date('2024-10-25T08:00:00'),
|
||||
},
|
||||
{
|
||||
id: 'usr-2',
|
||||
fullName: 'سارا احمدی',
|
||||
phone: '09133334444',
|
||||
email: 'sales@fabrictrade.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.sales,
|
||||
isActive: true,
|
||||
lastLoginAt: new Date('2024-10-25T07:45:00'),
|
||||
},
|
||||
{
|
||||
id: 'usr-3',
|
||||
fullName: 'رضا کریمی',
|
||||
phone: '09155556666',
|
||||
email: 'finance@fabrictrade.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.finance,
|
||||
isActive: true,
|
||||
lastLoginAt: new Date('2024-10-24T17:10:00'),
|
||||
},
|
||||
{
|
||||
id: 'usr-4',
|
||||
fullName: 'مریم حسینی',
|
||||
phone: '09177778888',
|
||||
email: 'warehouse@fabrictrade.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.warehouse,
|
||||
isActive: true,
|
||||
lastLoginAt: new Date('2024-10-24T14:00:00'),
|
||||
},
|
||||
{
|
||||
id: 'usr-5',
|
||||
fullName: 'امیر نوری',
|
||||
phone: '09199990000',
|
||||
email: 'amir.n@fabrictrade.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.sales,
|
||||
isActive: false,
|
||||
lastLoginAt: new Date('2024-09-30T11:00:00'),
|
||||
},
|
||||
],
|
||||
await prisma.adminUser.create({
|
||||
data: {
|
||||
id: 'usr-1',
|
||||
fullName: 'مدیر سیستم',
|
||||
phone: '09128081392',
|
||||
email: 'admin@parche.ir',
|
||||
passwordHash,
|
||||
role: AdminRole.admin,
|
||||
isActive: true,
|
||||
},
|
||||
});
|
||||
|
||||
await prisma.company.createMany({
|
||||
@@ -581,61 +538,11 @@ async function main() {
|
||||
},
|
||||
});
|
||||
|
||||
await prisma.adminNotification.createMany({
|
||||
data: [
|
||||
{
|
||||
id: 'ntf-1',
|
||||
title: 'سفارش جدید ثبت شد',
|
||||
body: 'سفارش ORD-1403-1260 از مشتری پارچهسرای نیکو در انتظار بررسی است.',
|
||||
tone: NotificationTone.info,
|
||||
link: '/orders',
|
||||
isRead: false,
|
||||
sentAt: new Date('2024-10-25T10:05:00'),
|
||||
},
|
||||
{
|
||||
id: 'ntf-2',
|
||||
title: 'چک در انتظار تأیید',
|
||||
body: '۳ فقره چک برای سفارش ORD-1403-1254 نیاز به بررسی دارد.',
|
||||
tone: NotificationTone.warning,
|
||||
link: '/orders/ord-1/checks',
|
||||
isRead: false,
|
||||
sentAt: new Date('2024-10-25T09:50:00'),
|
||||
},
|
||||
{
|
||||
id: 'ntf-3',
|
||||
title: 'پیشفاکتور ارسال شد',
|
||||
body: 'پیشفاکتور سفارش ORD-1403-1252 برای مشتری ارسال گردید.',
|
||||
tone: NotificationTone.success,
|
||||
isRead: false,
|
||||
sentAt: new Date('2024-10-25T09:20:00'),
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
await prisma.internalMessage.createMany({
|
||||
data: [
|
||||
{
|
||||
id: 'msg-1',
|
||||
senderName: 'سارا احمدی',
|
||||
subject: 'هماهنگی ارسال سفارش ORD-1403-1256',
|
||||
preview: 'لطفاً وضعیت باربری سفارش مشتری پارچهسرای نیکو را بررسی کنید.',
|
||||
sentAt: new Date('2024-10-25T09:15:00'),
|
||||
isRead: false,
|
||||
},
|
||||
{
|
||||
id: 'msg-2',
|
||||
senderName: 'رضا کریمی',
|
||||
subject: 'درخواست اصلاح قیمت',
|
||||
preview: 'مشتری درخواست تخفیف ۵٪ روی متراژ بالای ۳۰۰۰ متر داده است.',
|
||||
sentAt: new Date('2024-10-25T08:40:00'),
|
||||
isRead: false,
|
||||
},
|
||||
],
|
||||
});
|
||||
// اعلان و پیام داخلی دمو ساخته نمیشود؛ فقط رویدادهای واقعی سیستم میآیند.
|
||||
|
||||
void order1;
|
||||
console.log('Seed completed successfully.');
|
||||
console.log('Admin login: 09121112222 / admin123');
|
||||
console.log('Admin login: 09128081392 / 123456');
|
||||
console.log('Customer OTP login: 09121234567 / code 1234');
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* ادمینهای قبلی را پاک میکند و فقط یک ادمین میسازد.
|
||||
* داخل کانتینر API:
|
||||
* node scripts/reset-admin.mjs
|
||||
* یا با DATABASE_URL محلی:
|
||||
* node scripts/reset-admin.mjs
|
||||
*/
|
||||
const { PrismaClient } = require('@prisma/client');
|
||||
const bcrypt = require('bcryptjs');
|
||||
|
||||
const PHONE = process.env.ADMIN_PHONE || '09128081392';
|
||||
const PASSWORD = process.env.ADMIN_PASSWORD || '123456';
|
||||
const FULL_NAME = process.env.ADMIN_NAME || 'مدیر سیستم';
|
||||
|
||||
async function main() {
|
||||
const prisma = new PrismaClient();
|
||||
try {
|
||||
const passwordHash = await bcrypt.hash(PASSWORD, 10);
|
||||
await prisma.$transaction([
|
||||
prisma.adminUser.deleteMany({}),
|
||||
prisma.adminUser.create({
|
||||
data: {
|
||||
id: 'usr-1',
|
||||
fullName: FULL_NAME,
|
||||
phone: PHONE,
|
||||
email: 'admin@parche.ir',
|
||||
passwordHash,
|
||||
role: 'admin',
|
||||
isActive: true,
|
||||
},
|
||||
}),
|
||||
prisma.internalMessage.deleteMany({}),
|
||||
]);
|
||||
console.log(`Admin reset OK: ${PHONE} / ${PASSWORD}`);
|
||||
} finally {
|
||||
await prisma.$disconnect();
|
||||
}
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
@@ -6,8 +6,8 @@
|
||||
*/
|
||||
const BASE = process.env.SMOKE_BASE_URL || 'http://127.0.0.1:3999/api';
|
||||
const CUSTOMER_PHONE = '09121234567';
|
||||
const ADMIN_PHONE = '09121112222';
|
||||
const ADMIN_PASSWORD = 'admin123';
|
||||
const ADMIN_PHONE = '09128081392';
|
||||
const ADMIN_PASSWORD = '123456';
|
||||
|
||||
let passed = 0;
|
||||
let failed = 0;
|
||||
|
||||
@@ -34,5 +34,5 @@ echo "آماده است. سرور را با این دستور اجرا کنید:
|
||||
echo " npm run start:dev"
|
||||
echo ""
|
||||
echo "Swagger: http://localhost:3000/api/docs"
|
||||
echo "Admin: 09121112222 / admin123"
|
||||
echo "Admin: 09128081392 / 123456"
|
||||
echo "OTP: 09121234567 / 1234"
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
toEnglishDigits,
|
||||
} from '../common/utils/phone';
|
||||
|
||||
const DEFAULT_PASSWORD = 'admin123';
|
||||
const DEFAULT_PASSWORD = '123456';
|
||||
|
||||
@Injectable()
|
||||
export class AdminUsersService {
|
||||
|
||||
Reference in New Issue
Block a user