未授权用户的单独页面或同一页面的不同配置?

时间:2015-01-04 09:50:26

标签: javascript php jquery html css

我正在使用HTML,CSS,Javascript,Jquery,PHP等技术制作活动网站。我使用PHP中的RESTful服务检索数据。

有一个单独的活动页面,既可以由实际目标受众查看,也可以由可以在此页面上编辑活动详情的组织者查看。当组织者打开页面时,他应该看到编辑事件细节的选项。但是其他用户不应该看到这些选项。除了这些选项之外,组织者和其他用户的页面视图也是相同的。

我的问题是我应该使用Javascript / Jquery隐藏这些选项吗?或者我应该为此活动页面的每个版本分别设置页面,并根据用户是否是组织者来指导用户?哪个更好,为什么?

2 个答案:

答案 0 :(得分:0)

在php中,您将知道当前用户是否是组织者。只需在响应中发回一个变量,例如 is_organizer:1 ,然后您就可以根据用户确定要显示的内容。

如果html输出与用户没有太大区别,那么这种方法比使用完全不同的视图更好,因为您保持代码DRY并且没有相同标记的副本。

我假设您已经检查过用户是组织者,然后才能保存对事件的更改。如果没有,你肯定应该这样做。

<强>更新

以下是基于您最近评论的更多信息。

如果您正在使用jQuery进行make和ajax调用并从REST API获取数据,我会做这样的事情(请记住这是伪代码):

$.ajax({
  url: "event-data.php"
}).done(function(response) {
  html = "";
  //loop over events
  foreach response.events as event
    //add event html
    eventHtml = "<div class='event'>" + event.name + "</div>";
    //if organizer add edit tools
    if response.is_organizer
      eventHtml += "<div class='edit-controls'>...</div>"; 
    //concat html string
    html += eventHTML;
  //insert html to dom
  $('#content').html(html);
});

我不知道你是如何将你的html插入到dom中的,但这种方式只是你如何根据用户的角色构建html的一个例子。

在旁注中,我建议使用前端框架来处理这类内容。这是一个不错的名单:

https://github.com/showcases/front-end-javascript-frameworks

答案 1 :(得分:0)

你应该使用Php。 如果您使用Jquery来隐藏这些字段,那么每个人都可以“隐藏”#34;这些领域很容易。但是你可以将这两种技术结合起来。只需隐藏字段,如果somone进行编辑,服务器必须再次检查是否允许用户进行更改。