Показывать поле CCK только при доступе к определенному URL (разрешения) - PullRequest
1 голос
/ 16 февраля 2011

Моя ситуация такова, что я хочу ограничить доступ пользователей к определенному полю CCK. После того, как пользователь совершил покупку (Ubercart), он получит по электронной почте специальную ссылку, где у него будет доступ к полю. Срок действия этой ссылки истечет через некоторое время, но им нужно иметь доступ к этому конкретному полю, пока ссылка активна.

В основном происходит то, что при доступе к узлу по его стандартному пути (node ​​/ 14) они не будут иметь доступа к полю. Если они получают доступ к нему по другому пути (доступно / ограничено / время / u9xYs4), у них есть доступ к полю.

Я в тупик, как этого добиться.

Редактировать 1:
Я взломал, что я придумал, что работает следующее.

global $user;
$user1 = user_load(array('uid'=>1));
$prevUser = $user;
$user = $user1;

$view = views_get_view('greeting_listen');
$rendered = $view->preview('default', array($nid));

$user = $prevUser;

Я знаю, что это ужасно, но это работает. Я также обеспокоен тем, что могут возникнуть некоторые серьезные проблемы с безопасностью. У кого-нибудь есть мысли по этому поводу для меня?

1 Ответ

0 голосов
/ 17 февраля 2011

Зависит от того, как вы создаете и срок действия ссылки, но ...

Я бы включил поле CCK для времени истечения, удалил секретное поле из шаблона узла и создал бы представление, отображающеесекретное поле и фильтруется или иным образом изменяется в зависимости от времени истечения.

...