Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- verze = "21.0628.R2"
- logs = false
- term.clear()
- term.setCursorPos(1,1)
- local idPC = os.getComputerID()
- cReg= 1 --count of synchronize Register, mno?ství synchronizovaných registr?
- if fs.exists("/C/system/.core/defmodem") then
- local data = fs.open ("/C/system/.core/defmodem","r")
- modemPos = data.readLine()
- data.close()
- if not modemPos then
- modemPos = "offline"
- end
- else
- modemPos = "offline"
- end
- if not (modemPos == "offline") then
- modem = peripheral.wrap(modemPos)
- modem.open(idPC)
- print("Active Directory Connector, ID serveru: "..idPC)
- else
- term.setTextColor(colors.red)
- print("Error, you must configure the modem first")
- modem.open("Error")
- end
- function logy(Zlog)
- cas = (textutils.formatTime(os.time(), true))
- local l = fs.open("/C/system/server/rules/AD/log","a")
- l.writeLine(cas..": "..Zlog)
- l.close()
- end
- function bar(styl, text)
- if (styl == "OK") then -- Uspech
- term.setTextColor(colors.green)
- elseif (styl == "FAIL") then -- Neuspesne
- term.setTextColor(colors.red)
- elseif (styl == "INFO") then -- Informativni
- term.setTextColor(colors.lightBlue)
- elseif (styl == "def") then -- defaultni
- term.setTextColor(colors.white)
- elseif (styl == "PRO") then -- Progress
- term.setTextColor(colors.yellow)
- else
- styl = "def"
- term.setTextColor(colors.white)
- end
- if not (styl == "def") then
- zprava = ("["..textutils.formatTime(os.time(), true).."] ["..styl.."] "..text)
- else
- zprava = text
- end
- if logs then
- logy(zprava)
- end
- print (zprava)
- end
- if fs.exists("/C/system/server/rules/Update/") and fs.exists("/C/service/updateAD.lua") then
- UpdateServer = true
- bar("INFO", "Pepdroll Update service is available!")
- if fs.exists ("/C/system/server/rules/Update/startup.lua") then
- local data = fs.open("/C/system/server/rules/Update/startup.lua", "r")
- bar("INFO", "Startup "..data.readLine())
- data.close()
- end
- if fs.exists ("/C/system/server/rules/Update/desktop.lua") then
- data = fs.open("/C/system/server/rules/Update/desktop.lua", "r")
- bar("INFO", "Desktop "..data.readLine())
- data.close()
- end
- if fs.exists ("/C/system/server/rules/Update/setting.lua") then
- data = fs.open("/C/system/server/rules/Update/setting.lua", "r")
- bar("INFO", "SettingApp "..data.readLine())
- data.close()
- end
- else
- UpdateServer = false
- bar("INFO", "Pepdroll Internal Update service is not available.")
- end
- local function defaultV()
- Lpass = ""
- idComp = ""
- Luser = ""
- pridat = false
- Fuser = ""
- idCompL = ""
- IsAdmin = false
- disAD = false
- registr = ""
- registrstatus = ""
- end
- function overeni ()
- bar("PRO", "Verification,")
- local _, side, freq, rfreq, message = os.pullEvent('modem_message')
- if (rfreq == 552) then
- bar("PRO", "Password accepted,")
- Lpass = message
- end
- if fs.exists ("/C/system/server/rules/AD/Users/"..Luser.."/.data") then
- bar("OK", "User exists")
- local f = fs.open("/C/system/server/rules/AD/Users/"..Luser.."/.data", "r")
- user=f.readLine()
- pass=f.readLine()
- Fname=f.readLine()
- Lname=f.readLine()
- perm=f.readLine()
- if (perm == "t") then IsAdmin = true end
- f.close()
- else
- bar("FAIL", "User does not exist!")
- modem.transmit(tonumber(idComp),552,"false")
- bar("PRO", "Response sent to "..idComp)
- defaultV()
- prijmout()
- end
- sleep(0.1)
- if IsAdmin then
- if (Lpass == pass) then
- modem.transmit(tonumber(idComp),552,"true")
- bar("PRO", "Response sent to "..idComp)
- bar("OK", "Password accepted,")
- rozdeleni()
- else
- modem.transmit(tonumber(idComp),552,"false")
- bar("PRO", "Response sent to "..idComp)
- bar("FAIL", "Bad password!")
- end
- else
- modem.transmit(tonumber(idComp),552,"false")
- bar("PRO", "Password accepted, "..idComp)
- bar("FAIL", "Insufficient permissions!")
- end
- defaultV()
- end
- function FindUser(Fuser)
- if idCompL == "" then
- modem.transmit(tonumber(idCompL),556,"false")
- bar("FAIL", "Failed to verify computer ID!")
- bar("PRO", "Response sent to "..idCompL)
- defaultV()
- prijmout ()
- end
- if fs.exists("/C/system/server/rules/AD/Computers/"..idCompL) then
- bar("OK", "PC ID: \""..idCompL.."\" find")
- else
- bar("FAIL", "PC ID: \""..idCompL.."\" cant find in ADPD!")
- if fs.exists ("/C/system/server/rules/AD/Users/"..Fuser.."/.data") then
- modem.transmit(tonumber(idCompL),556,"block")
- bar("FAIL", "The user has been blocked on the given computer!")
- bar("PRO", "Response sent to "..idCompL)
- defaultV()
- prijmout ()
- end
- end
- if fs.exists ("/C/system/server/rules/AD/Users/"..Fuser.."/.data") then
- bar("OK", "User exists,")
- modem.transmit(tonumber(idCompL),556,"true")
- local f = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/.data", "r")
- user=f.readLine()
- pass=f.readLine()
- Fname=f.readLine()
- Lname=f.readLine()
- perm=f.readLine()
- if (perm == "t") then IsAdmin = true end
- f.close()
- if fs.exists ("/C/system/server/rules/AD/Users/"..Fuser.."/.lock") then
- bar("FAIL", "User \""..user.."\" is disable!")
- pass = "QJHGSDahfdjhgqAUFjhglkfds14564851321!"
- ban = true
- else
- bar("OK", "User \""..user.."\" is allowed,")
- ban = false
- end
- bar("PRO", "Send data to ID "..idCompL)
- modem.transmit(tonumber(idCompL),1,user)
- modem.transmit(tonumber(idCompL),2,pass)
- modem.transmit(tonumber(idCompL),3,Fname)
- modem.transmit(tonumber(idCompL),4,Lname)
- modem.transmit(tonumber(idCompL),5,perm)
- modem.transmit(tonumber(idCompL),580,cReg)
- bar("OK", "Data sent,")
- else
- bar("FAIL", "User does not exist!")
- ban = true
- if not idCompL == "" then
- modem.transmit(tonumber(idCompL),556,"false")
- bar("PRO", "Response sent to "..idCompL)
- else
- bar("FAIL", "Response cant sent!")
- end
- defaultV()
- end
- end
- function fail()
- modem.transmit(tonumber(idCompL),571,"fail")
- end
- function AD_dotaz(dotaz)
- if fs.exists("/C/system/server/rules/Update/") then
- UpdateServer = true
- else
- UpdateServer = false
- end
- if (dotaz == "bar") then
- if fs.exists("/C/system/server/rules/AD/Policy/background.nfp") then
- bar("PRO", "Sync background image, Policy,")
- local data = fs.open("/C/system/server/rules/AD/Policy/background.nfp", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),571,obsah)
- else
- if fs.exists("/C/system/server/rules/AD/Users/"..Fuser.."/bar.nfp") then
- bar("PRO", "Sync background image, User,")
- local data = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/bar.nfp", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),571,obsah)
- else
- fail()
- end
- end
- elseif (dotaz == "Bcol") then
- if fs.exists("/C/system/server/rules/AD/Policy/Bcolor") then
- bar("PRO", "Sync theme color, Policy")
- local data = fs.open("/C/system/server/rules/AD/Policy/Bcolor", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),572,obsah)
- else
- if fs.exists("/C/system/server/rules/AD/Users/"..Fuser.."/Bcolor") then
- bar("PRO", "Sync theme color, User,")
- local data = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/Bcolor", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),572,obsah)
- else
- fail()
- end
- end
- elseif (dotaz == "updateStart") then
- if fs.exists ("/C/system/server/rules/Update/startup.lua") then
- local data = fs.open("/C/system/server/rules/Update/startup.lua", "r")
- verzestartup = data.readLine()
- data.close()
- if not (verzestartup == verzeStart) then
- bar("PRO", "Update startup.lua")
- local data = fs.open("/C/system/server/rules/Update/startup.lua", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),575,obsah)
- else
- fail()
- end
- else
- fail()
- end
- elseif (dotaz == "updateDesk") then
- if fs.exists ("/C/system/server/rules/Update/desktop.lua") then
- local data = fs.open("/C/system/server/rules/Update/desktop.lua", "r")
- verzedesktop = data.readLine()
- data.close()
- if not (verzedesktop == verzeDesk) then
- bar("PRO", "Update desktop.lua")
- local data = fs.open("/C/system/server/rules/Update/desktop.lua", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),576,obsah)
- else
- fail()
- end
- else
- fail()
- end
- elseif (dotaz == "updateSett") then
- if fs.exists ("/C/system/server/rules/Update/setting.lua") then
- local data = fs.open("/C/system/server/rules/Update/setting.lua", "r")
- verzesetting = data.readLine()
- data.close()
- if not (verzesetting == verzeSett) then
- bar("PRO", "Update Setting.lua")
- local data = fs.open("/C/system/server/rules/Update/setting.lua", "r")
- obsah = data.readAll()
- data.close()
- modem.transmit(tonumber(idCompL),577,obsah)
- else
- fail()
- end
- else
- fail()
- end
- elseif (dotaz == "Reg") then
- modem.transmit(tonumber(idCompL),581, ".menuColor")
- if fs.exists("/C/system/server/rules/AD/Users/"..Fuser.."/Registry/.menuColor") then
- modem.transmit(tonumber(idCompL),582, "true")
- bar("PRO", "Synchronizace registru .menuColor")
- else
- modem.transmit(tonumber(idCompL),582, "false")
- end
- else
- fail()
- end
- end
- function ImportRegistru()
- if registrstatus ~= "" then
- registerPath = ("/C/system/server/rules/AD/Users/"..Fuser.."/Registry/"..registr)
- if registrstatus == "true" then
- if not fs.exists(registerPath) then
- local file = fs.open(registerPath, "w")
- file.close()
- end
- if fs.exists(registerPath) then bar("OK", "The register has been registered,") end
- else
- if fs.exists(registerPath) then fs.delete(registerPath) bar("OK", "The register was deleted!") end
- end
- end
- registerPath = ""
- defaultV()
- end
- function prijmout ()
- --bar("def", "Cekani na uzivatele")
- local _, side, freq, rfreq, message = os.pullEvent('modem_message')
- -- bar("INFO", "Data prijata, zpracovavam...")
- if (rfreq == 550) then
- bar("INFO", "Request for data processing. ")
- idComp = message --login to domain
- bar("PRO", "Device address: "..idComp)
- pridat = true
- end
- if (rfreq == 551) then
- Luser = message
- bar("PRO", "Username: "..Luser)
- overeni()
- end
- if (rfreq == 553) then
- if (message == "DisConnect") then
- disAD = true
- bar("INFO", "Request to delete from.")
- end
- end
- if (rfreq == 554) then
- bar("INFO", "User search request.")
- idCompL = message --login to domain
- bar("PRO", "Device address: "..idCompL)
- end
- if (rfreq == 555) then
- Fuser = message
- bar("PRO", "User search: "..Fuser)
- FindUser(Fuser)
- end
- if (rfreq == 557) then
- dotaz = message
- local f = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/.data", "w")
- f.write(message)
- f.close()
- bar("INFO", "User data overwritten!")
- end
- if (rfreq == 560) then
- if not ban then
- bar("PRO", "Sync Background data,")
- local file = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/bar.nfp", "w")
- file.write(message)
- file.close()
- end
- end
- if (rfreq == 561) then
- if not ban then
- bar("PRO", "Sync Theme color,")
- local file = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/Bcolor", "w")
- file.write(message)
- file.close()
- end
- end
- if (rfreq == 562) then
- if not ban then
- bar("PRO", "Sync Text color,")
- local file = fs.open("/C/system/server/rules/AD/Users/"..Fuser.."/Tcolor", "w")
- file.write(message)
- file.close()
- end
- end
- if (rfreq == 563) then
- if not ban then
- registr = message
- end
- end
- if (rfreq == 564) then
- if not ban then
- bar("PRO", "Sync register: "..registr..", "..message)
- registrstatus = message
- ImportRegistru()
- end
- end
- if (rfreq == 570) then
- dotaz = message
- if not ban then
- AD_dotaz(dotaz)
- else
- fail()
- end
- end
- if (rfreq == 575) then
- verzeStart = message
- end
- if (rfreq == 576) then
- verzeDesk = message
- end
- if (rfreq == 577) then
- verzeSett = message
- end
- prijmout()
- end
- function rozdeleni()
- if pridat and not disAD then
- pridat = false
- if not fs.exists("/C/system/server/rules/AD/Computers/"..idComp) then
- local c = fs.open ("/C/system/server/rules/AD/Computers/"..idComp, "w")
- c.close()
- bar("OK", "Computer ID \""..idComp.."\" was added.")
- else
- bar("FAIL", "Computer ID \""..idComp.."\" already exists!")
- end
- end
- if disAD then
- if fs.exists("/C/system/server/rules/AD/Computers/"..idComp) then
- fs.delete("/C/system/server/rules/AD/Computers/"..idComp)
- bar("OK", "Computer ID \""..idComp.."\" was deleted.")
- else
- bar("FAIL", "Computer ID \""..idComp.."\" exist!")
- end
- end
- prijmout()
- end
- defaultV()
- prijmout()
Add Comment
Please, Sign In to add comment