我有一个Drupal站点,它使用某个类型的节点(person_id
)的自定义字段,该节点对应于特定用户。我想创建一个视图,以便在登录时,用户可以看到带有person_id
标记的节点列表。我的视图工作正常,网址为my-library/username
但是用不同的用户名替换username
会显示标记有该用户的所有节点的列表。我想要做的是阻止用户更改URL并查看其他用户的标记节点。我怎样才能做到这一点?在某些地方我可以指示此页面唯一有效的参数是与当前登录用户的用户名相对应的参数吗?
答案 0 :(得分:2)
person_id = uid?
在这种情况下,使用user:uid添加参数,然后在Validation options中选择PHP Code,仔细阅读该字段的注释:
输入返回TRUE或的PHP代码 假。没有回报与FALSE相同, 所以如果你确实要回报一些东西 不想声明参数 无效。不使用 。该 验证的论据将是 “$ argument”和视图将是 “$视图”。你可以改变论点 通过设置“$ handler-> argument”。
添加此代码:
global $user;
$account = user_load('name'=>arg(1));
$handler->argument = $user->uid;
return $account->uid == $user->uid;
答案 1 :(得分:1)
我不确定您是如何设置视图的,这提供了一些不同的选项来解决这个问题。应该工作的方法是将默认参数设置为记录的用户ID /用户名,并从URL中删除参数。
或者,您可以创建自己的过滤器,这需要使用视图API,但可以提供更多控制。