Karmanov
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору что-то топик перестал жить походу... у меня получается разговор с самим собою =) Ну да ладно, думаю, поможет кому-нить када-нить... В общем, до чего я дошёл в решении проблемы, описанной выше. Как сделать так, что-бы с определённой папки на фтп можно было скачивать в определённые часы в сутки... Вот такой скрипт: Dim ARNb ReDim ARListPaths(0),ARListFileAccess(0) Const Verbose = True Const DebugMode = True Const StrDenied = "No download video Day hours." ' R for download right ' W for upload and append right ' D for delete right Add_AR "/games/*", "R" Add_AR "/music/*", "R" Add_AR "/soft/*", "R" Add_AR "/video/*", "" Sub HookDeleteFile(FileName, FileNameReal) ' client tries to delete a file If GetAccessFor(FileName, "D") Then Hook.Result = 0 'allowed Else Hook.Result = 1 'denied If Verbose Then Hook.SetReply 599, StrDenied End If End If End Sub Sub HookRetrieve(FileName, FileNameReal) ' client tries to download a file If GetAccessFor(FileName, "R") Then Hook.Result = 0 'allowed Else Hook.Result = 1 'denied If Verbose Then Hook.SetReply 599, StrDenied End If End If End Sub Sub HookStore(FileName, FileNameReal) ' client tries to upload a file If GetAccessFor(FileName, "W") Then Hook.Result = 0 'allowed Else Hook.Result = 1 'denied If Verbose Then Hook.SetReply 599, StrDenied End If End If End Sub Sub HookMove(FileName, FileNameReal, ToFileName, ToFileNameReal) ' client tries to rename/move a file or folder If GetAccessFor(FileName, "W") And GetAccessFor(FileName, "R") Then Hook.Result = 0 'allowed Else Hook.Result = 1 'denied If Verbose Then Hook.SetReply 599, StrDenied End If End If End Sub Function GetAccessFor(FileName, RightNeeded) Log "We need to find if """ & RightNeeded & """ is allowed on """ & FileName & """" Log ARNb & " paths to match to" Set RE = New RegExp RE.IgnoreCase = True 'RE.global = True For i = 1 to ARNb If ARListPaths(i) <> "" Then Log "Matching with """ & ARListPaths(i) & """" RE.Pattern = ARListPaths(i) If RE.Test(FileName) Then Log "Matched ! Rights on that are """ & ARListFileAccess(i) & """" If InStr( ARListFileAccess(i), RightNeeded) > 0 Then Log "This is good ! --> Access granted" GetAccessFor = True Else Log "Too bad --> Access denied" GetAccessFor = False End If Exit Function End If End If Next Log "Not matched --> Access denied" GetAccessFor = False End Function Sub Add_AR (VirtualPath, Rights) Set RE = New RegExp RE.IgnoreCase = True RE.global = True VirtualPath = "^" & VirtualPath RE.pattern = "\." VirtualPath = RE.Replace(VirtualPath, "\.") RE.pattern = "\*" VirtualPath = RE.Replace(VirtualPath, ".*") RE.pattern = "\?" VirtualPath = RE.Replace(VirtualPath, ".") ARNb = ARNb + 1 ReDim Preserve ARListPaths(ARNb) ARListPaths(ARNb) = VirtualPath ReDim Preserve ARListFileAccess(ARNb) ARListFileAccess(ARNb) = Rights End Sub Sub Log (Text) If DebugMode Then WriteLog Text End If End Sub В общем, в самом верху задаём доступ на папки: Add_AR "/soft/*", "R" Add_AR "/video/*", "" тут видно, что из папки "soft", можно скачивать (R) а из папки "video" нельзя "" (пусто) я создал два одинаковых скрипта, где в первом есть разрешение скачивать из папки "видео", а во втором нет. И в заданные часы просто меняю эти скрипты в папке "..\Scripts\SFVConfig" ВОПРОС: Помогите дописать в скрипт обработки текущего времени, что-бы в скрипте задавался интервал во времени, например: с 02:00 до 06:00. Если условие совпадает, то скрипт выполнять, иначе - пропускать весь код. Что-то я не въеду с обработками времени в этих скриптах |