نتعرف على طريقة عمل الصلاحية الخاصة بالمستخدمين .....
وقبل عمل أي شي يفضل القيام بعمل نسخة احتياطية للنظام ففي حالة اردت العدوة للوضع السابق تستطيع بكل سهولة اذا ما نجحت الطريقة بشكل سليم
--المستخدم لا تنتهي صلاحية برغم من اننا وضعنا بروفايل ينهي صلاحية بعد -اسبوع او يوم او 3 ايام
تنتهي ولازال المستخدم يملك صلاحية كاملة---
طيب
اولا :
نضيف اسكربت ينشئ تاريخ في الكمنت تبع اي يوزر يسجل دخول
بدء الاسكربت ---
{:local date [ /system clock get date ];:if ( [ /ip hotspot user get
$user comment ] = "" ) do={[ /ip hotspot user set $user comment=$date
];}
}
يتم اضافة تاريخ عند اول تسجيل
ثانيا :
ومن ثما نضيف اسكربت في السيستم اسكديلر ووظيفة تشغيل اسكربت في سيستم سكربت عند ما يحين وقت انتهاء صلاحية المستخدم المحددة
بدء الاسكربت----
/system scheduler
add disabled=yes interval=6h name=expire_users_sched on-event=\
"/system script run expire_user" policy=read,write \
start-date=nov/01/2016 start-time=00:05:00
يلية اسكربت المختص بانهاء الصلاحية
= اخفاء المستخدم يعني ايقاف الحساب +اخراجة من الاكتف عند انتهاء الصلاحية
بدء الاسكربت---
{:global today;{:local date [ /system clock get date ];:local montharray
(
"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"
);:local monthdays ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
);:local days [ :pick $date 4 6 ];:local monthtxt [ :pick $date 0 3
];:local year [ :pick $date 7 11 ];:local months ([ :find $montharray
$monthtxt]);:for nodays from=0 to=$months do={:set days ( $days + [
:pick $monthdays $nodays ] )};:set days ($days + $year * 365);:set today
$days;};:foreach i in [ /ip hotspot user find where disabled=no ]
do={:if ([ :find [ /ip hotspot user get $i comment ] ] = 0 && [
:find [ /ip hotspot user get $i email ] ] = 0) do={:local date [ /ip
hotspot user get $i comment ];:local oldemail [ /ip hotspot user get $i
email ];:local atmark [ :find $oldemail "@" ];:local dotmark [ :find
$oldemail "." ];:if ( $atmark >= 0 && $dotmark >= 0 )
do={:local validity [ :pick $oldemail 0 $atmark];:local rest [ :pick
$oldemail ($atmark + 1) [ :len $oldemail] ];:if ( [:tonum $validity] !=
"" ) do={:if ( [:tonum $validity] != "0" ) do={:local montharray (
"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"
);:local monthdays ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
);:local days [ :pick $date 4 6 ];:local monthtxt [ :pick $date 0 3
];:local year [ :pick $date 7 11 ];:local months ( [ :find $montharray
$monthtxt ] );:for nodays from=0 to=$months do={:set days ( $days + [
:pick $monthdays $nodays ] )};:set days ($days + $year * 365);:if (
($days + $validity) < $today ) do={ :local name [/ip hotspot user get
$i name];:log info "HOTSPOT VALITITY EXPIRE: Disabling Hotspot user
$name first logged in $date";[ /ip hotspot user disable $i ];[ /ip
hotspot active remove [find where user=$user] ];}}}}}}}
الان تعديل بسيط في القالب الذي ينقل اليوزرات من اليوزر مان الى الهوت سبوت
شكل صلاحية 30 يوم
add email=30@0_140.ptd limit-uptime=4h name=h123 password=\
h123 profile=4hours