用户个人资料/帐户网址

时间:2009-09-28 10:51:49

标签: url web-applications profile

我需要为用户和管理员提供编辑Web应用程序中的帐户和配置文件详细信息的功能。这些配置文件的公共端的URL示例如下:

http://example.com/user/joe

我仍然在设计这些网址的两种方式之间徘徊。我想到了这个:

http://example.com/user/joe/edit

或非特定的内容并与个人资料分开:

http://example.com/account

第一个好处是它允许管理员通过相同的功能完成工作。这避免了专门为管理员构建完整的不同后端。我认为这里的否定是我必须小心授权,并确保没有人可以编辑他们不应该编辑的内容。

第二种是更标准的做事方式,它变得更简单,更容易保护,但它意味着管理用户的单独界面。

SO对此有何看法?两种方式都有更多优点/缺点吗?您建议使用哪种方法?

4 个答案:

答案 0 :(得分:1)

对于具有此类安全敏感区域的管理员,我会有不同的视图。它使事情更加显式具有单独的视图。甚至管理员也可能只能编辑某些用户信息,从而对用户进行自我编辑的不同视图

即使两个视图共享一个共同的编辑表单,它也会使授权更加清晰

答案 1 :(得分:1)

如果您使用的是MVC方法,那么我的建议是:

http://example.com/user/edit/1234

http://example.com/user/edit/joe

如果用户是控制器,则分别编辑控制器方法和1234或joe用户ID或用户名。

但正如Gumbo评论的那样,不应允许管理员编辑用户信息。如果个人资料包含令人反感的内容或虚假信息,他们应该有一些机制来禁用该帐户。强制用户更新它以使帐户再次处于活动状态。

答案 2 :(得分:0)

我们这样做的方式是管理员和用户共享相同的视图。仅限管理员的项目受到保护,不会被用户编辑或查看。

单一观点的原因是:

  • 减少了“活动部件”的数量 - 当一个新的字段被添加到用户屏幕时,它只需要添加一次,
  • 将项目移入/移出用户的权限更容易。如果突然之间,管理层决定允许用户管理他们的“FizzBar”,那么我们只需要在一个地方进行更改,并且
  • 在控制器级别更容易分离角色和功能。

答案 3 :(得分:0)

我认为你应该采用第二种方法。它更加安全灵活,并且不应该比编辑内联配置文件的配置文件更难编码。