home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / GLEN / MXMNU217.ZIP / LOGIN.MNU < prev    next >
Text File  |  1990-09-18  |  11KB  |  461 lines

  1. Comment
  2. ========================================================
  3.  
  4. Copyright 1990 by Marc Perkel * All right reserved.
  5.  
  6. Requires MarxMenu version 2.14 or later to run.
  7.  
  8. MarxMenu now allows you to login to a Novell network without using
  9. Novell's login program or messing with nasty login scripts. You can
  10. be in MarxMenu all the way in.
  11.  
  12. Loging into Novell is tricky. Especially if you are using boot roms
  13. on your network cards. Through much trial and error, I have found
  14. some solid tricks that make life easier.
  15.  
  16. You should have the following two BATCH files in your LOGIN
  17. directory as follows:
  18.  
  19. LOADNET.BAT
  20. -----------
  21. NET4
  22. F:
  23. STARTUP
  24.  
  25. STARTUP.BAT
  26. -----------
  27. SET BOOTUP=LOGIN
  28. MarxMenu Login
  29. %BOOTUP%
  30.  
  31. Each workstation should have their own AUTOEXEC.BAT. The last line
  32. should be LOADNET. If you are running multiple versions of dos you
  33. can have the first line of LOADNET.BAT be %NET%. You will then have
  34. to have SET NET=NET4 in your AUTOEXEC.BAT file.
  35.  
  36. Also, if you want automatic login you can add the following lines:
  37.  
  38. SET USERNAME=MARC   Your Name Here
  39. SET PASSWORD=NERD   Your Password Here
  40.  
  41. You should also change the COMSPEC= to the network command.com BEFORE
  42. you run NET4. For some unknown reason, this solves a lot of problems.
  43.  
  44. Another boot rom quirk is that you can't run any program off a boot
  45. rom that trashes upper memory. An example is running QEMM on a
  46. monochrome monitor.
  47.  
  48. By using this method the boot disk or boot rom hands control over in
  49. a clean way. LOADNET.BAT then branches to STARTUP.BAT for the rest
  50. of the login sequence.
  51.  
  52. For some strange reason which I can't explain, LOADNET and STARTUP
  53. have to be two separate batch files. I think it forces the transient
  54. part of COMMAND.COM to load into memory. Anyhow, don't combine these
  55. into one batch file
  56.  
  57. The first line of STARTUP.BAT is a message that tells this menu that
  58. the user is logging in for the first time. This menu creates a batch
  59. file and puts the name of it in the environment variable BOOTUP.
  60. STARTUP.BAT then executes this file.
  61.  
  62. This is the example for MY network. You'll have to modify it for
  63. yours.
  64.  
  65. One word of caution. After modifing this menu, always run MARXCOMP
  66. LOGIN to compile it. Otherwise, if you boot up into it you won't
  67. have enough access rights to recompile automatically.
  68.  
  69. ========================================================
  70. EndComment
  71.  
  72. var
  73.    UserName
  74.    PassW
  75.    Logged
  76.    Station
  77.    NetAddress
  78.    SmartDir
  79.    MyServer
  80.    Servers
  81.    Video
  82.    HomeDir
  83.    DosDir
  84.    BatFile
  85.    BatName
  86.    FancyScreen
  87.  
  88.  
  89. MasterEnvironment
  90.  
  91.  
  92.  
  93. Comment
  94. ========================================================
  95.  
  96. If Environment variables USERNAME and PASSWORD are set, this menu
  97. will attempt to log into the network using these values. This allows
  98. for automatic login. You can also pass the parameters on the command
  99. line as follows.
  100.  
  101. MarxMenu Login <Name> <Password>
  102.  
  103. The name may contain a referrence to a server: Server/Name
  104.  
  105. ========================================================
  106. EndComment
  107.  
  108. ;------ If CapsLock then override default login
  109.  
  110. Logged = False
  111. if not CapsLock
  112.    UserName = ParamStr(2)
  113.    if UserName = '' then UserName = ReadEnv('USERNAME')
  114.    if UserName > ''
  115.       PassW = ParamStr(3)
  116.       if PassW = '' then PassW = ReadEnv('PASSWORD')
  117.       if PassW > ''
  118.          NovLogin (UserName,PassW)
  119.          Logged = NovResult = 0
  120.       endif
  121.    endif
  122. endif
  123.  
  124. MyServer = NovDefaultServer
  125. NovServers(Servers)
  126.  
  127. ;------ Fills station to 3 digits. Example: 004
  128.  
  129. Station  = Str(NovConnection)
  130. while length(Station) < 3
  131.    Station = '0' + Station
  132. endwhile
  133.  
  134. ;------ Read network address
  135.  
  136. NetAddress = NovStationAddress (NovConnection)
  137.  
  138. ;------ Select colors and prepare screen
  139.  
  140. if not Logged
  141.    FancyScreen = True
  142.    if ColorScreen
  143.       TextColor White Red
  144.       BoxBorderColor Green Brown
  145.       BoxInsideColor Black Brown
  146.       ClearScreen 176
  147.       ClockColor Black Brown
  148.       TextColor Black Green
  149.       BoxHeaderColor Yellow Mag
  150.       Shadow
  151.    else
  152.       TextColor Grey Black
  153.       ClearScreen 176
  154.       TextColor Black Grey
  155.       BoxBorderColor Black Grey
  156.       BoxInsideColor Black Grey
  157.       BoxHeaderColor Black Grey
  158.       ClockColor Black Grey
  159.    endif
  160.    BlankMessage = 'Netware Login'
  161.    ClockMode = 262
  162.    GotoXY 1 25
  163.    ClearLine
  164.    WriteCenter "Computer Tyme Master Network Login Menu"
  165.    SingleLineBox
  166.    Explode Off
  167.    ShadowColor Grey Red
  168.    if ColorScreen
  169.       DrawBox 3 2 74 5
  170.       ClockPos 42 5
  171.       TextColor Blue Brown
  172.    else
  173.       DrawBox 3 2 76 5
  174.       ClockPos 44 5
  175.    endif
  176.    WriteCenter 'Computer Tyme Software Development Laboratory'
  177.    Writeln
  178.    TextColor Black Brown
  179.    WriteCenter '───────────────────────────────────────────────────────'
  180.    Writeln
  181.    TextColor Black Brown
  182.    Write "  (C) 1990 by Marc Perkel"
  183.    DoubleLineBox
  184.    BlankTime = 10
  185.  
  186.    Explode On
  187.    BlockBox
  188.    BoxBorderColor Green Blue
  189.    BoxInsideColor Yellow Blue
  190.    BoxHeader = " Station Information "
  191.    if ColorScreen
  192.       DrawBox 39 17 38 6
  193.       TextColor Yellow Blue
  194.    else
  195.       DrawBox 41 17 38 6
  196.       TextColor Grey Black
  197.    endif
  198.  
  199.    Writeln '           Server: ' MyServer
  200.    Writeln '          Network: ' NetAddress
  201.    Writeln '       Connection: ' Station
  202.    Write   '      DOS Version: ' DosVersionString
  203.  
  204.    BoxHeader = ' Logging into Server * ' + MyServer + ' '
  205.    DrawBox 3 10 50 4
  206. endif
  207.  
  208. Security
  209.  
  210. while not Logged
  211.    if UserName = ''
  212.       ClearScreen
  213.       Write ' Login Name: '
  214.       UserName = UpperCase(Readln)
  215.       Writeln
  216.       if UserName = 'EXIT' then ExitMenu
  217.    endif
  218.    if not Logged
  219.       Write '   Password: '
  220.       PassW = Readln
  221.       NovLogin (UserName,PassW)
  222.       Logged = NovResult = 0
  223.    endif
  224.    if not Logged then UserName = ''
  225. endwhile
  226.  
  227. if FancyScreen
  228.    EraseTopWindow
  229.    EraseTopWindow
  230.    EraseTopWindow
  231.    EraseTopWindow
  232.    TextColor Grey Black
  233.    ClearScreen
  234. endif
  235.  
  236. UserName = NovMyLoginName
  237.  
  238. Comment
  239. ========================================================
  240.  
  241. Here we set a different directory for a program depending on if we
  242. have a comol or monochrome monitor.
  243.  
  244. ========================================================
  245. EndComment
  246.  
  247. if VideoMode = Mono
  248.    SmartDir = 'F:\PUBLIC\MSMART'
  249. else
  250.    SmartDir = 'F:\PUBLIC\CSMART'
  251. endif
  252.  
  253. Comment
  254. ========================================================
  255.  
  256. You can't assume that you have an F: drive unless you map it.
  257.  
  258. ========================================================
  259. EndComment
  260.  
  261. NovMapDrive ('F','SYS:\LOGIN')
  262.  
  263. HomeDir = 'F:\HOME\' + UserName
  264. if UserName = 'SUPERVISOR' then HomeDir = 'F:\SYSTEM'
  265. if not ExistDir(HomeDir) then HomeDir = 'F:\PUBLIC\APPS'
  266. DosDir = 'F:\PUBLIC\DOSV' + DosVersionString
  267.  
  268.  
  269. Comment
  270. ========================================================
  271.  
  272. Here's where we map our drives. This does not set the search path.
  273. You set that explicitly by writing to the PATH environment variable.
  274.  
  275. Drive map commands may contain server and volume referrences:
  276.  
  277. MovMapDrive('I','TYME/VOL1:SERVICE')
  278.  
  279. ========================================================
  280. EndComment
  281.  
  282. NovMapDrive ('Z',HomeDir)
  283. NovMapDrive ('Y','F:\PUBLIC\APPS')
  284. NovMapDrive ('X',DosDir)
  285. NovMapDrive ('W','F:\PUBLIC\UTIL')
  286. NovMapDrive ('P','F:\PUBLIC')
  287. NovMapDrive ('U','F:\SYSTEM')
  288. NovMapDrive ('L','F:\LOGIN')
  289. if MyServer = 'TYME' then NovMapDrive ('I','VOL1:')
  290. if MyServer = 'MARX2'
  291.    NovMapDrive ('M','F:\PUBLIC\MARX')
  292. else
  293.    NovMapDrive ('S',SmartDir)
  294. endif
  295.  
  296. SetEnv ('PASSWORD=')
  297. SetEnv ('NET=')
  298. SetEnv ('USERNAME=' + UserName)
  299. SetEnv ('STATION=' + Station)
  300. SetEnv ('COMSPEC=X:COMMAND.COM')
  301. SetEnv ('PROMPT=$e[1;33m$p: $e[0;32m')
  302. SetEnv ('PD.EXE=/$Z:PD.PIC')
  303. SetEnv ('MXCTL=/C')
  304. SetEnv ('MXECHO=OFF')
  305. if MyServer = 'MARX2'
  306.    SetEnv ('PATH=Z:.;Y:.;X:.;W:.;P:.;U:.;M:.;')
  307. else
  308.    SetEnv ('PATH=Z:.;Y:.;X:.;W:.;P:.;U:.;S:.;')
  309. endif
  310.  
  311. ChDir HomeDir
  312.  
  313. ;------ Opens a semaphore that XMETER can read.
  314.  
  315. NovOpenSemaphore ('XM-LOGIN',0)
  316.  
  317. ;------ LOGIN is set to BOOTUP if logging in for the first time
  318.  
  319. if UpperCase(ReadEnv('BOOTUP')) <> 'LOGIN' then ExitMenu
  320.  
  321. ;------ Create temporary batch file for rest of login sequence
  322.  
  323. BatName = 'Z:$MRX' + Station + '.BAT'
  324. SetEnv ('BOOTUP=' + BATNAME)
  325. FileAssign(BatFile,BatName)
  326. FileCreate(BatFile)
  327.  
  328. ;----- Load TSRs
  329.  
  330. if DosVersionString < '3.30'
  331.    WriteBat('ECHO OFF')
  332. else
  333.    WriteBat('@ECHO OFF')
  334. endif
  335. WriteBat ('SET BOOTUP=')
  336. WriteBat ('MARK > NUL')
  337.  
  338. ;----- Load Lan Assist
  339.  
  340. WriteBat ('\PUBLIC\LA\LA +N >NUL')
  341.  
  342. Comment
  343. ================================================================
  344.  
  345. This next section deals with running special programs bases on the
  346. physical station number rather than by user. This deals with special
  347. hardware that needs software drivers loaded.
  348.  
  349. ================================================================
  350. EndComment
  351.  
  352. if NetAddress = '255:9'
  353.    WriteBat('mode mono')
  354. endif
  355.  
  356. if UserName = 'MARC'
  357.    SideKick
  358.    Capture
  359. endif
  360.  
  361. if UserName = 'VICKI'
  362.    SideKick
  363. endif
  364.  
  365. if UserName = 'KEVIN'
  366.    ;Capture
  367.    SetEnv( 'PATH=c:\dos33;c:\bin;c:\marx;c:\dv;' + ReadEnv( 'Path' ) )
  368. endif
  369.  
  370. if UserName = '386'
  371.    Capture
  372. endif
  373.  
  374. if UserName = 'GRACE'
  375.    SideKick
  376. endif
  377.  
  378. if UserName = 'NITA'
  379.    SideKick
  380. endif
  381.  
  382. if UserName = 'WORK'
  383.    Capture
  384. endif
  385.  
  386. ;----- CD ROM Machine
  387.  
  388. ;if NetAddress = '255:2'
  389. ;   WriteBat ('CD\PUBLIC\MA')
  390. ;   WriteBat ('MSCDEX.EXE /D:MSCD003 /M:12')
  391. ;   WriteBat ('MAR C:\ RW=/ /C')
  392. ;endif
  393.  
  394. ;----- Vicki's Printer
  395.  
  396. ;if NetAddress = '255:65'
  397. ;   WriteBat ('RPRINTER TYME 3')
  398. ;endif
  399.  
  400. ;----- Grace's Printer
  401.  
  402. ;if NetAddress = '255:68'
  403. ;   WriteBat ('RPRINTER TYME 2')
  404. ;   WriteBat ('LA /L' )
  405. ;endif
  406.  
  407. ;----- Pos Printer
  408.  
  409. ;if NetAddress = '255:6'
  410. ;   WriteBat ('RPRINTER TYME 4')
  411. ;endif
  412.  
  413. ;----- Marc's Home Computer
  414.  
  415. if NetAddress = '254:41'
  416.    SetEnv ('PATH=C:\TURBO5;C:\;' + ReadEnv('PATH'))
  417. endif
  418.  
  419. WriteBat ('CLS' )
  420.  
  421. ;----- If Y: has a BAT file matching the UserName the run it.
  422.  
  423. if ExistFile ('Y:' + UserName + '.BAT')
  424.    WriteBat ('DROPTO ' + BatName + ' Y:' + UserName)
  425. endif
  426.  
  427. ;----- If AUTO.BAT exists in the users home directory then run it.
  428.  
  429. if ExistFile('AUTO.BAT')
  430.    WriteBat ('DROPTO ' + BatName + ' AUTO')
  431. endif
  432.  
  433. FileClose(BatFile)
  434.  
  435. ExitMenu
  436.  
  437.  
  438. ;----- Procedure Definitions
  439.  
  440. Procedure WriteBat (BatLine)
  441.    FileWriteln(BatFile,BatLine)
  442. EndProc
  443.  
  444.  
  445. Procedure Pause
  446.    WriteBat ('PAUSE')
  447. EndProc
  448.  
  449.  
  450. Procedure SideKick
  451.    WriteBat ('Return > NUL')
  452.    WriteBat ('SwapSk/N/G/D' + HomeDir + ' >NUL')
  453.    WriteBat ('Sk')
  454. EndProc
  455.  
  456.  
  457. Procedure Capture
  458.    WriteBat ('capture q=printq_0 c=1 nb nff ti=5 l=1>NUL')
  459.    WriteBat ('capture q=printq_1 c=1 nb nff ti=5 l=2>NUL')
  460. EndProc
  461.