app/Individual.php
protected function canShowByType(int $access_level): bool
    {
        // Dead people...
        if ($this->tree->getPreference('SHOW_DEAD_PEOPLE') >= $access_level && $this->isDead()) {
            $keep_alive             = false;
            $KEEP_ALIVE_YEARS_BIRTH = (int) $this->tree->getPreference('KEEP_ALIVE_YEARS_BIRTH');
            if ($KEEP_ALIVE_YEARS_BIRTH) {
                preg_match_all('/\n1 (?:' . implode('|', Gedcom::BIRTH_EVENTS) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/', $this->gedcom, $matches, PREG_SET_ORDER);
                foreach ($matches as $match) {
                    $date = new Date($match[1]);
                    if ($date->isOK() && $date->gregorianYear() + $KEEP_ALIVE_YEARS_BIRTH > date('Y')) {
                        $keep_alive = true;
                        break;
                    }
                }
            }
            $KEEP_ALIVE_YEARS_DEATH = (int) $this->tree->getPreference('KEEP_ALIVE_YEARS_DEATH');
            if ($KEEP_ALIVE_YEARS_DEATH) {
                preg_match_all('/\n1 (?:' . implode('|', Gedcom::DEATH_EVENTS) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/', $this->gedcom, $matches, PREG_SET_ORDER);
                foreach ($matches as $match) {
                    $date = new Date($match[1]);
                    if ($date->isOK() && $date->gregorianYear() + $KEEP_ALIVE_YEARS_DEATH > date('Y')) {
                        $keep_alive = true;
                        break;
                    }
                }
            }
            if (!$keep_alive) {
                return true;
            }
        }
        // Consider relationship privacy (unless an admin is applying download restrictions)
        $user_path_length = (int) $this->tree->getUserPreference(Auth::user(), 'RELATIONSHIP_PATH_LENGTH');
        $gedcomid         = $this->tree->getUserPreference(Auth::user(), 'gedcomid');
        if ($gedcomid !== '' && $user_path_length > 0) {
            return self::isRelated($this, $user_path_length);
        }

        // No restriction found - show living people to members only:
        return Auth::PRIV_USER >= $access_level;
    }
protected function canShowByType(int $access_level): bool
    {
        // Dead people...
        if ($this->tree->getPreference('SHOW_DEAD_PEOPLE') >= $access_level && $this->isDead()) {
            $keep_alive             = false;
            $KEEP_ALIVE_YEARS_BIRTH = (int) $this->tree->getPreference('KEEP_ALIVE_YEARS_BIRTH');
            if ($KEEP_ALIVE_YEARS_BIRTH) {
                preg_match_all('/\n1 (?:' . implode('|', Gedcom::BIRTH_EVENTS) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/', $this->gedcom, $matches, PREG_SET_ORDER);
                foreach ($matches as $match) {
                    $date = new Date($match[1]);
                    if ($date->isOK() && $date->gregorianYear() + $KEEP_ALIVE_YEARS_BIRTH > date('Y')) {
                        $keep_alive = true;
                        break;
                    }
                }
            }
            $KEEP_ALIVE_YEARS_DEATH = (int) $this->tree->getPreference('KEEP_ALIVE_YEARS_DEATH');
            if ($KEEP_ALIVE_YEARS_DEATH) {
                preg_match_all('/\n1 (?:' . implode('|', Gedcom::DEATH_EVENTS) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/', $this->gedcom, $matches, PREG_SET_ORDER);
                foreach ($matches as $match) {
                    $date = new Date($match[1]);
                    if ($date->isOK() && $date->gregorianYear() + $KEEP_ALIVE_YEARS_DEATH > date('Y')) {
                        $keep_alive = true;
                        break;
                    }
                }
            }
            if (!$keep_alive) {
                return true;
            }
        }
        // Consider relationship privacy (unless an admin is applying download restrictions)
        $user_path_length = (int) $this->tree->getUserPreference(Auth::user(), 'RELATIONSHIP_PATH_LENGTH');
        $gedcomid         = $this->tree->getUserPreference(Auth::user(), 'gedcomid');
        if ($gedcomid !== '' && $user_path_length > 0) {
            return self::isRelated($this, $user_path_length);
        }

        // No restriction found - show living people to members only:
        return Auth::PRIV_USER >= $access_level;
    }
protected function canShowByType ( int $ access_level ) : bool { // Dead people... if ( $ this -> tree -> getPreference ( 'SHOW_DEAD_PEOPLE' ) >= $ access_level && $ this -> isDead ( ) ) { $ keep_alive = false ; $ KEEP_ALIVE_YEARS_BIRTH = ( int ) $ this -> tree -> getPreference ( 'KEEP_ALIVE_YEARS_BIRTH' ) ; if ( $ KEEP_ALIVE_YEARS_BIRTH ) { preg_match_all ( '/\n1 (?:' . implode ( '|' , Gedcom :: BIRTH_EVENTS ) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/' , $ this -> gedcom , $ matches , PREG_SET_ORDER ) ; foreach ( $ matches as $ match ) { $ date = new Date ( $ match [ 1 ] ) ; if ( $ date -> isOK ( ) && $ date -> gregorianYear ( ) + $ KEEP_ALIVE_YEARS_BIRTH > date ( 'Y' ) ) { $ keep_alive = true ; break ; } } } $ KEEP_ALIVE_YEARS_DEATH = ( int ) $ this -> tree -> getPreference ( 'KEEP_ALIVE_YEARS_DEATH' ) ; if ( $ KEEP_ALIVE_YEARS_DEATH ) { preg_match_all ( '/\n1 (?:' . implode ( '|' , Gedcom :: DEATH_EVENTS ) . ').*(?:\n[2-9].*)*(?:\n2 DATE (.+))/' , $ this -> gedcom , $ matches , PREG_SET_ORDER ) ; foreach ( $ matches as $ match ) { $ date = new Date ( $ match [ 1 ] ) ; if ( $ date -> isOK ( ) && $ date -> gregorianYear ( ) + $ KEEP_ALIVE_YEARS_DEATH > date ( 'Y' ) ) { $ keep_alive = true ; break ; } } } if ( ! $ keep_alive ) { return true ; } } // Consider relationship privacy (unless an admin is applying download restrictions) $ user_path_length = ( int ) $ this -> tree -> getUserPreference ( Auth :: user ( ) , 'RELATIONSHIP_PATH_LENGTH' ) ; $ gedcomid = $ this -> tree -> getUserPreference ( Auth :: user ( ) , 'gedcomid' ) ; if ( $ gedcomid !== '' && $ user_path_length > 0 ) { return self :: isRelated ( $ this , $ user_path_length ) ; } // No restriction found - show living people to members only: return Auth :: PRIV_USER >= $ access_level ; }
Can this individual be shown?

@param int $access_level

@return bool
Can this individual be shown?