Users / Auth / Security
بررسی جامع جدولهای زیر:
- operators
- colleagues
- colleague_auth
- colleague_additional
- customers
- authenticator_api
- authenticator_trust
- otp_requests
- password_resets
- password_reset_tokens
- operators
- colleagues
- colleague_auth
- colleague_additional
- customers
- authenticator_api
- authenticator_trust
- otp_requests
operators
جدول کاربران و اپراتورها
مقدمه
این جدول برای نگهداری اطلاعات کاربران، اپراتورها و پرسنل سامانه طراحی شده است. دادههای این جدول شامل اطلاعات هویتی، ارتباطی، وضعیت دسترسی، نقش سازمانی و مشخصات ورود به سامانه میباشد.
ساختار جدول
| ستون | نوع داده | مشخصات |
|---|---|---|
| id | INT UNSIGNED | کلید اصلی، غیرقابل تهی |
| branch | LONGTEXT | شناسه دفتر |
| type | INT | نوع کاربر، پیشفرض ۱ |
| personnel_id | INT | شناسه پرسنلی، قابل تهی |
| shift_work | INT UNSIGNED | وضعیت شیفت کاری، قابل تهی |
| sex | ENUM('male','female') | جنسیت، قابل تهی |
| marital_status | ENUM('married','single','divorced') | وضعیت تأهل، غیرقابل تهی |
| first_name | VARCHAR(255) | نام، قابل تهی |
| last_name | VARCHAR(255) | نام خانوادگی، قابل تهی |
| first_name_en | VARCHAR(255) | نام انگلیسی، قابل تهی |
| last_name_en | VARCHAR(255) | نام خانوادگی انگلیسی، قابل تهی |
| nick_name | VARCHAR(255) | نام مستعار، قابل تهی |
| birth | DATETIME | تاریخ تولد، قابل تهی |
| group | ENUM('staff','manager','developer','accounting') | گروه یا نقش سازمانی، پیشفرض staff |
| position | VARCHAR(255) | سمت شغلی، قابل تهی |
| phone | CHAR(15) | شماره تلفن، قابل تهی |
| phone1 | CHAR(15) | شماره تلفن جایگزین، قابل تهی |
| mobile | CHAR(15) | شماره موبایل، قابل تهی |
| mobile1 | CHAR(15) | شماره موبایل جایگزین، قابل تهی |
| VARCHAR(255) | آدرس ایمیل، قابل تهی | |
| telegram | VARCHAR(255) | شناسه تلگرام، قابل تهی |
| status | INT | وضعیت کاربر، غیرقابل تهی |
| ip | VARCHAR(45) | آخرین آیپی ثبتشده، قابل تهی |
| avatar | VARCHAR(255) | تصویر پروفایل، قابل تهی |
| access | LONGTEXT | سطوح دسترسی، قابل تهی |
| password | VARCHAR(255) | رمز عبور هششده، قابل تهی |
| imprest | ENUM('yes') | وضعیت تنخواه، قابل تهی |
| no_feedback | INT | غیرفعالسازی بازخورد، قابل تهی |
| otp | INT | کد یکبارمصرف، قابل تهی |
| otp_issuing | DATETIME | زمان صدور کد یکبارمصرف، قابل تهی |
| blocked_up | DATETIME | زمان مسدودشدن حساب، قابل تهی |
| token | VARCHAR(255) | توکن دسترسی، قابل تهی |
| employment_at | DATETIME | تاریخ استخدام، قابل تهی |
| created_at | TIMESTAMP | زمان ایجاد رکورد، قابل تهی |
| updated_at | TIMESTAMP | زمان آخرین ویرایش، قابل تهی |
جمعبندی
این جدول هسته مدیریت کاربران سامانه محسوب میشود و با پوشش اطلاعات هویتی، نقش سازمانی، دسترسیها و وضعیت امنیتی، پایه اصلی احراز هویت و کنترل سطح دسترسی را فراهم میکند.
colleagues
جدول همکاران و شرکتها
مقدمه
این جدول برای نگهداری اطلاعات همکاران، شرکتها و طرفهای تجاری سامانه طراحی شده است. دادههای این جدول در بخشهای مالی، حسابداری، قراردادها و ارتباطات تجاری مورد استفاده قرار میگیرند.
ساختار جدول
| ستون | نوع داده | مشخصات |
|---|---|---|
| id | BIGINT UNSIGNED | کلید اصلی، غیرقابل تهی |
| serial | BIGINT | شماره سریال همکار، غیرقابل تهی |
| branch | SMALLINT UNSIGNED | شناسه دفتر |
| foundation | INT | سال تأسیس، پیشفرض ۱ |
| office | VARCHAR(255) | نام دفتر یا شرکت به فارسی، قابل تهی |
| office_en | VARCHAR(255) | نام دفتر یا شرکت به انگلیسی، قابل تهی |
| category | INT | دستهبندی همکار، پیشفرض ۱ |
| type | INT | نوع حسابداری همکار گرفته شده از accounting title table |
| type_checkout | INT | گرفته شده از accounting title table نوع تسویه حساب، قابل تهی |
| relationship | BIGINT | در صورت زیرمجموعه بودن شرکت، سریال شرکت اصلی در این فیلد ثبت میشود |
| first_name | VARCHAR(255) | نام، قابل تهی |
| last_name | VARCHAR(255) | نام خانوادگی، قابل تهی |
| position | VARCHAR(255) | سمت یا عنوان شغلی، قابل تهی |
| phone | VARCHAR(255) | شماره تلفن، قابل تهی |
| mobile | VARCHAR(255) | شماره موبایل، قابل تهی |
| VARCHAR(255) | آدرس ایمیل، قابل تهی | |
| site | VARCHAR(255) | وبسایت، قابل تهی |
| country | INT | کشور (ارجاع به جدول کشورها)، قابل تهی |
| state | INT | استان (ارجاع به جدول استانها)، قابل تهی |
| city | INT | شهر (ارجاع به جدول شهرها)، قابل تهی |
| address | VARCHAR(255) | نشانی کامل، قابل تهی |
| credit_amount | VARCHAR(255) | سقف اعتبار مالی، قابل تهی |
| checkout_deadline | INT | مهلت تسویه حساب، قابل تهی |
| wage | INT | در صورت کارمزدی بودن همکاری، درصد کارمزد در این فیلد ثبت میشود |
| description | LONGTEXT | توضیحات تکمیلی، قابل تهی |
| logo | VARCHAR(255) | لوگوی شرکت، قابل تهی |
| priority | INT | اولویت، پیشفرض ۰ |
| last_balance | BIGINT | آخرین مانده حساب، قابل تهی |
| last_balance_at | DATETIME | زمان ثبت آخرین مانده، پیشفرض CURRENT_TIMESTAMP |
| status | INT | وضعیت فعالبودن، پیشفرض ۱ |
| created_at | TIMESTAMP | زمان ایجاد رکورد، قابل تهی |
| updated_at | TIMESTAMP | زمان آخرین ویرایش، قابل تهی |
جمعبندی
این جدول مرجع اصلی تعریف همکاران و شرکتهای طرف قرارداد سامانه است و نقش کلیدی در ارتباطات تجاری، ساختار حسابداری و مدیریت مالی ایفا میکند.
colleague_auth
جدول احراز هویت همکاران
مقدمه
این جدول برای مدیریت اطلاعات احراز هویت، سطح دسترسی و اعتبار کاربران وابسته به همکاران تجاری سامانه طراحی شده است. دادههای این جدول نقش کلیدی در کنترل دسترسی، محدودیتهای مالی و اعتبار زمانی کاربران همکار ایفا میکنند.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT | کلید اصلی جدول، افزایش خودکار |
| branch | SMALLINT UNSIGNED | شناسه دفتر |
| colleague | BIGINT UNSIGNED | ارجاع به شناسه همکار در جدول colleagues |
| category | ENUM | نوع دسترسی کاربر همکار: management / staff / financial |
| level | INT | سطح دسترسی عددی، پیشفرض ۵ |
| username | VARCHAR(255) | نام کاربری برای ورود به سامانه |
| password | VARCHAR(255) | رمز عبور هششده کاربر |
| ceiling | BIGINT | سقف اعتبار مالی مجاز برای کاربر، در صورت تعریف محدودیت |
| deadline_month | INT | مهلت تسویه حساب بر حسب ماه، در صورت نیاز |
| mobile | VARCHAR(13) | شماره موبایل اصلی کاربر |
| mobile_support | VARCHAR(13) | شماره موبایل پشتیبان |
| status | INT | وضعیت فعالبودن حساب، پیشفرض ۱ |
| expired_at | DATE | تاریخ انقضای دسترسی، در صورت محدود بودن |
| created_at | DATETIME | زمان ایجاد حساب کاربری |
| updated_at | DATETIME | زمان آخرین ویرایش اطلاعات حساب |
جمعبندی
جدول colleague_auth لایه امنیتی و کنترلی کاربران همکار را پیادهسازی میکند و بهصورت مستقیم با ماژولهای کاربران، همکاران و مالی در ارتباط است. استفاده صحیح از این جدول نقش مهمی در کنترل ریسک مالی و سطح دسترسی سامانه دارد.
colleague_additional
جدول اطلاعات تکمیلی همکاران
مقدمه
این جدول برای نگهداری اطلاعات ثبتی، حقوقی و نشانی رسمی همکاران حقوقی (شرکتها و سازمانها) طراحی شده است. دادههای این جدول معمولاً در فرآیندهای مالی، حقوقی، فاکتورینگ و تطبیق اسناد رسمی مورد استفاده قرار میگیرند.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT | کلید اصلی جدول، افزایش خودکار |
| colleague | BIGINT UNSIGNED | ارجاع به شناسه همکار در جدول colleagues |
| registered_name | VARCHAR(255) | نام ثبتی رسمی شرکت یا شخص حقوقی |
| national_id | VARCHAR(255) | شناسه ملی |
| registration_id | VARCHAR(255) | شماره ثبت شرکت |
| economic_code | VARCHAR(255) | کد اقتصادی |
| phone | VARCHAR(255) | شماره تلفن ثابت رسمی |
| postal_code | VARCHAR(255) | کد پستی محل ثبتشده |
| country | BIGINT | کشور ثبت شرکت (ارجاع به جدول کشورها) |
| state | BIGINT | استان (ارجاع به جدول استانها) |
| city | BIGINT | شهر (ارجاع به جدول شهرها) |
| address | LONGTEXT | نشانی کامل و رسمی ثبتشده |
جمعبندی
جدول colleague_additional لایه اطلاعات حقوقی و ثبتی همکاران را تکمیل میکند و در کنار جدول colleagues یک نمای کامل از وضعیت تجاری، حقوقی و مکاتبات رسمی طرفهای همکاری سامانه ایجاد مینماید.
customers
جدول اطلاعات مسافران و مشتریان
مقدمه
این جدول برای نگهداری مشخصات هویتی، ارتباطی و وضعیت اقامتی یا حقوقی کاربران و مسافران طراحی شده است. دادههای این جدول پایه تمام عملیاتهای مربوط به رزرو، صدور بلیت، ارتباط با همکاران و بخش حسابداری را تشکیل میدهد و بهعنوان منبع اصلی اطلاعات اشخاص و شرکتها عمل میکند.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT UNSIGNED | شناسه اصلی رکورد، افزایش خودکار |
| branch | LONGTEXT | شعبه دفتر متصل به آفیس |
| type | INT | نوع کاربر در بخش حسابداری (۱: شخص، ۲: شرکت) |
| type_checkout | INT | نوع تسویه در ماژول مالی، پیشفرض ۱ |
| sex | ENUM('male','female') | جنسیت: مرد یا زن |
| first_name | VARCHAR(255) | نام |
| first_name_fa | VARCHAR(255) | نام بهصورت فارسی |
| last_name | VARCHAR(255) | نام خانوادگی |
| last_name_fa | VARCHAR(255) | نام خانوادگی فارسی |
| father_name | VARCHAR(255) | نام پدر |
| office | VARCHAR(255) | محل کار یا سازمان مربوط |
| phone | CHAR(15) | شماره تلفن ثابت |
| mobile | CHAR(15) | شماره تلفن همراه |
| VARCHAR(255) | نشانی پست الکترونیکی | |
| national_code | VARCHAR(255) | کد ملی |
| national_img | VARCHAR(255) | تصویر کارت ملی |
| passport_code | VARCHAR(255) | شماره گذرنامه |
| passport_img | VARCHAR(255) | تصویر گذرنامه |
| passport_expire | VARCHAR(255) | تاریخ انقضای گذرنامه |
| birth | VARCHAR(255) | تاریخ تولد |
| marriage | VARCHAR(255) | وضعیت تأهل |
| citizenship | INT | تابعیت یا ملیت |
| country | INT | ارجاع به شناسه کشور |
| state | INT | ارجاع به شناسه استان |
| city | INT | ارجاع به شناسه شهر |
| relationship | INT | نوع ارتباط با سایر مشتریان |
| address | VARCHAR(255) | نشانی محل سکونت یا شرکت |
| personnel_id | INT | شناسه کاربر ثبتکننده |
| description | LONGTEXT | توضیحات تکمیلی درباره کاربر |
| identity_check | INT | وضعیت بررسی مدارک هویتی |
| identity_data | LONGTEXT | اطلاعات ذخیرهشده از مدارک هویتی |
| status | INT | وضعیت فعالبودن، پیشفرض ۱ |
| created_at | TIMESTAMP | زمان ثبت اولیه |
| updated_at | TIMESTAMP | زمان آخرین ویرایش |
نتیجهگیری
جدول حاضر، هسته اصلی دادههای کاربران و مسافران سامانه را تشکیل میدهد و تمامی زیرسامانهها از اطلاعات این بخش برای انجام عملیاتهای مرتبط با رزرو، مالی، گزارشگیری و تحلیل مشتریان استفاده میکنند. با اتصال این جدول به بخش همکاران، حسابداری و احراز هویت، ساختار یکپارچه ثبت و مدیریت اشخاص در سامانه فراهم میشود.
authenticator_api
جدول رابط احراز هویت سامانه
مقدمه
این جدول جهت مدیریت و کنترل دسترسیهای داخلی بین شعب، همکاران و ماژولهای اصلی استفاده میشود. در واقع، هر رکورد معرف توکنی است که یک بخش یا همکار با آن مجوز فراخوانی سرویسها و تبادل داده را دارد. همچنین ارتباط مستقیم با بخش پرواز، اقامت و خدمات بهمنظور تعیین محدوده دسترسی دارد.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | INT | شناسه اصلی جدول، افزایش خودکار |
| branch | INT | ارجاع به شناسه شعبه مربوط |
| colleague | INT | ارجاع به شناسه همکار |
| token | LONGTEXT | توکن دسترسی ایجادشده برای ارتباطات داخلی |
| charter | INT | شناسه بخش پرواز یا چارتر |
| hub | INT | شناسه مرکز داده یا هاب ارتباطی |
| accommodation | INT | ارجاع به بخش اقامت |
| service | INT | ارجاع به بخش خدمات |
| status | INT | وضعیت فعالبودن توکن، پیشفرض ۱ |
| expier_at | DATETIME | تاریخ و زمان انقضای توکن دسترسی |
| created_at | DATETIME | زمان ایجاد رکورد (پیشفرض: CURRENT_TIMESTAMP) |
| updated_at | DATETIME | آخرین زمان ویرایش رکورد |
نتیجهگیری
این جدول محور برقراری ارتباط امن بین اجزای مختلف سامانه است. تمام ماژولهای پرواز، اقامت و خدمات از مقادیر ایجادشده در این بخش برای احراز هویت و کنترل سطح دسترسی استفاده میکنند. دادههای این جدول به صورت مستقیم با همکاران و شعب مرتبط بوده و همزمان با ایجاد یا لغو مجوزها بهروزرسانی میگردند.
authenticator_trust
جدول اعتماد و اعتبار سنجی دسترسی
مقدمه
این جدول برای ذخیره سیاستهای اعتماد (Trust Policies) در سطح سیستم طراحی شده است. این سیاستها مشخص میکنند که چه منابعی (بر اساس IP یا دامنه) و با چه نوع هویتی (شعبه یا API) اجازه دسترسی به یک شناسه هدف (Target ID) را دارند. این مکانیسم، امنیت دسترسیهای بین ماژولی یا از منابع خارجی را تقویت میکند.
ساختار جدول
| ستون | نوع داده | مقادیر مجاز (ENUM) | توضیحات |
|---|---|---|---|
| id | BIGINT | -- | شناسه اصلی رکورد، افزایش خودکار |
| type | ENUM('branch', 'api') | branch, api | تعیینکننده ماهیت منبع اعتمادکننده (شعبه یا API) |
| target | INT | -- | شناسه هدفی که دسترسی برای آن تعریف میشود. (نامشخص است که به کدام جدول ارجاع دارد) |
| object_type | ENUM('ip', 'domain') | ip, domain | مشخص میکند که منبع دسترسی بر اساس آدرس IP است یا نام دامنه |
| object | VARCHAR(255) | -- | مقدار واقعی منبع (آدرس IP یا دامنه) |
| status | INT | -- | وضعیت فعال یا غیرفعالبودن قانون دسترسی، پیشفرض ۱ |
| created_at | DATETIME | -- | زمان ثبت اولیه (پیشفرض: CURRENT_TIMESTAMP) |
نتیجهگیری
جدول اعتماد، لایه امنیتی مشخصی را فراهم میآورد که فراتر از احراز هویت سنتی (که در جدول پیشین بررسی شد)، کنترل دسترسی مبتنی بر منابع (Source-based Access Control) را پیادهسازی میکند. این جدول بهطور مؤثری ارتباطات امن بین بخشهای مختلف سیستم (مانند شعب و سرویسهای API) را مدیریت میکند.
otp_requests
جدول درخواستهای رمز یکبار مصرف
مقدمه
این جدول برای مدیریت ارسال، اعتبارسنجی و کنترل دفعات استفاده از رمزهای یکبار مصرف طراحی شده است. دادههای این بخش نقش کلیدی در فرآیند ورود، تأیید هویت و افزایش امنیت ارتباط کاربران و همکاران با سامانه دارند.
ساختار جدول
| ستون | نوع داده | توضیحات |
|---|---|---|
| id | BIGINT UNSIGNED | شناسه اصلی رکورد، افزایش خودکار |
| type | ENUM('sms','telegram') | روش ارسال رمز یکبار مصرف |
| object_type | ENUM('passenger','operator','colleague') | نوع موجودیتی که رمز برای آن صادر شده است |
| object | BIGINT UNSIGNED | شناسه موجودیت دریافتکننده رمز |
| otp_code | VARCHAR(6) | کد رمز یکبار مصرف صادرشده |
| issued_at | DATETIME | زمان صدور رمز |
| expires_at | DATETIME | زمان پایان اعتبار رمز |
| is_used | TINYINT(1) | وضعیت استفاده شدن رمز، پیشفرض ۰ |
| request_count | INT | تعداد دفعات درخواست رمز، پیشفرض ۱ |
| created_at | TIMESTAMP | زمان ثبت رکورد |
| updated_at | TIMESTAMP | زمان آخرین بهروزرسانی رکورد |
نتیجهگیری
جدول درخواستهای رمز یکبار مصرف، ستون فقرات امنیت ورود در سامانه محسوب میشود و با کنترل زمان اعتبار، دفعات درخواست و وضعیت استفاده، از سوءاستفاده و دسترسی غیرمجاز جلوگیری میکند. این جدول بهصورت مستقیم با بخش کاربران، همکاران و اپراتورها در ارتباط است.