уважаемое сообщество! я пытаюсь ограничить спам на моем сайте и пишу модуль, который сохраняет материалы не опубликованными, если пользователи не имеют роли. я попробовал добавить неколько материалов от пользователя без роли, и после этого админу не показывается страница /admin/content - как раз где должны отображаться последние материалы, пишет админу: доступ запрещен.
но страницы пейджера все показваются /admin/contaant?page=1...2,3
подскажите, почему так?
вот код модуля, который при добавлении материалов снимает с публикации если пользователь не имеет нужной роли
<?php
function site_helpers_form_node_form_alter(&$form, $form_state) {
global $user;
/* if admin return */
if (in_array('administrator', $user->roles)) return;
/* types and roles that have access */
$typesroles = array('auto' => array('trader'),
'moto' => array('trader'),
'blog' => array('bloger'),
'video' => array('bloger'),
'board' => array('bloger','trader'));
/* uncheck option Published in node form for all */
$form['options']['status']['#default_value'] = FALSE;
/* check back option Published if current user has access to this type */
foreach ($typesroles as $type => $roles ) {
if ($form['type']['#value'] == $type) {
foreach ($typesroles[$type] as $item) {
if (in_array($item, $user->roles)) {
$form['options']['status']['#default_value'] = TRUE;
}
}
}
}
}?>
Комментарии
РЕШЕНО:
виноват был модуль authcache views - для пользователя без доступа он показал такой вывод, и закэшировал этот вывод (страницу доступ запрещен), и админу стал его показывать. даже после отключения этого модуля и чистки кэша 1 день показывал этот кэш (возможно, виноват и др. модуль authcache).
только что показал нормально