<?php

class PermissionsOverrider implements PermissionsOverrider_IOverridePermissions {

    public function forceUsageOfAnonymous() {
        return true;
    }

    public function decideToLetUserAccessProjectEvenIfTuleapWouldNot(PFUser $user, Project $project) {
       if (! $user->isAnonymous()) {
           return;
       }

       if ($project->getAccess() == Project::ACCESS_PRIVATE) {
	   return;
       }

       return ! $this->userIsBehindFirewall();
   }

   public function decideToLetUserAccessPlatformEvenIfTuleapWouldNot(PFUser $user) {
       if (! $user->isAnonymous()) {
           return;
       }
       return ! $this->userIsBehindFirewall();
   }

   private function userIsBehindFirewall() {
       return preg_match("/10.194.160.*/",$_SERVER['REMOTE_ADDR'])==true;
   }
}
