为了解决自动登入、访问权限机制、登入权限而诞生了这过程,过程需要概念来维护记忆。

通过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的更多相关文章

  1. Linux文件系统启动过程及login的实现

    1. busybox简介 busybox是一个集成了一百多个最常用linux命令和工具的软件,它将许多常用的LINUX命令和工具结合到了一个单独的可执行程序中.虽然与相应的GNU工具比较起来,busy ...

  2. 规范 : 过程 : login cookies sessionTimeOut

    规范 用户登入网站将得到一个cookies,如果用户有2个account,各别登入admin page 和 client page,是会得到2个cookies. 在reload page时,后台会得到 ...

  3. 了解 Nginx 基本概念

    前言 本篇是我学习 Nginx 的一些笔记,主要内容讲述了一些了解 Nginx 需要的基本概念.然后探讨一下 Nginx 的模块化的组织架构,以及各个模块的分类.工作方式.职责和提供的相关指令. 主要 ...

  4. I.MX6 busybox set hosname and login with root

    /************************************************************************** * I.MX6 busybox set hosn ...

  5. 了解 : http请求过程

    游览器的请求就是http 请求,在javascript里可以调用.在发http请求时需要 1.header : 通常表明这是什么报头,如:图片是没有报头的.如果是ajax,会是json 2.body ...

  6. linux系统/sbin/init执行过程

    对于Linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要 ...

  7. 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)

    好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...

  8. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  9. Python中面向对象的概念(科普)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

随机推荐

  1. 横向子菜单栏ul根据其子元素li个数动态获取宽度,并与父li绝对垂直居中的jquery代码段

    ;(function(window){    $('.menuitem').hover(function(){        $('>a',this).css('background-color ...

  2. linux 下 tomcat 之 配置静态资源路径

    1.找到配置文件 找到tomcat\conf\server.xml 2.找到Host 3. 添加 Context <Host name="localhost" appBase ...

  3. DBGrid 各属性的设置

    在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观 ...

  4. 在Unity3D中实现安卓平台的本地通知推送

    [前言] 对于手游来说,什么时候需要推送呢?玩过一些带体力限制的游戏就会发现,我的体力在恢复满后,手机会收到一个通知告诉我体力已完全恢复了.这类通知通常是由本地的客户端发起的,没有经过服务端. 在安卓 ...

  5. ThinkPHP 模板的包含、渲染、继承

    一.模板包含        <include file="完整模板文件名" />        <include file="./Tpl/default ...

  6. 【转载】doxygen+graphviz生成代码文档

    一.工具 doxygen:http://www.stack.nl/~dimitri/doxygen/download.html graphviz:http://www.graphviz.org/ 二. ...

  7. Linux内存管理之slab分配器

    slab分配器是什么? 参考:http://blog.csdn.net/vanbreaker/article/details/7664296 slab分配器是Linux内存管理中非常重要和复杂的一部分 ...

  8. Bootstrap入门(九)组件3:按钮组

    Bootstrap入门(九)组件3:按钮组   先引入本地的CSS文件和JS文件(注:1.bootstrap是需要jQuery支持的.2.需要在<body>当中添加) <link h ...

  9. 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标

    前言 FontAwesome 大家都不陌生,精美的图标,出现在各式各样的网页中. 最近在做 Windows Forms 应用程序,要求美观,就想能不能把 FontAwesome 图标用上,于是就有了本 ...

  10. 设备文件三大结构:inode,file,file_operations

    驱动程序就是向下控制硬件,向上提供接口,这里的向上提供的接口最终对应到应用层有三种方式:设备文件,/proc,/sys,其中最常用的就是使用设备文件,而Linux设备中用的最多的就是字符设备,本文就以 ...