Пример #1
0
 public function getAllowDenyList()
 {
     $content = array();
     PHPWS_Core::initModClass('access', 'Allow_Deny.php');
     if (!PHPWS_Settings::get('access', 'allow_deny_enabled')) {
         return "Order Allow,Deny\nAllow from all\n\n";
     }
     $deny_all = PHPWS_Settings::get('access', 'deny_all');
     $allow_all = PHPWS_Settings::get('access', 'allow_all');
     $deny_str = $allow_str = NULL;
     if ($deny_all && $allow_all) {
         return NULL;
     } elseif ($deny_all) {
         $deny_str = 'Deny from all';
     } elseif ($allow_all) {
         $allow_str = 'Allow from all';
     }
     $db = new PHPWS_DB('access_allow_deny');
     $db->addWhere('active', 1);
     if ($deny_all) {
         $db->addWhere('allow_or_deny', 1);
     } elseif ($allow_all) {
         $db->addWhere('allow_or_deny', 0);
     }
     $result = $db->getObjects('Access_Allow_Deny');
     if ($deny_all) {
         $content[] = 'Order Deny,Allow';
         $content[] = $deny_str;
         $content[] = 'Allow from 127.0.0.1';
         $content[] = 'Allow from ' . Current_User::getIP();
         if (!empty($result)) {
             foreach ($result as $ad) {
                 $content[] = 'Allow from ' . $ad->ip_address;
             }
         }
     } elseif ($allow_all) {
         $content[] = 'Order Allow,Deny';
         $content[] = $allow_str;
         if (!empty($result)) {
             foreach ($result as $ad) {
                 $content[] = 'Deny from ' . $ad->ip_address;
             }
         }
     } else {
         if (!empty($result)) {
             $content[] = 'Order Deny,Allow';
             foreach ($result as $ad) {
                 if ($ad->allow_or_deny) {
                     $allows[] = 'Allow from ' . $ad->ip_address;
                 } else {
                     $denys[] = 'Deny from ' . $ad->ip_address;
                 }
             }
             if (!empty($denys)) {
                 $content[] = implode("\n", $denys);
             }
             if (!empty($allows)) {
                 $content[] = implode("\n", $allows);
             }
         }
     }
     return implode("\n", $content) . "\n\n";
 }