What's the best way...

Walker, Chris ChrisWalker@tateandlyle.com
Thu, 18 Mar 1999 14:48:48 -0000


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01BE714E.CD971350
Content-Type: text/plain

My approach in the past was to write each screen so that it compiles three
or more screens: the first is a stub screen that checks the user security
and runs the read-only or read-write version of the "real" screen.  

Now that screen names can be stored in variables, I've given up this
approach in favour of a data-driven menu that retrieves the screen name and
access restrictions from database tables.  I've also given up ASCs in favour
of access control stored in the database.

The variant versions are produced by conditional compiles.  I used to
initiate the CCs with "$qdesign cc=..." statements in the source so that
each screen spawned its own conditional compilations, but this got so
complicated that I replaced it with a DCL procedure that picks up the CC
parameters from a comment in the first line of the screen.

Chris Walker
Tate & Lyle
London

> -----Original Message-----
> From:	Chris Sharman [SMTP:Chris.Sharman@ccagroup.co.uk]
> Sent:	Thursday, March 18, 1999 9:13 AM
> To:	mao@krifapost.dk
> Cc:	Chris.Sharman@ccagroup.co.uk; powerh-l@lists.swau.edu
> Subject:	Re: What's the best way...
> 
> >>What's the best way to have a single screen serve two sets of users
> (based
> >>on user class) where one user class can do everything (enter, update,
> >>delete) and the other user class can only inquire on existing records?
> 
> It's a very good question. I've never found a very good answer. It seems
> like
> the sort of thing application security ought to do, but I've never seen it
> work. Also the 'readonly' users will need write access to the files to run
> the
> common Quick screen: it would be nice if Quick just 'fell back' to a
> readonly
> mode when it couldn't get write access to the data: perhaps a screen
> "allowreadonly" clause or something.
> 
> >What about having two sets of keys in your program - One for those who
> can
> >do everything
> >(The default keys, level 1) and one for those who only can search and
> watch
> >the data (level 2),
> >and then check in your INIT and POSTFIND procedures:
> 
> Wouldn't work on VMS, unless you disabled all the standard keys. Don't you
> have
> them on other platforms ?
> 
> We make sure find-only users start in find mode, and put a catch in the
> pre-update to stop them. It's imperfect, but it does the job.
> If I wanted perfection, I suppose I'd go for one source, two .qkc's:
> 
> @if readonly
> screen myread activities find ..
> @else
> screen myfull ...
> @endif
> ...
> You could also put (conditional) "open read" on all the files.
> 
> $ qdesign auto=myscreen [cc=readonly]
> 
> A similar effect could be achieved with use statements, if you wanted to
> avoid
> cc for the sake of autobuilds: 2 * 2 line files + one main source.
> 
> screen myread activities find ...
> use therest
> 
> screen myfull ...
> use therest
> 
> <therest>
> 
> ______________________________________________________________________
> Chris Sharman			Chris.Sharman@CCAgroup.co.uk
> CCA Stationery Ltd, Eastway, Fulwood, Preston, Lancashire, PR2 9WS.
> = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
> =
> Subscribe: "subscribe powerh-l" in message body to
> majordomo@lists.swau.edu
> Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
> powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
> This list is closed, thus to post to the list, you must be a subscriber.

------_=_NextPart_000_01BE714E.CD971350
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

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
8ijgHpAisnDzBWWHJdD/GbEHgVUSKNAEcG8DAMC6UN8LIANwYZBmLyaxVQCA8vn/IpHzv/TL9e9m
bmWfZqQfQn5nPSFp0SlRdFEkIG70Yu0bAC77s3CxLvz2OBYfUf/7sh9Cc4CdMepRGeAhYBqi32IC
iob7sipArCJtj2LQAl+yYfMFgMCV1BbRAAbAAwAuAAAAAAALAAIAAQAAAB4AcAABAAAAFwAAAFdo
YXQncyB0aGUgYmVzdCB3YXkuLi4AAAIBcQABAAAAGwAAAAG+cSD+ip8K1R3cnhHSlXsACMfqkjkA
ANG6wABAADkA4O83bk5xvgEDAPE/CQQAAB4AMUABAAAACAAAAFdBTEtFUkMAAwAaQAAAAAAeADBA
AQAAAAgAAABXQUxLRVJDAAMAGUAAAAAAAwD9P+QEAAADACYAAAAAAAMANgAAAAAAAgFHAAEAAAA9
AAAAYz1HQjthPUlCTVg0MDA7cD1UQVRFICsgTFlMRTtsPURFWEVYQzAxLTk5MDMxODE0NDg0OFot
MTE3Mjg0AAAAAEAASACAL4TZJXG+AQIB+T8BAAAAWAAAAAAAAADcp0DIwEIQGrS5CAArL+GCAQAA
AAAAAAAvTz1TVUdBUi9PVT1VTklURUQgTU9MQVNTRVMgTE9ORE9OL0NOPVJFQ0lQSUVOVFMvQ049
V0FMS0VSQwAeAPg/AQAAAA4AAABXYWxrZXIsIENocmlzAAAAHgA4QAEAAAAIAAAAV0FMS0VSQwAC
Afs/AQAAAFgAAAAAAAAA3KdAyMBCEBq0uQgAKy/hggEAAAAAAAAAL089U1VHQVIvT1U9VU5JVEVE
IE1PTEFTU0VTIExPTkRPTi9DTj1SRUNJUElFTlRTL0NOPVdBTEtFUkMAHgD6PwEAAAAOAAAAV2Fs
a2VyLCBDaHJpcwAAAB4AOUABAAAACAAAAFdBTEtFUkMAQAAHMPBkWGhOcb4BQAAIMFATl81Ocb4B
HgA9AAEAAAAFAAAAUkU6IAAAAAAeAB0OAQAAABcAAABXaGF0J3MgdGhlIGJlc3Qgd2F5Li4uAAAe
ADUQAQAAADIAAAA8MTE4OEJFRkE2MTM3RDIxMTg2RTQwMDA4QzdGQUMxQzQxRDIxQkVAREVYRVhD
MDE+AAAACwApAAAAAAALACMAAAAAAAMABhDsXQFcAwAHEOoJAAADABAQAAAAAAMAERABAAAAHgAI
EAEAAABlAAAATVlBUFBST0FDSElOVEhFUEFTVFdBU1RPV1JJVEVFQUNIU0NSRUVOU09USEFUSVRD
T01QSUxFU1RIUkVFT1JNT1JFU0NSRUVOUzpUSEVGSVJTVElTQVNUVUJTQ1JFRU5USEFUQwAAAAAC
AX8AAQAAADIAAAA8MTE4OEJFRkE2MTM3RDIxMTg2RTQwMDA4QzdGQUMxQzQxRDIxQkVAREVYRVhD
MDE+AAAAQQM=

------_=_NextPart_000_01BE714E.CD971350--
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Subscribe: "subscribe powerh-l" in message body to majordomo@lists.swau.edu
Unsubscribe: "unsubscribe powerh-l" in message to majordomo@lists.swau.edu
powerh-l@lists.swau.edu is gatewayed one-way to bit.listserv.powerh-l
This list is closed, thus to post to the list, you must be a subscriber.