1

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

http://example.com/user/joe

我仍然在设计这些 URL 的两种方法之间纠结。我想过这个:

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

或与配置文件无关且与配置文件分开的东西:

http://example.com/account

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

第二种是一种更标准的做事方式,结果证明它更简单,更容易保护,尽管它意味着管理用户的单独界面。

SO对此有何看法?这两种方式还有更多的优点/缺点吗?您会推荐使用哪种方法?

4

4 回答 4

1

对于具有这样一个安全敏感区域的管理员,我会有不同的看法。它使事情变得更加明确,有一个单独的视图。甚至管理员也很可能只能编辑某些用户信息,因此对用户编辑自己有不同的看法。

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

于 2009-09-28T11:07:08.353 回答
1

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

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

或者

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

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

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

于 2009-09-28T11:07:28.417 回答
0

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

单视图的原因是:

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

I think that you should go with the second approach. It's more secure and flexible, and shouldn't be harder to code than profile editing the profile inline.

于 2009-09-28T21:36:38.377 回答