Ignore:
Timestamp:
Jun 18, 2013, 6:58:22 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Uživatelská podpora přepracována na aplikační modul.
Location:
trunk/Modules/User
Files:
1 added
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Modules/User/Options.php

    r544 r547  
    11<?php
    2 include('includes/global.php');
    32
    4 function UserOptionsFrom()
     3class PageUserOptions extends Page
    54{
    6   global $User, $System;
    7  
    8   $Output = '<form action="Options.php?action=save" method="post">
    9   <fieldset><legend>Nastavení uživatele</legend>
    10   <table>
    11     <tr><td>Email:</td><td><input type="text" name="Email" value="'.$User->Email.'" /></td></tr>
    12     <tr><td>Původní heslo:</td><td><input type="password" name="OldPass" /></td></tr>
    13     <tr><td>Nové heslo:</td><td><input type="password" name="NewPass" /></td></tr>
    14     <tr><td>Nové heslo pro potvrzení: </td><td><input type="password" name="NewPass2" /></td></tr>
    15     <tr><td>Normálně budu překládat do: </td><td>'.WriteLanguages($User->Language).'</td></tr>
    16     <tr><td>Po uložení překladu přesměrovat: </td><td>';   
    17    $Output .= '<select name="redirecting">'.
    18      '<option value="0">Nikam</option>'.
    19      '<option value="1"';
    20      if($User->Redirecting == '1') $Output .= ' selected="selected"';
    21      $Output .= '>Na nepřeložené</option>';
    22      $Output .= '<option value="2"';
    23      if($User->Redirecting == '2') $Output .= ' selected="selected"';
    24      $Output .= '>Na další překlad</option>';
    25      $Output .= '<option value="3"';
    26      if($User->Redirecting == '3') $Output .= ' selected="selected"';
    27      $Output .= '>Na předchozí překlad</option>';
    28      $Output .= '</select>';   
    29    
    30      $Output .= '</td></tr>'.
    31        '<tr><td>Upřednostněná verze klienta: </td><td>'.ClientVersionSelection($User->PreferredVersion).'</td></tr>'.
    32        '<tr><td>Veřejný text profilu:</td><td>'.
    33        '<textarea name="info" cols="60" rows="10">'.$User->Info.'</textarea></td></tr>'.
    34        '<tr><td colspan="2"><input type="submit" value="Uložit" /></td></tr>'.
    35        '</table></fieldset>'.
    36        '</form>';
    37 
    38     $Output .= '  <fieldset><legend>Překladatelský tým</legend>';
    39     $DbResult = $System->Database->query('SELECT `Id`, `Name` FROM `Team`');
    40     $Output .= '<a href="team.php?action=create">Vytvořit tým</a><br />'.
    41       '<a href="team.php?action=leave">Opustit tým</a><br />'.
    42       '<br /><form action="team.php" method="get">'.
    43       '<input type="hidden" name="action" value="gointeam"/>'.
    44       '<select name="id">';
    45     while($LineTeam = $DbResult->fetch_assoc())
    46     {
    47       $Output .= '<option value="'.$LineTeam['Id'].'"';
    48       if ($LineTeam['Id'] == $User->Team) $Output .= ' selected="selected"';
    49         $Output .= '>'.$LineTeam['Name'].'</option>';
    50     }   
    51     $Output .= '</select> <input type="submit" value="Vstoupit" />
    52     </form>';   
    53     $Output .= '</fieldset>';
    54     return($Output);
    55 }
    56 
    57 function UserOptionsSave()
    58 {
    59         global $System, $User;
     5        function UserOptionsFrom()
     6        {
     7                global $User;
    608       
    61         $Output = '';
    62         if(array_key_exists('Email', $_POST))
     9                $Output = '<form action="Options.php?action=save" method="post">
     10                <fieldset><legend>Nastavení uživatele</legend>
     11                <table>
     12                <tr><td>Email:</td><td><input type="text" name="Email" value="'.$User->Email.'" /></td></tr>
     13                <tr><td>Původní heslo:</td><td><input type="password" name="OldPass" /></td></tr>
     14                <tr><td>Nové heslo:</td><td><input type="password" name="NewPass" /></td></tr>
     15                <tr><td>Nové heslo pro potvrzení: </td><td><input type="password" name="NewPass2" /></td></tr>
     16                <tr><td>Normálně budu překládat do: </td><td>'.WriteLanguages($User->Language).'</td></tr>
     17                <tr><td>Po uložení překladu přesměrovat: </td><td>';
     18                $Output .= '<select name="redirecting">'.
     19                                '<option value="0">Nikam</option>'.
     20                                '<option value="1"';
     21                if($User->Redirecting == '1') $Output .= ' selected="selected"';
     22                $Output .= '>Na nepřeložené</option>';
     23                $Output .= '<option value="2"';
     24                if($User->Redirecting == '2') $Output .= ' selected="selected"';
     25                $Output .= '>Na další překlad</option>';
     26                $Output .= '<option value="3"';
     27                if($User->Redirecting == '3') $Output .= ' selected="selected"';
     28                $Output .= '>Na předchozí překlad</option>';
     29                $Output .= '</select>';
     30       
     31                $Output .= '</td></tr>'.
     32                                '<tr><td>Upřednostněná verze klienta: </td><td>'.ClientVersionSelection($User->PreferredVersion).'</td></tr>'.
     33                                '<tr><td>Veřejný text profilu:</td><td>'.
     34                                '<textarea name="info" cols="60" rows="10">'.$User->Info.'</textarea></td></tr>'.
     35                                '<tr><td colspan="2"><input type="submit" value="Uložit" /></td></tr>'.
     36                                '</table></fieldset>'.
     37                                '</form>';
     38       
     39                $Output .= '  <fieldset><legend>Překladatelský tým</legend>';
     40                $DbResult = $this->Database->query('SELECT `Id`, `Name` FROM `Team`');
     41                $Output .= '<a href="team.php?action=create">Vytvořit tým</a><br />'.
     42                                '<a href="team.php?action=leave">Opustit tým</a><br />'.
     43                                '<br /><form action="team.php" method="get">'.
     44                                '<input type="hidden" name="action" value="gointeam"/>'.
     45                                '<select name="id">';
     46                while($LineTeam = $DbResult->fetch_assoc())
     47                {
     48                        $Output .= '<option value="'.$LineTeam['Id'].'"';
     49                        if ($LineTeam['Id'] == $User->Team) $Output .= ' selected="selected"';
     50                        $Output .= '>'.$LineTeam['Name'].'</option>';
     51                }
     52                $Output .= '</select> <input type="submit" value="Vstoupit" />
     53                </form>';
     54                $Output .= '</fieldset>';
     55                return($Output);
     56        }
     57       
     58        function UserOptionsSave()
    6359        {
    64                 $Email = $_POST['Email'];
    65                 $OldPass = $_POST['OldPass'];
    66                 $NewPass = $_POST['NewPass'];
    67                 $NewPass2 = $_POST['NewPass2'];
    68                 $Language = $_POST['Language'];
    69                 $Redirecting = $_POST['redirecting'];
    70                 $PreferredVersion = $_POST['ClientVersion'];
    71                 if($PreferredVersion == '') $PreferredVersion = null;
    72                 $Info = $_POST['info'];
     60                global $User;
    7361       
    74                 // Do user want to change password?
    75                 if(($OldPass != '') or ($NewPass != '') or ($NewPass2 != ''))
    76                 {
    77                   if($NewPass == $NewPass2)
    78                   {
    79                           $DbResult = $System->Database->query('SELECT `Pass`, '.$User->CryptPasswordSQL('"'.$OldPass.'"', '`Salt`').' AS `Hash` FROM `User` WHERE `ID`= '.$User->Id);
    80                           $DbRow = $DbResult->fetch_assoc();
    81                           if($DbRow['Hash'] == $DbRow['Pass'])
    82                           {
    83                                   // Update password
    84                                   $Salt = $User->GetPasswordSalt();
    85                                   $System->Database->query('UPDATE `User` SET `Pass` = '.$User->CryptPasswordSQL('"'.$NewPass.'"', '"'.$Salt.'"').', `Salt`="'.$Salt.'" WHERE `ID` = '.$User->Id);
    86                                   $Output .= ShowMessage('Heslo změněno.');     
    87                           } else $Output .= ShowMessage('Staré heslo neodpovídá.', MESSAGE_CRITICAL);
    88                   } else $Output .= ShowMessage('Hesla se neshodují.', MESSAGE_CRITICAL);
    89                 }
    90                 $System->Database->update('User', '`ID` = '.$User->Id, array('Email' => $Email,
    91           'Language' => $Language, 'Redirecting' => $Redirecting, 'Info' => $Info,
    92                         'PreferredVersion' => $PreferredVersion));
    93                 $Output .= ShowMessage('Úprava nastavení proběhla v pořádku, Email: <b>'.$Email.'</b> Uživatel: <b>'.$User->Name.'</b>');
    94                 WriteLog('Úprava nastavení!', LOG_TYPE_USER);
    95                 $User->Load();
    96         } else $Output .= ShowMessage('Nezadány údaje.', MESSAGE_CRITICAL);     
    97         return($Output);
    98 }
    99 
    100 $Output = '';
    101 if($User->Licence(LICENCE_USER))
    102 {
    103   if(array_key_exists('action', $_GET) and ($_GET['action'] == 'save'))
    104   {
    105         $Output .= UserOptionsSave();
    106   }   
    107   $Output .= UserOptionsFrom();
    108 } else $Output .= ShowMessage('Nejste přihlášený.', MESSAGE_CRITICAL);
    109 ShowPage($Output); 
    110 
    111 ?>
    112    
     62                $Output = '';
     63                if(array_key_exists('Email', $_POST))
     64                {
     65                        $Email = $_POST['Email'];
     66                        $OldPass = $_POST['OldPass'];
     67                        $NewPass = $_POST['NewPass'];
     68                        $NewPass2 = $_POST['NewPass2'];
     69                        $Language = $_POST['Language'];
     70                        $Redirecting = $_POST['redirecting'];
     71                        $PreferredVersion = $_POST['ClientVersion'];
     72                        if($PreferredVersion == '') $PreferredVersion = null;
     73                        $Info = $_POST['info'];
     74       
     75                        // Do user want to change password?
     76                        if(($OldPass != '') or ($NewPass != '') or ($NewPass2 != ''))
     77                        {
     78                                if($NewPass == $NewPass2)
     79                                {
     80                                        $DbResult = $System->Database->query('SELECT `Pass`, '.$User->CryptPasswordSQL('"'.$OldPass.'"', '`Salt`').' AS `Hash` FROM `User` WHERE `ID`= '.$User->Id);
     81                                        $DbRow = $DbResult->fetch_assoc();
     82                                        if($DbRow['Hash'] == $DbRow['Pass'])
     83                                        {
     84                                                // Update password
     85                                                $Salt = $User->GetPasswordSalt();
     86                                                $this->Database->query('UPDATE `User` SET `Pass` = '.$User->CryptPasswordSQL('"'.$NewPass.'"', '"'.$Salt.'"').', `Salt`="'.$Salt.'" WHERE `ID` = '.$User->Id);
     87                                                $Output .= ShowMessage('Heslo změněno.');
     88                                        } else $Output .= ShowMessage('Staré heslo neodpovídá.', MESSAGE_CRITICAL);
     89                                } else $Output .= ShowMessage('Hesla se neshodují.', MESSAGE_CRITICAL);
     90                        }
     91                        $this->Database->update('User', '`ID` = '.$User->Id, array('Email' => $Email,
     92                                        'Language' => $Language, 'Redirecting' => $Redirecting, 'Info' => $Info,
     93                                        'PreferredVersion' => $PreferredVersion));
     94                        $Output .= ShowMessage('Úprava nastavení proběhla v pořádku, Email: <b>'.$Email.'</b> Uživatel: <b>'.$User->Name.'</b>');
     95                        WriteLog('Úprava nastavení!', LOG_TYPE_USER);
     96                        $User->Load();
     97                } else $Output .= ShowMessage('Nezadány údaje.', MESSAGE_CRITICAL);
     98                return($Output);
     99        }
     100       
     101        function Show()
     102        {
     103                $Output = '';
     104                if($this->System->User->Licence(LICENCE_USER))
     105                {
     106                        if(array_key_exists('action', $_GET) and ($_GET['action'] == 'save'))
     107                        {
     108                                $Output .= $this->UserOptionsSave();
     109                        }
     110                        $Output .= $this->UserOptionsFrom();
     111                } else $Output .= ShowMessage('Nejste přihlášený.', MESSAGE_CRITICAL);
     112                return($Output);
     113        }       
     114}   
Note: See TracChangeset for help on using the changeset viewer.