home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / snip0693.zip / CANWRITE.PRG < prev    next >
Text File  |  1992-09-05  |  2KB  |  68 lines

  1. ════════════════════════════════════════════════════════════════════════════════
  2.  Area:    CLIPPER
  3.  Date:    13 Aug 92  21:32:40  Public           
  4.  From:    Phil Barnett             
  5.  To:      Scott Feibelman          
  6.  Subject: CLIPPER/NOVELL                                              
  7. ────────────────────────────────────────────────────────────────────────────────
  8. In a message of <Aug 11 15:32>, Scott Feibelman (1:387/822) writes: 
  9.  >    With or without Novell running, Clipper does not like a read-only 
  10.  >attribute on its databases.  With read-only set, Clipper refuses to open 
  11.  >any files...It just blows out to DOS.  My Novell problem comes from 
  12.  >trying to limit certain users to read-only priviledges.  
  13.  >  
  14.  >     Why?  My best answer would be to assume that Clipper assumes that if 
  15.  >you're opening a file then you are probably going to write to that file.  
  16.  >If this is the case, wattajip!  How do you set read-only users?  
  17.  
  18. You don't leave it up to dos, you log users into your program and control
  19. writeback access yourself. Not difficult at all.
  20.  
  21. Build a userlist with access levels
  22.  
  23. Use Netlib or Novlib or one of many others to find out the login name. 
  24. (or have the user log into the program on entry)
  25.  
  26. userid := whatever you decide and however you get it (in top module only)
  27.  
  28. access(userid)
  29.  
  30. later, (anywhere in the code) surround all rights with something like this...
  31.  
  32. if write()
  33.   replace xxx with mxxx
  34. endif
  35.  
  36. write() is a function in the access rights .prg that access the static variable
  37. the access function sets. default it to .f.
  38.  
  39. something like:
  40.  
  41. ------------clip here--------------
  42.  
  43. static can_write := .f.
  44.  
  45. function access(userid)
  46.  
  47. select userlist
  48. seek( userid )
  49.  
  50. if found()
  51.   can_write := field->rights
  52. else
  53.   can_write := .f.
  54. endif
  55.  
  56. return nil
  57.  
  58. function write()
  59.  
  60. return can_write
  61.  
  62. ------------- end of functions -------------
  63.  
  64. Good luck! 
  65.  
  66. --- msged 2.07
  67.  * Origin: The Heap - Apopka,FL  (1:363/18.2)
  68.