Changeset 605


Ignore:
Timestamp:
Dec 8, 2013, 4:38:25 PM (11 years ago)
Author:
chronos
Message:
  • Přidáno: Podpora pro ověřování zadaných dat pro IPv4, IPv6 a MAC adresu.
Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/Application/FormClasses.php

    r604 r605  
    6464      'NextNumber' => array('Type' => 'Integer', 'Caption' => 'Další číslo', 'Default' => ''),       
    6565      'YearPrefix' => array('Type' => 'Boolean', 'Caption' => 'Rok jako předpona', 'Default' => ''),       
     66      'Operations' => array('Type' => 'TFinanceOperationListDocumentLine', 'Caption' => 'Finanční operace', 'Default' => ''),
     67      'Invoices' => array('Type' => 'TFinanceInvoiceListDocumentLine', 'Caption' => 'Faktury', 'Default' => ''),
    6668    ),
    6769  ),
     
    744746    'Filter' => '1',
    745747  ),
     748  'TFinanceOperationListDocumentLine' => array(
     749    'Type' => 'ManyToOne',
     750    'Table' => 'FinanceOperation',
     751    'Id' => 'Id',
     752    'Ref' => 'DocumentLine',
     753    'Filter' => '1',
     754  ),
     755  'TFinanceInvoiceListDocumentLine' => array(
     756    'Type' => 'ManyToOne',
     757    'Table' => 'FinanceInvoice',
     758    'Id' => 'Id',
     759    'Ref' => 'DocumentLine',
     760    'Filter' => '1',
     761  ),
    746762);
    747763}
  • trunk/Application/Version.php

    r603 r605  
    11<?php
    22
    3 $Revision = 603; // Subversion revision
     3$Revision = 605; // Subversion revision
    44$DatabaseRevision = 601; // SQL structure revision
    5 $ReleaseTime = '2013-12-07';
     5$ReleaseTime = '2013-12-08';
  • trunk/Common/Form/Form.php

    r581 r605  
    243243    return($Values);
    244244  }
     245
     246  function Validate()
     247  {
     248    $Values = array();
     249    foreach($this->Definition['Items'] as $Index => $Item)
     250    if((!array_key_exists($Item['Type'], $this->FormManager->FormTypes) or
     251    (array_key_exists($Item['Type'], $this->FormManager->FormTypes) and
     252    ($this->FormManager->FormTypes[$Item['Type']]['Type'] != 'ManyToOne'))) and
     253    (!array_key_exists('ReadOnly', $Item) or
     254    (array_key_exists('ReadOnly', $Item) and
     255    ($Item['ReadOnly'] != true))))
     256    {     
     257        //if(array_key_exists($Context.$Index, $_POST))
     258        if(array_key_exists($Item['Type'], $this->FormManager->FormTypes))
     259        {           
     260          if(!array_key_exists($Item['Type'], $this->FormManager->Type->TypeDefinitionList))
     261            $this->FormManager->Type->RegisterType($Item['Type'], '',
     262              $this->FormManager->FormTypes[$Item['Type']]);
     263          $CustomType = $this->FormManager->FormTypes[$Item['Type']]['Type'];
     264          if($CustomType == 'Reference')
     265            $UseType = 'OneToMany';
     266          else if($CustomType == 'Enumeration')
     267            $UseType = 'Enumeration';
     268        } else $UseType = $Item['Type'];
     269       
     270        $Parameters = array('Value' => $this->Values[$Index]);
     271        if(array_key_exists('Null', $Item)) $Parameters['Null'] = $Item['Null'];
     272          else $Parameters['Null'] = false;
     273        if(!$this->FormManager->Type->ExecuteTypeEvent($UseType, 'Validate',
     274          $Parameters)) throw new Exception('not validated');
     275    }
     276    return($Values);
     277  }
    245278}
     279
    246280
    247281function MakeLink($Target, $Title)
  • trunk/Common/Form/Types/Base.php

    r601 r605  
    6060    return($Output);
    6161  }
     62 
     63  function Validate($Item)
     64  {
     65        return(true);
     66  }
    6267}
  • trunk/Common/Form/Types/IPv4Address.php

    r548 r605  
    2121    return($_POST[$Item['Name']]);
    2222  }
     23 
     24  function Validate($Item)
     25  {
     26        if($Item['Null'] and ($Item['Value'] == '')) return(true);
     27        return(filter_var($Item['Value'], FILTER_VALIDATE_IP, array('flags' => FILTER_FLAG_IPV4)));
     28  }
    2329}
  • trunk/Common/Form/Types/Type.php

    r574 r605  
    1919include(dirname(__FILE__).'/GPS.php');
    2020include(dirname(__FILE__).'/IPv4Address.php');
     21include(dirname(__FILE__).'/IPv6Address.php');
    2122include(dirname(__FILE__).'/Color.php');
    2223include(dirname(__FILE__).'/RandomHash.php');
     24include(dirname(__FILE__).'/MacAddress.php');
    2325
    2426class Type
     
    5254      'Color' => array('Name' => 'Color', 'Class' => 'Color', 'ParentType' => '', 'Parameters' => array()),
    5355      'RandomHash' => array('Name' => 'RandomHash', 'Class' => 'RandomHash', 'ParentType' => '', 'Parameters' => array()),
     56      'MacAddress' => array('Name' => 'MacAddress', 'Class' => 'MacAddress', 'ParentType' => '', 'Parameters' => array()),
     57      'IPv6Address' => array('Name' => 'IPv6Address', 'Class' => 'IPv6Address', 'ParentType' => '', 'Parameters' => array()),
    5458    );
    5559  }
  • trunk/Modules/Finance/Finance.php

    r604 r605  
    325325    $this->System->RegisterPage(array('finance', 'zivnost'), 'PageFinanceTaxFiling');
    326326
    327     $this->System->FormManager->RegisterClass('NewPayment', array(
    328       'Title' => 'Nová platba',
    329       'Items' => array(
    330         'DocumentLine' => array('Type' => 'TDocumentLine', 'Caption' => 'Dokladová řada', 'Default' => 3),
    331         'Time' => array('Type' => 'Date', 'Caption' => 'Čas', 'Default' => 'Now'),
    332         'Subject' => array('Type' => 'TFinanceSubject', 'Caption' => 'Subjekt', 'Default' => 0),
    333         'Value' => array('Type' => 'Float', 'Caption' => 'Částka [Kč]', 'Default' => '0', 'Suffix' => 'Kč'),
    334         'Text' => array('Type' => 'String', 'Caption' => 'Popis', 'Default' => 'Vklad'),
    335         'Cash' => array('Type' => 'Boolean', 'Caption' => 'Hotovost', 'Default' => '0'),
    336         'Taxable' => array('Type' => 'Boolean', 'Caption' => 'Ovlivňující daňový základ', 'Default' => '1'),
    337         //'BankAccount' => array('Type' => 'TBankAccount', 'Caption' => 'Bankovní účet', 'Default' => '1'),
    338       ),
    339     ));
    340     $this->System->FormManager->RegisterClass('NewInvoice', array(
    341       'Title' => 'Nová faktura',
    342       'Items' => array(
    343         'DocumentLine' => array('Type' => 'TDocumentLine', 'Caption' => 'Dokladová řada', 'Default' => 5),
    344         'TimeCreation' => array('Type' => 'Date', 'Caption' => 'Čas vytvoření', 'Default' => 'Now'),
    345         'TimeDue' => array('Type' => 'Date', 'Caption' => 'Čas splatnosti', 'Default' => 'Now'),
    346         'Subject' => array('Type' => 'TFinanceSubject', 'Caption' => 'Subjekt', 'Default' => 0),
    347         'Text' => array('Type' => 'String', 'Caption' => 'Popis', 'Default' => 'Nákup zařízení'),
    348         'Value' => array('Type' => 'Float', 'Caption' => 'Částka [Kč]', 'Default' => '0', 'Suffix' => 'Kč'),
    349         //'Items' => array('Type' => 'Array', 'Caption' => 'Položky', 'ItemClass' => 'FinanceInvoiceItem'),
    350       ),
    351     ));
    352327    $this->System->FormManager->RegisterClass('FinanceOperation', array(
    353328      'Title' => 'Finanční operace',
  • trunk/Modules/IS/IS.php

    r602 r605  
    8484        $Form->LoadValuesFromForm();
    8585        try {
     86          $Form->Validate();
    8687          $Form->SaveValuesToDatabase($Id);
    8788          $Output .= $this->SystemMessage('Úprava položky', 'Položka upravena');
     
    143144        $Form = new Form($this->System->FormManager);
    144145        $Form->SetClass($Table);
    145         $Form->LoadValuesFromForm();
     146        $Form->LoadValuesFromForm();       
    146147        try {
     148          $Form->Validate();
    147149          if(array_key_exists('BeforeInsert', $Form->Definition))
    148150          {
  • trunk/Modules/Network/Network.php

    r601 r605  
    201201            'Name' => array('Type' => 'String', 'Caption' => 'Jméno', 'Default' => ''),
    202202            'Type' => array('Type' => 'TNetworkInterfaceType', 'Caption' => 'Typ', 'Default' => '0'),
    203             'MAC' => array('Type' => 'String', 'Caption' => 'Fyzická adresa (MAC)', 'Default' => ''),
    204             'LocalIP' => array('Type' => 'String', 'Caption' => 'IPv4', 'Default' => ''),
    205             'IPv6' => array('Type' => 'String', 'Caption' => 'IPv6', 'Default' => ''),
    206             'ExternalIP' => array('Type' => 'String', 'Caption' => 'Veřejná IPv4', 'Default' => ''),
     203            'MAC' => array('Type' => 'MacAddress', 'Caption' => 'Fyzická adresa (MAC)', 'Default' => ''),
     204            'LocalIP' => array('Type' => 'IPv4Address', 'Caption' => 'IPv4', 'Default' => ''),
     205            'IPv6' => array('Type' => 'IPv6Address', 'Caption' => 'IPv6', 'Default' => '', 'Null' => true),
     206            'ExternalIP' => array('Type' => 'IPv4Address', 'Caption' => 'Veřejná IPv4', 'Default' => '', 'Null' => true),
    207207            'Device' => array('Type' => 'TNetworkDevice', 'Caption' => 'Zařízení', 'Default' => ''),
    208208            'Online' => array('Type' => 'Boolean', 'Caption' => 'Běží', 'Default' => '0', 'ReadOnly' => true),
     
    230230            'AddressRange' => array('Type' => 'String', 'Caption' => 'Rozsah adres', 'Default' => ''),
    231231            'Mask' => array('Type' => 'Integer', 'Caption' => 'Prefix', 'Default' => ''),
    232             'DHCP' => array('Type' => 'String', 'Caption' => 'DHCP', 'Default' => ''),
    233             'Gateway' => array('Type' => 'String', 'Caption' => 'Brána', 'Default' => ''),
    234             'WINS' => array('Type' => 'String', 'Caption' => 'WINS', 'Default' => ''),
     232            'DHCP' => array('Type' => 'IPv4Address', 'Caption' => 'DHCP', 'Default' => ''),
     233            'Gateway' => array('Type' => 'IPv4Address', 'Caption' => 'Brána', 'Default' => ''),
     234            'WINS' => array('Type' => 'IPv4Address', 'Caption' => 'WINS', 'Default' => ''),
    235235            'DNS' => array('Type' => 'String', 'Caption' => 'DNS', 'Default' => ''),
    236236            'Domain' => array('Type' => 'String', 'Caption' => 'Doména', 'Default' => ''),
  • trunk/Modules/News/News.php

    r600 r605  
    4848        'Enclosure' => array('Type' => 'String', 'Caption' => 'Přílohy', 'Default' => ''),
    4949        'User' => array('Type' => 'TUser', 'Caption' => 'Uživatel', 'Default' => ''),
    50         'IP' => array('Type' => 'String', 'Caption' => 'IP adresa', 'Default' => '', 'ReadOnly' => true),
     50        'IP' => array('Type' => 'IPv4Address', 'Caption' => 'IP adresa', 'Default' => '', 'ReadOnly' => true),
    5151        'Link' => array('Type' => 'Hyperlink', 'Caption' => 'Odkaz', 'Default' => ''),
    5252      ),
  • trunk/Modules/User/User.php

    r594 r605  
    511511        'Password' => array('Type' => 'Password', 'Caption' => 'Heslo', 'Default' => '', 'Method' => 'DoubleSHA1'),
    512512        'Email' => array('Type' => 'String', 'Caption' => 'E-mail', 'Default' => ''),
    513         'LastIpAddress' => array('Type' => 'String', 'Caption' => 'Poslední IP adresa', 'Default' => '', 'ReadOnly' => true),
     513        'LastIpAddress' => array('Type' => 'IPv4Address', 'Caption' => 'Poslední IP adresa', 'Default' => '', 'ReadOnly' => true),
    514514        'LastLoginTime' => array('Type' => 'DateTime', 'Caption' => 'Poslední čas přihlášení', 'Default' => '', 'ReadOnly' => true),
    515515        'RegistrationTime' => array('Type' => 'DateTime', 'Caption' => 'Čas registrace', 'Default' => ''),
  • trunk/ToDo.txt

    r581 r605  
    3131  * API pro napojení jiných systémů
    3232  * Oblíbené položky nabídky uživatelů
     33  * Historie nabídky uživatelů
    3334  * Předvolené sestavy filtrů, řazení, pořadí sloupců
     35  * Kontrola vstupů formulářů
    3436- Network: Udělat fond IP adres, zobrazit jejich užití, umožnit automatické přiřazení volných
    3537- Network: Vnější veřejnou IP převést do samostatné tabulky NetworkNAT
     
    4345- System: Přidat podporu pro překlad do jiných jazyků (angličtiny)
    4446- User: Řešit nějak lépe obecně systém oprávnění.
     47- Podpora více firem
    4548
    4649==Pro zveřejnění přepracovat==
Note: See TracChangeset for help on using the changeset viewer.