رفع باگ
✔️ مشکل در آپدیت ماژول های custom1 و mt5ws
تغییر
✔️ حذف frame از ساختار load صفحات
تاریخ بروزرسانی: 1402.07.30
قابلیت جدید
✔️ اضافه شدن پارامتر innodb_flush_log_at_trx_commit به فایل config
تغییر
✔️ تغییر پورت از 80 به 443 در تمام اتصالات به serverdomain
قابلیت جدید
✔️ امکان تغییر ui mode از طریق config.ini در هر ماژول:
در صورت تعریف پارامتر ui_mode در قسمت Modules settings در فایل config.ini هر ماژول، این مقدار روز مقدار تعریف شده در تابع getInfo در ماژول rewrite میشود.
مقدار قابل تعریف:
بعد از تغییر ماژول مربوطه باید ریستارت شود.
✔️ امکان ست کردن دسترسی all برای هدر Content-Security-Policy:
تعریف هدر Content-Security-Policy در مسیر زیر
data\0000000\config\sites\000000_pid\config.ini
در صورت تعریف نشدن یا خالی بودن این پارامتر بصورت پیش فرض مقدار زیر در هدر ست میشود
connect-src wss: 'self' https://janus-gateway.teamyar.com:8089;
script-src data: blob: 'self' 'unsafe-eval' 'unsafe-inline' https://ssl.google-analytics.com;
img-src data: blob: 'self' https://*.tile.openstreetmap.org https://trustseal.enamad.ir/logo.aspx https://logo.samandehi.ir/logo.aspx;
font-src data: 'self';
style-src data: 'self' 'unsafe-inline';
frame-src 'self'
در صورتی که مقدار این پارامتر برابر با * باشد دسترسی all ست میشود.
تغییر
✔️ حذف محدودیت content از تابع sendMessageToEvent:
محدودیت content از 2000 به 64000 بایت افزایش پیدا کرد
✔️ تغییر در کوئری چک سشن (میان ورژن):
تغییر
✔️ آپدیت mysql به نسخه ۸.۳۲
تغییر
✔️ نمایش ویجت مشتری در داشبورد خانه سرور منتخب تیمیار(ارائه در میان ورژن مورخ 01.12.23)
✔️ با فعال شدن چشمک زن ویجت مشتری، صفحه پیش فرض نیز تغییر کند (ارائه در میان ورژن مورخ 01.12.23)
رفع باگ
✔️ رفع مشکل کنترل addlink:
رفع مشکل در جداسازی با & در صورتی که این کاراکتر در محتوای content هم استفاده شده باشد
قابلیت جدید
✔️ زیرساخت سوییچ بین نسخه ها
enum {
UI_MODE_X = 0,
UI_MODE_Y = 1 // bootstrap5
};
قابلیت جدید
✔️ تغییر در هدر Content-Security-Policy برای پورتال:
اضافه شدن امکان ست کردن پارامتر های 'Content-Security-Policy' برای هر پورتال در فایل config.ini
مسیر نمونه برای فایل تنظیمات پورتال:
teamyar\data\0000000\config\sites\000000_2\config.ini
پارامترها:
url های مورد نیاز را در روبروی هر پارامتر تعریف میکنیم
در صورتی که بیشتر از یکی بود بین آنها space میگذاریم
مثال:
frame-src=https://www.teamyar.com https://test.com
تغییر
✔️ تغییر در تابع _installCertificate:
2 مرحله چک در این تابع انجام میشود در مرحله اول این کامند اجرا میشود
-subject -nameopt multiline
در صورت عدم دریافت جواب درست این کامند اجرا میشود
-ext subjectAltName
قابلیت جدید
✔️ اضافه کردن زمان به لاگ خاتمه http:
در صورتی که بخواهیم لاگ در انتهای هر request ثبت شود، پارامتر write_end_log در قسمت Modules settings در فایل config.ini ماژول مربوطه را برابر با true یا 1 قرار دهیم.
لاگ انتهای request به این شکل ثبت میشود:
[200][202 ms] /dbdoc/left
[200] => status
[202 ms] => مدت زمان بر حسب میلی ثانیه
قابلیت جدید
✔️ امکان لینک شدن دکمه صفحات ویجت
قابلیت جدید
✔️ تشخیص شروع و پایان لاگ های http در صورت فعال بودن:
در صورتی که بخواهیم لاگ در انتهای هر request ثبت شود، پارامتر write_end_log در قسمت Modules settings در فایل config.ini ماژول مربوطه را برابر با true یا 1 قرار دهیم.
در این حالت لاگ بصورت زیر ثبت میشود
e.g
2022-10-11 13:26:32 172.20.48.244 GET 10003 /portal/index //---start
2022-10-11 13:26:32 172.20.48.244 GET 10003 [200] /portal/index //---end
رفع باگ
✔️ رفع مشکل نمایش ویجت ها در مدیریت ابزارک ها (میان ورژن مورخ 01.08.18 ارائه شد)
تغییر
✔️ حذف یکی از attribute های تگ img بعد از ذخیره کردن سورس فوتر:
اضافه شدن loading به لیست attribute در فایل textcleaner.ini
✔️ بهینه کردن کوئری session
✔️ تغییر آپدیتر برای نوع مجوز آزمایشی (میان ورژن مورخ 01.07.25 ارائه شد)
رفع باگ
✔️ رفع مشکل نمایش ویجت ها در مدیریت ابزارک ها (میان ورژن مورخ 01.08.18 ارائه شد)
قابلیت جدید
✔️ اضافه شدن تابع deleteLinks2 در کلاس ILinkManager
جهت افزایش سرعت و بهینه شدن کارکرد تابع deleteLinks، این تابع اضافه شده است
استفاده ازین تابع زمانی توصیه میشود که این تابع در loop و به تعداد زیاد فراخوانی میشود
در حالاتی که ماژول امکان آرشیو ندارد بهتر است ازین تابع استفاده شود
prefix دیتابیس ماژول مبدا باید در این تابع ارسال شود به عنوان مثال
home_
db_prefix = پسوند دیتابیس ماژول مبدا (module_id)
is_archive = در صورتی که لینک مبدا آرشیو باشد مقدار این پارامتر true میشود
تغییر
✔️ تغییر آپدیتر برای نوع مجوز آزمایشی (میان ورژن مورخ 01.07.25 ارائه شد)
قابلیت جدید
✔️ درخواست API ساختاری جهت برگرداندن مقدار فیلد raw_perm l
✔️ بررسی و بهینه سازی کندی اسناد در لیست و برخی عملیات ها برای داده های خیلی زیاد :
ایندکس برای type , flags اضافه شد
تغییر
✔️ بهینه سازی تابع deleteLinks در کلاس CLinkManager
تغییر
✔️ بروزرسانی mysql
بروزرسانی mysql از ورژن 8.0.22 به 8.0.27
✔️ امکان مدیریت تعریف ویجت انتخاب شده پیش فرض برای کاربران از طریق مدیریت ویجت ها:
در صورتی که در مدیریت ویجت ها ، ویجتی ایجاد شود و به افرادی اساین و یا کپی شود، بصورت پیش فرض برای آن کاربر ها پس از ورود به خانه آن ویجت نمایش داده میشود ولی بعدا کاربر میتواند آن را تغییر دهد
در صورتی که تغییری در ویجت در سمت مدیریت ابزارک ها ایجاد شود و بخواهیم آن ویجت مجدد برای کاربران مورد نظر بصورت انتخاب شده نمایش داده شود، میتوانیم مجدد گزینه کپی یا اساین برای کاربران را انتخاب کنیم
✔️ عدم استارت اتوماتیک سرویس تیمیار :
تغییراتی در ساختار آرشیو قبل از fullbackup انجام شد.
همچنین برای انجام عملیات fullbackup از مدیر سیستم MaxExecution یک ساعت ست شده است
✔️ اصلاح لاگ mysql : (نسخه اصلاحی مورخ 1401.05.26 ارائه شد)
✔️ امکان شناسایی فایل های csv برای سیستم عامل های لینوکسی و مکی علاوه بر ویندوزی
تغییر
✔️ بررسی decode نشدن url درصورتی که url دارای ?page= باشد
✔️ تغییرات برای دسترسی remote به دیتابیس (راهنما)
✔️ بروزرسانی mysql
✔️ تغییر در کلاس CTextCleaner
✔️ مشکل فایل ویزیو بعد از دانلود از تیمیار
✔️ تغییرات ماژول هسته برای sql injection
تاریخ بروزرسانی: 1401.02.20
نسخه 4.10.4637.6936(4.10) تیمیار
قابلیت جدید
✔️ تابع برای گرفتن ورژن gui در ماژول ها :
اضافه شدن تابع زیر به کلاس IServer برای گرفتن ورژن gui
void getGuiBuild(char* build, int size);
: sql injection detection ✔️
این امکان توسط فلگ check_sql_injection در فایل config.ini هر ماژول بصورت دستی فعال و غیر فعال میشود
[Modules settings]
check_sql_injection=true
تاریخ بروزرسانی: 1400.02.06
نسخه 4.9.4617.6911(4.9) تیمیار
قابلیت جدید
✔️ اضافه شدن نوع array به sqlparam
SQL_TEXT_ARRAY = 65528,// vector<string>
SQL_LONG_ARRAY = 131056,// vector<int>
SQL_INT64_ARRAY = 262112// vector<INT64>
برای استفاده در کوئری هایی که دستور IN یا NOT IN دارند
تغییر
✔️ مواردی در رابطه با فایل منیجر جهت جلوگیری از ثبت داده های اشتباه
✔️ حذف کامل کش از کدهای permissionManager
تاریخ بروزرسانی: 1401.01.23
نسخه 4.8.4613.6889(4.8) تیمیار
تغییر
✔️ نوشتن توابع پر کاربرد با store procedure
✔️ تغییر در textCleaner - href
✔️ تغییر در پارامتر های ModuleInfo :
اضافه شدن 3 پارامتر زیر به ModuleInfo
int perm_read [MODULE_MAX_COUNT]; // need read access for tables of these modules
int perm_write[MODULE_MAX_COUNT]; // need write access for tables of these modules
int perm_sp [MODULE_MAX_COUNT]; // need sp execution for these modules
این تغییر برای امکان محدود کردن دسترسی ها به دیتا بیس اضافه شده است
نمونه در ماژول sdkhelp تعریف شده است
*در read , write هیچ ماژولی نباید ماژول administration اضافه شود
✔️ تغییرات در دسترسی های کاربر دیتابیس
تاریخ بروزرسانی: 1400.11.24
نسخه 4.7.4551.6750(4.7) تیمیار
تغییر
✔️ تغییر در کلاس IRespons
virtual const char * getHeader(EnHttpKnownHeader header) = 0;
virtual const char * getHeader(const char* header) = 0;
virtual TYRESULT setHeader(EnHttpKnownHeader header, const char *content, bool overwrite = false) = 0;
virtual TYRESULT setHeader(const char* header, const char* content, bool overwrite = false) = 0;
تاریخ بروزرسانی: 1400.10.26
نسخه 4.6.4498.6638(4.6) تیمیار
قابلیت جدید
✔️ مجزا شدن کاربران mysql به ازای هر ماژول
رفع باگ
✔️ بسته شدن درست نرم افزار در صورت درست نبودن زمان سرور
✔️ ایجاد قابلیت تنظیم CF-Connecting-IP برای پروکسی سرور تیمیار
✔️ اضافه شدن تابع تبدیل تاریخ قمری به تاریخ میلادی (اضافه شدن تابع hijriToGregorian(SYSTEMTIME &st) به datetime_util)
✔️ حذف تابع isSite از کلاس IRequest و اضافه شدن دو تابع isSiteDomain و isPortalDomain به جای آن ،isSiteDomain برای زمانی است که با دامنه سایت باشد و isPortalDomain برای زمانی است که دامنه پورتال باشد
✔️ چک کردن ntp قبل از بالا آمدن تیمیار
زمان فعلی سیستم با زمان یک ntp server چک می شود. در صورتی که فاصله زمانی بیش از ۳۰۰ ثانیه یا به عبارت دیگر ۵ دقیقه بود اجازه اجرای برنامه داده نمی شود و موارد در لاگ ثبت می شود. این کار ضروری است زیرا در صورتی که زمان سیستم خطای زیادی داشته باشد کارکرد سیستم با اختلال مواجه خواهد شد.
مقدار پیش فرض برای ntp server سرور :
1.europe.pool.ntp.org
می باشد. این مقدار به صورت پیش فرض در فایل config.ini قرار داده شده است و قابل تغییر به سرور های دخواه می باشد.
ntp_server= 1.europe.pool.ntp.org
در صورت نیاز هم می توان قابلیت چک کردن زمان با ntp_server را غیر فعال نمود.
ntp_server= false
تغییر
✔️ بهینه کردن ساختار SetSession
کم کردن آپدیت ها روی جدول ADMIN_MEM_SESSIONS برای ست کردن پارامتر ها و تعداد ترد ها
✔️ تغییر تابع Compressor در تیمیار
رفع باگ
✔️ برسی دانلود کامل فایل های ماژول ها قبل از نصب تیمیار
✔️ امکان اضافه کردن ویژگی autoplay به فایلهای تصویری و صوتی در ویرایش گر متن(حذف نکردن انها درcleantext)
vsdx,application/vnd.ms-visio.viewer,34
✔️ اضافه شدن توابع زیر به کلاس IRequest
✔️در فایل config.ini یک متغیر به نام tls_level اضافه شده است.این متغیر سه وضعیت high، medium و low دارد.
تغییر
✔️ برداشتن محدودیت سایز موجود در checktable
✔️ بروزرسانی lua به نسخه ۵.۴.۲
تاریخ بروزرسانی: 1400.03.23
✔️ برگرداندن status کد دلخواه به کلاینت:
اضافه شدن status های زیر:
409 -> RES_E_CONFLICT
500 -> RES_E_INTERNAL_SERVER_ERROR
✔️ عدم جلوگیری از دریافت اینترفیس های ماژول درصورت بالا نیامدن آن
برای 2 تابع getPermissionManager و getFileManager چک وضعیت ماژول حذف شد
✔️ تست ssl جدید
تغییراتی در پروتکل های قابل قبول برای nginx ایجاد شده است که از این پس بخاطر امنیت فقط tls 1.2 و tls 1.3 را پشتیبانی می کند.
✔️ لود کش permission فقط برای hr و document
در صورتی که تابع getPermissionManager برای ماژول های hr و document توسط خود ماژول ها اجرا شود ، برای آنها کش لود میشود
تاریخ بروزرسانی: 1400.02.19
✔️ بررسی عدم نمایش respond پس از فراخوانی api در ماژول مجوز
✔️ تغییرات cloud
در صورتی که مجوز از نوع ابری باشد
1. در ماژول پورتال در بخش تنظیمات سایت لیست دامنه های تعریف شده در مجوز نمایش داده میشود
2. در ماژول مدیر سیستم امکان بروز رسانی و بروزرسانی خودکار وجود ندارد
✔️ اضافه شدن امکان setCookie در صفحات در حالت لود کل صفحه
✔️ افزودن دستوری به آپدیتر برای پاک کردن یک ماژول
✔️ محدود شدن تعداد کانکشن ها : تعداد کانکشن ها سه برابر thread ها شده است
✔️ آپدیت mysql به ورژن 8.0.22.0
✔️ اصلاح تصاویر svg در تابع writeStatusError
✔️ برگرداندن نوتیفایهای خوانده شده در بازدیدهای اخیر
تغییر در certificate
✔️ اضافه شدن ماژول gui (شامل font , css , js)
✔️ چک license قبل از لود ماژول ها
✔️ تغییر در ساختار curlclient : حذف تکرار تابع perform از connect
✔️ تغییر در ساختار sendMessage :
✔️ حذف nginx
✔️ ارسال مستقیم به هر ماژول با آی پی 127.0.0.1 و پورت هر ماژول
✔️ تغییر ساختار LanguageManager :
✔️حذف کلاس ILanguageManager از core و تابع getLanguageManager از کلاس Iserver
✔️تغییرات ماژول های فعال و ترجمه سفارشی پس از restart قابل دیدن است (هم exe هم dll)
✔️تغییر در ساختار سایت پورتال
رفع باگ
✔️مشکل در نوشتن لاگها با طول زیاد
✔️تبدیل حروف فارسی به عربی و بالعکس در ماژول ها
✔️ایجاد تابع setUser در کلاس IServer
✔️اضافه کردن sendcrash:در صورتی که کرش برای تیمیار و dll ها باشد ماژول تیمیار قرار داده می شود و لاگ اصلی تیمیار ارسال می شود - در صورتی که نام ماژول ها قرار داده شود لاگ ماژول مربوطه ایمیل می شود - لاگ ها در فایلی به نام crash.log قرار داده می شود.
✔️اضافه شدن پارامتر has_archive در ModuleInfo
✔️اضافه شدن پارامتر IServer به تابع update و checkTables در کلاس IModule
✔️بستن transaction های باز هنگام context reset
✔️اضافه شدن تابع isRunningModule به کلاس IServer
✔️اجرا نشدن ماژول های exe در صورت انقضای مجوز
✔️فراخوانی setPrefix در checkTables ماژول های exe
✔️اضافه شدن تابع setUser به کلاس IOfficeOnlineManager
✔️اضافه شدن تابع removeWidget به کلاس IWidgetManager
✔️حذف memory leak detector از ماژول ها
✔️افزایش بارگذاری فایل در پوشه ای اسناد بیش از 128 مگ:
✔️اضافه شدن پارامتر max_body_size در فایل config.ini (بر حسب MB - مقدار پیش فرض 200 است)
✔️پس از افزایش max_body_size در فایل config.ini و ریست کردن تیمیار ، میتوان مقدار حداکثر اندازه فایل در تنظیمات مدیر سیستم را افزایش داد
✔️امکان ارسال جیسون در تابع sendMessageToEvent
✔️ایجاد interface برای ماژول مجوز
✔️درخواست دریافت کانتنت ویجت پورتال _ وابسته به توسعه فروشگاه آنلاین
✔️امکان updater64 db export در ورژن 4 مانند ورژن 3 بر اساس ماژول export
✔️اضافه کردن سایر متد های http
✔️ارسال ایمیل های مهم مثل کمبود هارد به ایمیل لایسنس در صورت تنظیم نبودن "تنظیمات ارسال پست الکترونیکی"
✔️بررسی حجم درایو تیمیار برای دیتابیس های حجیم
✔️امکان درون ریزی فایل های با نام فارسی
✔️بررسی شیوه اعمال دسترسی های مربوط به کاربران ماژول مختلف در مسیرهای home
✔️درنظرگرفتن فایل/پوشه های با نام غیرانگلیسی در کلاس CBinFile
✔️تغییر در تنظیمات ip ماژول ها: این تنظیمات فقط در ماژول های exe قرار دارد و در فایل config.ini آن قرار دارد. در حالت پیشفرض مقدار آن local است به این معنی که ماژول ip لوکال را listen می کند و در خارج از سیستم قابل دسترسی نیست.
ip_listen=local
در صورتی که بخواهیم در دسترسی مستقیم به ماژول در سیستمی دیگر داشته باشیم این مقدار را global قرار می دهیم.
ip_listen=global
✔️تغییر در نحوه لود صفحات در حالت frame
✔️تغییر filemanager برای teamyar4
✔️تغییر در تابع getDataPath برای حالت exe
✔️تغییرات در sdk
✔️تغییرات teamyar.conf
✔️تغییر در تابع queryFetch در حالت خطای truncate data
✔️تغییر در ساختار log
✔️تغییر در وضعیت ماژول ها
✔️تغییر در register ماژول ها
✔️حذف updateManager برای ماژول های exe
✔️تغییر در ساختار تابع archiveProcess هنگام fullbackup
✔️تغییر در ساختار captchaManager
✔️تغییر در کلید popup
✔️تغییر در fullbackup: تغییر در تنظیمات backup: فقط می توان تعداد فایل های fullbackup را تعیین نمود. (تنظیمات به ازای تعداد هفته حذف شده است)
✔️تغییر در وابستگی ماژول ها
✔️تغییر در تابع getPermission برای ماژول های dll
✔️تغییر در leakdetector
✔️تغییر نوع پارامتر number_of_row_affected در تابع queryImmediate
✔️تغییر در تابع getPermission برای ماژول های dll
تغییرات guard:
✔️از این پس GUARD سرویس تیمیار نیست و سرویس تیمیار توسط teamyar اجرا می شود.
✔️مانند قبل وظیفه اجرای پروسس ها بر عهده تیمیار است.
✔️با گارد هم مانند یک پروسس رفتار می شود و توسط تیمیار اجرا می شود
✔️گارد قبلی حذف شده است و گارد جدید وظیفه لود dllها را دارد. برای دیباگ ماژول های dll باید به گارد attach شوند.
✔️در صورت کرش ماژول های dll گارد استاپ و استارت می شود و کل تیمیار استاپ نمی شود
✔️لاگ های dllها در پوشه گارد قرار دارند
✔️تغییر در referer
✔️تغییر در تابع addNotify برای بهبود سرعت
✔️تغییر در ساختار سوکت نوتیفای
✔️تغییر در پارامتر های sendMessageToEvent
✔️تغییر در ساختار سوکت پاپ آپ
✔️تغییر در ورژن server
✔️تغییر ساختار nginx
✔️تغییر ssl در زمان فعال سازی مجدد در تیمیار 4.2
✔️مشکل در نمایش 20 کاربر اخیر ACL در تیمیار 4
✔️مشکل در public ماژول های exe
✔️مشکل در انتخاب و تغییر عکس کاربر (مدیر سیستم - پروفایل)
✔️رفع مشکل filemanager
✔️رفع مشکل کش permission
✔️رفع مشکل فیلد های auto_increament
✔️عدم حذف نوتیفای
✔️رفع مشکل کلاس image
✔️نمایش ندادن ویجت ماژول های غیر فعال
✔️مشکل وب سوکت در پورتال
✔️مشکل در استاپ شدن exe ها در حالت debug
✔️پارامتر timeout در کنترل form عمل نمی کند: timeout برای ماژول های dll پیش فرض 1 دقیقه بود که به 5 دقیقه تغییر پیدا کرد
✔️رفع مشکل COfficeOnlineManager
✔️مشکل در لود پرمیشن های منفی
✔️اصلاح نمایش لاگ change ip
✔️تنظیم اشتباه access-control-allow-origin: https://erp.teamyar.com در پورتال : برای حالت public و site مقدار access-control-allow-origin برابر * است
✔️مشکل checkReferer در سایت
✔️کلاس CTYMessage در teamyar4
✔️اضافه شدن هدر Accept
✔️اضافه کردن قابلیت به config.ini جهت مدیریتmysql
✔️جایگزین برای IProfileAdd در teamyar4
✔️جایگزین برای ILoginManager در teamyar4
✔️تغییر ساختار interfaceها در هسته teamyar4
✔️جایگزین برای IMessage در teamyar4
✔️تغییر در ModuleInfo
✔️تغییر در isArchivedData
✔️جایگزین برای ILinkTypeInfo در teamyar4
✔️تغییر در توابع register برای کنترل searchlink و addlink
✔️تغییر در ساختار widget در teamyar4
✔️حذف serviceProcess از کلاس IModule