在深层链接上预先激活或预先加载CanLoad

时间:2017-03-28 15:57:54

标签: angular session coldfusion angular2-routing

我的任务是更换现有的Adobe Flash& Flex应用程序在带有Angular应用程序的ColdFusion 11后端上运行。

假设用户将在他们甚至能够访问Angular应用程序页面之前已经登录并拥有会话,并且我不允许用户请求新登录,或者让他们单击其他链接可以使他们的深层链接发挥作用。

我创建了一个SessionService,它成功获取Coldfusion会话变量并将它们存储在Session模型中。

我的意图是,基于现有的应用程序架构,我们将实现延迟加载功能模块。

我的问题在于,我需要从ColdFusion会话中获取数据,以验证用户是否有权在我尝试加载该功能之前查看该功能,并且自99%或更多访问将来自功能模块的深层链接,不能保证会话服务已被调用。

路由解析器似乎发生在事件序列中的Route guards之后,因此我正在努力确保CanLoad警卫能够从SessionService访问成功加载的Session模型。

编辑:下面的澄清......

canLoad依赖于会话和权限级别的值,必须根据它们要访问的页面进行检查。

例如......深层链接页面是一个查看单元详细信息的页面

http://url/app/feature/childFeature?unitId=123&orderId=456

需要将会话用户分配给该特定unitId,并且必须具有该childFeature的viewAccess权限,该权限在数据库的表中定义

所以,我需要知道网址参数' unitId'在canLoad后卫,我不相信我可以访问路线???然后我需要使用viewAccess权限检查的结果进行逻辑AND,并将其作为canLoad的结果返回。

任何指导?

提前致谢!

1 个答案:

答案 0 :(得分:2)

你可以在下面试试,

DateTime createDateTime = new DateTime(dataset.getDate("createDateTime")); Log.d("Time I get is",createDateTime.toString()); 中,创建一个在加载会话模型后将会发出的主题,

<强> SessionService

2015-12-16T00:00:00.000+08:00

canLoad功能子模块

SessionService

希望这会有所帮助!!