anchor.diff:  
   class function TUser.ComparePasswd(plain:string; hash:string):boolean;
   begin
  - if (hash = TUser.GenerateHash(AnsiString(plain))) then
  -  Result := true
  - else
  -  Result := false;
  + Result := (hash = TUser.GenerateHash(AnsiString(plain)));
   end;//function
   
   class function TUser.GenerateHash(plain:AnsiString):string;
  
positive.code: begin
   if (Self.freg = state) then Exit();
   Self.freg := state;
   if (Self.freg) then
    begin
     // odpojit vsechny regulatory uzivatele
    end;
  end;//procedure
  
  ////////////////////////////////////////////////////////////////////////////////
  
negative.code:       procedure SaveData(ini:TMemIniFile; section:string);
        procedure SaveStat(ini:TMemIniFile; section:string);
  
        function GetRights(OblR:string):TORCOntrolRights;                         // vrati opravneni k dane oblasti rizeni
        procedure SetRights(OblR:string; rights:TORControlRights);                // nastavi opravneni dane oblasti rizeni
  
        property password:string read fpasswd write SetPasswd;
        property ban:boolean read fban write SetBan;
        property regulator:boolean read freg write SetReg;
  
        class function ComparePasswd(plain:string; hash:string):boolean;          // kontroluje shodu hesel; true poku hesla sedi, jinak false
        class function GenerateHash(plain:AnsiString):string;                     // generuje hash hesla
    end;//class TUser
  
  implementation
  
  uses TOblsRizeni, TOblRizeni, TCPServerOR;
  
  ////////////////////////////////////////////////////////////////////////////////
  
  