WKLoginImpl.mesa
Copyright Ó 1990 by Xerox Corporation. All rights reserved.
Swinehart, August 6, 1990 6:06:49 pm PDT
DIRECTORY
Commander USING [CommandProc, Register],
Idle USING [ IsIdle ],
IO,
RuntimeError USING [ UNCAUGHT ],
UserCredentials USING [ Login ]
;
WKLoginImpl: CEDAR PROGRAM
IMPORTS Commander, Idle, IO, RuntimeError, UserCredentials ~ {
disableIdleReqt: BOOLFALSE;
LoginCmd: Commander.CommandProc = {
[cmd: Commander.Handle] RETURNS [result: REF ANYNIL, msg: ROPENIL]
StartInteraction: PROC RETURNS[in, out: IO.STREAM] = { RETURN[cmd.in, cmd.err]; };
EndInteraction: PROC[in, out: IO.STREAM] = { NULL };
IF ~disableIdleReqt AND ~Idle.IsIdle[] THEN RETURN[$Failed, "** Can't change credentials when machine is not idle. **"];
UserCredentials.Login[startInteraction: StartInteraction, endInteraction: EndInteraction,
options: [alwaysInteract: TRUE]];
};
Commander.Register["WKLogin", LoginCmd, "Really log in on this machine. Valid only when machine is idle."];
}.