home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / new / dev / obero / oberon / projectoberonsrc / users.mod (.txt) < prev    next >
Oberon Text  |  1994-10-18  |  2KB  |  65 lines

  1. Syntax10.Scn.Fnt
  2. MODULE Users;   (*NW 2.2.89 / 25.8.91*)
  3.     IMPORT Texts, Viewers, Oberon, MenuViewers, TextFrames, Core;
  4.     CONST TAB = 9X;
  5.     VAR W: Texts.Writer;
  6.     PROCEDURE List*;
  7.         VAR x, y, i: INTEGER;
  8.             protected: BOOLEAN;
  9.             count: LONGINT;
  10.             T: Texts.Text;
  11.             V: Viewers.Viewer;
  12.             id: Core.ShortName; name: Core.LongName;
  13.     BEGIN i := 0; T := TextFrames.Text("");
  14.         Oberon.AllocateUserViewer(Oberon.Par.frame.X, x, y);
  15.         V := MenuViewers.New(
  16.                 TextFrames.NewMenu("Users.Text", "System.Close  Edit.Store"),
  17.                 TextFrames.NewText(T, 0), TextFrames.menuH, x, y);
  18.         WHILE i < Core.NofUsers() DO
  19.             Core.GetUser(i, id, name, count, protected);
  20.             Texts.WriteInt(W, i, 4); Texts.Write(W, TAB);
  21.             IF protected THEN Texts.Write(W, "#") END ;
  22.             Texts.WriteString(W, id); Texts.Write(W, TAB); Texts.WriteString(W, name);
  23.             Texts.WriteInt(W, count, 8); Texts.WriteLn(W); INC(i)
  24.         END ;
  25.         Texts.Append(T, W.buf)
  26.     END List;
  27.     PROCEDURE Insert*;
  28.         VAR id: Core.ShortName; name: Core.LongName; S: Texts.Scanner;
  29.     BEGIN Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S);
  30.         IF S.class = Texts.Name THEN
  31.             COPY(S.s, id); Texts.Scan(S);
  32.             IF S.class = Texts.Name THEN COPY(S.s, name); Core.InsertUser(id, name) END
  33.         END ;
  34.         Core.BackupUsers
  35.     END Insert;
  36.     PROCEDURE Delete*;
  37.         VAR id: Core.ShortName; S: Texts.Scanner;
  38.     BEGIN Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S);
  39.         IF S.class = Texts.Name THEN COPY(S.s, id); Core.DeleteUser(id) END ;
  40.         Core.BackupUsers
  41.     END Delete;
  42.     PROCEDURE ClearPassword*;
  43.         VAR id: Core.ShortName; S: Texts.Scanner;
  44.     BEGIN Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos); Texts.Scan(S);
  45.         IF S.class = Texts.Name THEN COPY(S.s, id); Core.ClearPassword(id) END ;
  46.         Core.BackupUsers
  47.     END ClearPassword;
  48.     PROCEDURE ClearCounts*;
  49.     BEGIN Core.SetCounts(0); Core.BackupUsers
  50.     END ClearCounts;
  51.     PROCEDURE Init*;
  52.         VAR id: Core.ShortName; name: Core.LongName; S: Texts.Scanner;
  53.     BEGIN Texts.OpenScanner(S, Oberon.Par.text, Oberon.Par.pos);
  54.         Core.PurgeUsers(0);
  55.         LOOP Texts.Scan(S);
  56.             IF S.class # Texts.Name THEN EXIT END ;
  57.             COPY(S.s, id); Texts.Scan(S);
  58.             IF S.class # Texts.Name THEN EXIT END ;
  59.             COPY(S.s, name); Core.InsertUser(id, name)
  60.         END ;
  61.         Core.BackupUsers
  62.     END Init;
  63. BEGIN Texts.OpenWriter(W)
  64. END Users.
  65.