Informační tok Funkční structura Datová struktura ER model Modulová struktura Typová struktura Relační model Dokumentace


[Celkový datový model] [Funkce] [Externí rohraní] [Stavové diagramy] [Datové elementy] [Entity] [Relace]
[Databáze] [Události] [Materiály] [Generovací funkce] [Vyhodnocovací funkce] [Konfigurace] [Uživatelé] [Projekt] [Home]



Vyhodnocovací funkce
GetPermissionForObjecttype
(Administration)


Vytvořeno: 01-13-1997 14:01:02
Poslední změna: 12-11-2002 09:48:08

Auxiliary Function: Determines for an objecttype in different states all permissions assigned to users and groups

Modul

Module: Administration

Zdrojový kód:

PROCEDURE GetPermissionForObjecttype(objecttype$)
BEGIN
/*
   Lists all permissions for objecttype
*/
  rbyte$="";
  permission$="";
  permission%=0;

  FOREACH Objectstate WHERE Objecttype = objecttype$ ORDER BY State DO
     PRINT{"Arial",10,BOLD} "Stav: ", State, NL;
     permission%=0;
     i%=2;
     WHILE i% < 8 DO
        CALL GetOperationName(objecttype$,i%,permission$);
        founduser%=0;
        FOREACH Userpermission WHERE Objecttype = objecttype$
                                 AND State = Objectstate.State ORDER BY User DO
            permission%=1;
            CALL Number2Bitmask(operation,rbyte$);
            IF MID$(rbyte$,i%,1)="1" THEN
               IF founduser% = 0 THEN
                  PRINT{"Arial",10} NL;
                  PRINT{"Arial",10} TAB(4), "Práva: ";
                  PRINT{"Arial",10} permission$;
                  PRINT{"Arial",10} TAB(35),"Uživatelé: ";
               END
               FOR User WHERE Login=Userpermission.User DO
                  PRINT{"Arial",10} TAB(45), Fullname, NL;
               END
               founduser%=1;
            END
        END
       
        foundgroup%=0;
        FOREACH Grouppermission WHERE Objecttype = objecttype$
                                  AND State = Objectstate.State ORDER BY Group DO
            permission%=1;
            CALL Number2Bitmask(operation,rbyte$);
            IF MID$(rbyte$,i%,1)="1" THEN
               IF foundgroup%=0 THEN
                   IF founduser%=0 THEN
                       PRINT{"Arial",10} NL;
                       PRINT{"Arial",10} TAB(4), "Práva: ";
                       PRINT{"Arial",10} permission$;
                   END
                   PRINT{"Arial",10} TAB(35),"Skupiny uživatelů: ";
               END
               PRINT{"Arial",10} TAB(45),Group,NL;
               foundgroup%=1;
            END
        END
        i%=i%+1;
     END
     IF permission%=0 THEN
        PRINT{"Arial",10,ITALIC} TAB(4), "Žádná práva.",NL;
     END
     PRINT {"Arial",10} NL;
  END
  
  PRINT{"Arial",10,BOLD} "v každém stavu ", NL;
  i%=2;
  permission%=0;
  WHILE i% < 8 DO
    CALL GetOperationName(Objecttype$,i%,permission$);
    founduser%=0;
    FOREACH Userpermission WHERE Objecttype = objecttype$
                             AND State = "" ORDER BY User DO
        permission%=1;
        CALL Number2Bitmask(operation,rbyte$);
        IF MID$(rbyte$,i%,1)="1" THEN
           IF founduser% = 0 THEN
               PRINT{"Arial",10} NL;
               PRINT{"Arial",10} TAB(4), "Práva: ";
               PRINT{"Arial",10} permission$;
               PRINT{"Arial",10} TAB(35),"Uživatelé: ";
           END
           FOR User WHERE Login=Userpermission.User DO
               PRINT{"Arial",10} TAB(45),Fullname,NL;
           END
           founduser%=1;
        END
    END
    
    foundgroup%=0;
    FOREACH Grouppermission WHERE Objecttype = objecttype$
                              AND State = "" ORDER BY Group DO
        permission%=1;
        CALL Number2Bitmask(operation,rbyte$);
        IF MID$(rbyte$,i%,1)="1" THEN
           IF foundgroup%=0 THEN
               IF founduser%=0 THEN
                   PRINT{"Arial",10} NL;
                   PRINT{"Arial",10} TAB(4), "Práva: ";
                   PRINT{"Arial",10} permission$;
               END
               PRINT{"Arial",10} TAB(35),"Skupiny uživatelů: ";
           END
           PRINT{"Arial",10} TAB(45),Group,NL;
           foundgroup%=1;
        END
    END
    i%=i%+1;
  END
  IF permission%=0 THEN
     PRINT{"Arial",10,ITALIC} TAB(4),"Žádná práva.",NL;
  END
  PRINT{"Arial",10} NL;
  
END


Generováno: 16.10.2003 7:41 Systém: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\Projekt03.csf Generováno systémem case/4/0
Vygeneroval: Administrator Soubor: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\html\30652.htm (C) microTOOL GmbH 2002