我有一位经理'所有角色的用户(当前admin
和user
)使用的面板。
主要问题是我想限制加载任何管理员HTML视图(我将在后端进行简单检查,如果他们没有被授权加载,则会返回401
模板)。我需要隐藏的HTML中有很多东西。
我的问题是,现在有几个部分有2个视图。
/settings
,当您管理员时,用户会将/settings
显示为完全不同的视图。
控制器实际上是共享的,因为控制器代码非常接近,但HTML非常不同。
我目前正在使用angular-router
,但我也检查了ui-router
,我也不知道如何构建。我花了很多时间看着UI路由器,虽然它看起来很神奇,但我不知道最好的解决方法。
我有大约10个路径/视图需要属于每个角色,这将是不同的。
答案 0 :(得分:1)
发出全局变量如何说当前用户是admin:
private const string CharList = "0123456789abcdefghijklmnopqrstuvwxyz";
public static String Encode(long input)
{
if (input < 0) throw new ArgumentOutOfRangeException("input", input, "input cannot be negative");
char[] clistarr = CharList.ToCharArray();
var result = new Stack<char>();
while (input != 0)
{
result.Push(clistarr[input % 36]);
input /= 36;
}
return new string(result.ToArray());
}
string OutputString = Encode(Int64.Parse("0.04036483168558814"));
or
string OutputString = Encode(Int64.Parse("0.04036483168558814".Substring(2)));
然后在路径定义中检查该变量:
<script type="text/javascript">window.isAdmin = true</script>
另一种方法是让Web服务器根据用户的角色为同一个视图URL提供不同的视图。据我了解你已经可以做到了,对吧?
...
when('/setting', {
templateUrl: isAdmin ? 'templates/admin/setting.html' : 'templates/user/setting.html',
controller: 'SettingController'
})
...