文档章节

angularjs实现url权限控制

一路向北的兔斯基
 一路向北的兔斯基
发布于 2015/12/09 20:47
字数 309
阅读 222
收藏 3

目前能找到的权限控制都是通过resolve解决的,但需要每个controller都写相关的代码。网上找了一些资料,通过$routeChangeStart和$routeChangeSuccess实现url切换控制和权限控制。

  1. 首先定义不需要管理员的url数组和判断是否为此类url的方法
var frontUrls = ['/statisticsIndex', '/statisticsDetail'];
    window.isFront = function (currentPath) {
        var front = false;
        for (var i = 0; i < frontUrls.length; i++) {
            var frontUrl = frontUrls[i];
            if (currentPath.indexOf(frontUrl) > -1) {
                front = true;
                break;
            }
        }
        return front;
    }
  1. $rootScope增加$routeChangeStart的监听方法。 如果要访问的url需要管理员权限,那么再判断当前用户是否有管理员权限,如果没有则提示用户并刷新页面到主页,否则就到相应的页面
$rootScope.$on('$routeChangeStart', function () {
    var front = isFront($location.path());
    if (!front) {
        var canManager = ichsonService.canManager();
        if (!canManager) {
            alert("您没有权限访问当前页面!");
            window.location.reload();
        }
    }
});

这种方式,相对resolve,涉及的js文件改动会少很多,只需要增加frontUrls中的值就可以适应增加url的场景。

© 著作权归作者所有

共有 人打赏支持
一路向北的兔斯基
粉丝 7
博文 61
码字总数 24122
作品 0
成都
高级程序员
私信 提问
开源中国的 AngularJS 优秀文章汇总

Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏...

oschina
2014/08/24
5.7K
13
OSChina 技术专题之 AngularJS 更新版(201412)

Angular JS (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏...

OSC编辑部
2014/10/17
11.1K
26
Angular中在前后端分离模式下实现权限控制 - 基于RBAC

权限的设计中比较常见的就是RBAC基于角色的访问控制,基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权...

顽Shi
2014/08/13
0
26
angular.js 1.3.17/1.4.2 发布

其中:1.3.17 更新内容如下: Bug Fixes +- **$browser:** prevent infinite digest if changing hash when there is no hashPrefix + ([61a3fb67](https://github.com/angular/angular.js/......

oschina
2015/07/07
2.6K
9
AngularJS 中的友好 URL —— 移除URL 中的 #

AngularJS 默认将会使用一个 # 号来对URL进行路由. 例如: http://example.com/ http://example.com/#/about http://example.com/#/contact 要获得干净的URL并将井号从URL中移除是很容易的. 完...

oschina
2014/06/20
23.1K
17

没有更多内容

加载失败,请刷新页面

加载更多

js和OC交互

0.html+js 0.1html 代码 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> #colordv{ width: 100px;......

walking_yxf
14分钟前
0
0
点播转码相关常见问题及排查方式

概述: 点播转码目前涉及用户上传自动触发转码、通过SubmitTranscodeJobs接口触发转码等方式,会出现用户转码失败的情况,这当中有用户源片的问题、也有用户设置转码参数的原因以及相关资源性...

阿里云官方博客
16分钟前
0
0
工作笔记

Oracle锁表 查找被锁的表 select l.session_id,o.owner,o.object_namefrom v$locked_object l,dba_objects owhere l.object_id=o.object_id; 查找引发锁表的会话 select s.username,s.si......

呼呼南风
18分钟前
1
0
并发工具优于wati、notify(69)

现在几乎没有理由在使用wait 和 notify,使用高级工具代替 java.util.concurrent 包并发工具分三类: Executor 框架 并发集合(concurrent Collection) 同步器(synchronizer) 并发集合 对...

Java搬砖工程师
26分钟前
0
0
AutoCAD_系统变量

https://baike.sogou.com/v53561514.htm?fromTitle=cad%E5%8F%98%E9%87%8F lunits 设置线性单位。1 科学 2 小数 3 工程 4 建筑 5 分数 6 windesk...

一个小妞
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部