我需要为用户和管理员提供编辑Web应用程序中的帐户和配置文件详细信息的功能。这些配置文件的公共端的URL示例如下:
http://example.com/user/joe
我仍然在设计这些网址的两种方式之间徘徊。我想到了这个:
http://example.com/user/joe/edit
或非特定的内容并与个人资料分开:
http://example.com/account
第一个好处是它允许管理员通过相同的功能完成工作。这避免了专门为管理员构建完整的不同后端。我认为这里的否定是我必须小心授权,并确保没有人可以编辑他们不应该编辑的内容。
第二种是更标准的做事方式,它变得更简单,更容易保护,但它意味着管理用户的单独界面。
SO对此有何看法?两种方式都有更多优点/缺点吗?您建议使用哪种方法?
答案 0 :(得分:1)
对于具有此类安全敏感区域的管理员,我会有不同的视图。它使事情更加显式具有单独的视图。甚至管理员也可能只能编辑某些用户信息,从而对用户进行自我编辑的不同视图。
即使两个视图共享一个共同的编辑表单,它也会使授权更加清晰
答案 1 :(得分:1)
如果您使用的是MVC方法,那么我的建议是:
http://example.com/user/edit/1234
或
http://example.com/user/edit/joe
如果用户是控制器,则分别编辑控制器方法和1234或joe用户ID或用户名。
但正如Gumbo评论的那样,不应允许管理员编辑用户信息。如果个人资料包含令人反感的内容或虚假信息,他们应该有一些机制来禁用该帐户。强制用户更新它以使帐户再次处于活动状态。
答案 2 :(得分:0)
我们这样做的方式是管理员和用户共享相同的视图。仅限管理员的项目受到保护,不会被用户编辑或查看。
单一观点的原因是:
答案 3 :(得分:0)
我认为你应该采用第二种方法。它更加安全和灵活,并且不应该比编辑内联配置文件的配置文件更难编码。