概念 : 过程 : 前台login
为了解决自动登入、访问权限机制、登入权限而诞生了这过程,过程需要概念来维护记忆。
通过singlePageAutoLoginLocalStorage, UIStateLocalStorage, User, 这3个对象是过程中会用到的
singlePageAutoLoginLocalStorage : {
accountId : 5,
singlePage : "employer"
}
UIStateRoleSelectedLocalStorage : {
accountId : 5,
singlePage : "employer",
accountRole : "customer",
stateUrl : "a/b/c"
}
user : {
account : {},
role : "",
account : []
}
一个部分是负责auto login,另一个部分是负责page permission
过程:auto login
Hdlogin 把对象放去 rootscope.user
remove singlePageAutoLoginStorage data if user.accounts no match
match current single page & singlePageAutoLoginStorage for auto login
if match, fill user.account (no fill account.user.role)
if no, got callback(project'logic)
if yes, return
true, fill user.account, set singlePageAutoLoginStorage (no fill account.user.role)
false, normal process
if no, normal process
过程:page permission
setup the permission for every UIState, which is callback
1. getUsaAccountTypeNames
2. getSaRolesName
3. redirectLoginUrl
4. redirectSwitchUrl
5. redirectToNoRolePermission
if user.account == undefined
if yes, redirectLoginUrl
if no, check getUsaAccountTypeNames contain user.account.type
if no, redirectLoginUrl
if yes, process
filter pagePermissionRoles with user.account.roles (filter way is check every permissionRole got accountRole then keep, other remove)
if pagePermissionRoles length == 0
alert("your account roles is not allowed visit") > redirectToNoRolePermission
if pagePermissionRoles.length > 0
pagePermissionRoles contain UIStateRoleSelectedLocalStorage
if yes, fill user.role
if no, pagePermissionRoles.length == 1 ?
if yes, fill user.role
if no, pagePermissionRoles contain user.role ?
if yes, fill user.role
if no, redirectSwitchUrl
过程:login page
state.get(param) for the return url permission(mean success will redirect to returnUrl), the param come to url.
login page will show a select option for user select a accountType, this will let user know what the page need and ajax header need a selectedAccountType
succesfull will update the user.account and user.role
过程:logout
if auto login got project'logic, then logout also got project'logic, which is logout need clear all singlePageAutoLoginStorage or clear current singlePageAutoLoginStorage
概念 : 过程 : 前台login的更多相关文章
- Linux文件系统启动过程及login的实现
1. busybox简介 busybox是一个集成了一百多个最常用linux命令和工具的软件,它将许多常用的LINUX命令和工具结合到了一个单独的可执行程序中.虽然与相应的GNU工具比较起来,busy ...
- 规范 : 过程 : login cookies sessionTimeOut
规范 用户登入网站将得到一个cookies,如果用户有2个account,各别登入admin page 和 client page,是会得到2个cookies. 在reload page时,后台会得到 ...
- 了解 Nginx 基本概念
前言 本篇是我学习 Nginx 的一些笔记,主要内容讲述了一些了解 Nginx 需要的基本概念.然后探讨一下 Nginx 的模块化的组织架构,以及各个模块的分类.工作方式.职责和提供的相关指令. 主要 ...
- I.MX6 busybox set hosname and login with root
/************************************************************************** * I.MX6 busybox set hosn ...
- 了解 : http请求过程
游览器的请求就是http 请求,在javascript里可以调用.在发http请求时需要 1.header : 通常表明这是什么报头,如:图片是没有报头的.如果是ajax,会是json 2.body ...
- linux系统/sbin/init执行过程
对于Linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要 ...
- 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)
好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...
- 面向对象(OOP)基本概念
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
- Python中面向对象的概念(科普)
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
随机推荐
- gridview属性
1.列头充满:AutoSizeColumnsMode, Fill. 2.列内容居中:ColumnHeadersDefaultCellStyle, MiddleCenter. 3.行内容居中:RowsD ...
- iOS 专题 之 界面开发 之 控件
iOS 之 UIViewController iOS 之 Navagation Button iOS 之 UIButton iOS 之 UITextField iOS 之 UIStackView iO ...
- jQuery对象插件封装步骤
jQuery是js的一个非常优秀的库,它大大简化了js的很多操作,并且解决了js的大部分兼容性问题.甚至很多css兼容性问题,用jQuery写都能解决. 这里是对象插件的封装.当然,封装插件很多,这里 ...
- Assembly
Principles of Computer Organization and Assembly Language Using the JavaTM Virtual Machine http://it ...
- shc加密shell脚本
下载地址:http://www.datsi.fi.upm.es/~frosal/sources/ 安装 .tgz cd shc- mkdir -p /usr/local/man/man1 这步是必须的 ...
- Redhat6.4下配置本地yum
一.准备工作1. Linux安装盘插入光驱 2. 挂载光驱 [root@localhost ~]# mount /dev/cdrom /mnt/ mount: block device /dev/s ...
- SSM整合XML版(Maven Project)
一.使用IntelliJ IDEA 创建Maven管理的JAVA Web项目 ①新建项目,选择Maven Module 在本地磁盘用户的..m2目录下生成settings文件: Maven工程搭建完毕 ...
- 在C++中反射调用.NET(三)
在.NET与C++之间传输集合数据 上一篇<在C++中反射调用.NET(二)>中,我们尝试了反射调用一个返回DTO对象的.NET方法,今天来看看如何在.NET与C++之间传输集合数据. 使 ...
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
题目 /* 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始 ...
- .Net程序员学用Oracle系列(12):增删改查
1.插入语句 1.1.INSERT 1.2.INSERT ALL 2.删除语句 2.1.DELETE 2.2.TRUNCATE 3.更新语句 3.1.UPDATE 3.2.带子查询的 UPDATE 3 ...