WackoWiki: YuriMakarov/������������/������ ...

Home Page | ��������� | ����� �������� | ������������ | ������� | ����������� | ����:  ������:  

��������� ����� �������������


� ������� ����������� ����������� �������� ����� ������������� ��� ������������� ����������. ��� ����� �������� � ������, ����� ���� ����������� � ����� �������������. ��� ������� �������� ���������� �� ������ ������� (������������� �������) ���������� ��� � ������ �������. �� �� ����� ��� ��������� ������ ������������ � ��������� ������� ����������.


��� ������� ����� ����� ������ ������.
���������� ������ � ACL ��� ���� ��� ������������ (� ���������� � * � $),
��� ������ �� ���������� ��������. ��� �������� «����� ����� ������� �� ��������».


�������:


����������� ����� ������



��� ��� ����� �������� ��������� �����.
���� ����� ���������� ������������ ������������� ������.


����������


� ������� wakka.php ����� ��������� ������� HasAccess

<?
  
function HasAccess($privilege$tag ""$user ""$tested = array())   // (Mak) �������� �������� $tested
  
{
    
// see whether user is registered and logged in
   
if ($user!="guest@wacko")
   {
    if (
$user $this->GetUser()) $registered true;

    

// set defaults
    
if (!$user $this->GetUserName());
   }
   if (!
$tag trim($tag)) $tag $this->GetPageTag();
   if (
in_array ($tag$tested)) return false;   // (Mak) ���� �� ������������ ������

   // load acl
   

$acl $this->LoadAcl($tag$privilege);
   
$acl['list'] = $this->ReplaceAliases($acl['list']);
   
$this->_acl $acl;

    

// if current user is owner, return true. owner can do anything!
   
if ($user!="guest@wacko") if ($this->UserIsOwner($tag)) return true;
    
// fine fine... now go through acl
    
foreach (explode("\n"$acl["list"]) as $line)
    {
      
$line trim($line);

      

// check for inversion character "!"
      
if (preg_match("/^[!](.*)$/"$line$matches))
      {
        
$negate 1;
        
$line $matches[1];
      }
      else
      {
        
$negate 0;
      }

      

// if there's still anything left... lines with just a "!" don't count!
      
if ($line)
      {
        switch (
$line[0])
        {
        
// comments
        
case "#":
          break;
        
// everyone
        
case "*":
          return !
$negate;
        
// only registered users
        
case "$":
        case 
"�":
          return (
$registered) ? !$negate false// <- unregistered always False (Mak)
        // (Mak) �������� ������ �������
        
case "@":
          
$tested[] = $tag;
          
$groupe_access $this->HasAccess($privilegesubstr($line,1), $user$tested);
          return (
$groupe_access) ? !$negate $negate;
        
// aha! a user entry.
        
default:
          if (
$line == $user)
          {
            return !
$negate;
          }
        }
      }
    }
    
// tough luck.
    
return false;
  }


����������� ������� �������


������������


 
������ ���. [�������� �����/�����]
������������ ���. [�������� �����������/�����]
Donate
����� ������: 0.427 s
������������ ������: 1.481 Mb