Все страницы от анонимов закрыты по умолчанию. Как открыть одну страницу для все пользователей и анонимов? (Drupal 7.59)

Главные вкладки

Аватар пользователя kostarh kostarh 27 июля 2018 в 16:09

Добрый день! Drupal 7.59/ Проблема: все страницы от анонимов закрыты по умолчанию. Как открыть одну страницу для все пользователей и анонимов? Если есть пример решенной задачи, скиньте ссылку. (Drupal 7.59)

Заранее спасибо!

Комментарии

Аватар пользователя kostarh kostarh 27 июля 2018 в 19:10

Создал модуль вот код:
open_access_page.info:

; $Id:$
name = Open access page
description = Открывает для анонимов страницу с id
version = 7.x-dev
core = 7.x

open_access_page.module:

<?php

function open_access_page_node_access($node$op$account) {
    
$is_anonymous = !user_is_logged_in(); 

    if (

is_object($node)) {
        switch (
$node->nid) {
            case 
515:
                    return 
NODE_ACCESS_ALLOW;
                break;
        }
    }

    return 

NODE_ACCESS_DENY;
}

?>

Но для анонимов страница не отображается все равно.
Быть может я что-то не правильно сделал?
Спасибо!

Аватар пользователя fairrandir fairrandir 30 июля 2018 в 12:46

hook_node_access срабатывает позже, чем проверка на права, соответственно до него даже не доходит. Попробуйте включить разрешение access content, а в hook_node_access проверять от противного - если нода не из списка разрешенных - рубить доступ.

Приблизительно:

<?php
function open_access_page_node_access($node$op$account) {
    
$is_anonymous = ; 

    if (

$op === 'view' && user_is_anonymous() && is_object($node)) {
      switch (
$node->nid) {
            case 
515:
                return 
NODE_ACCESS_ALLOW;
                break;
        }
        return 
NODE_ACCESS_DENY
    }

?>