登录管理之管理员免密切换任意账户

1.问题描述

现在网站大多是自行注册账户,但是也有一些内部网站,比较特别,不能自行注册账户,只能由管理员创建.那么问题就来了,管理员创建了一个新账户之后,怎么知道新账户的权限是多少呢?正常业务逻辑应该是,管理员注销账户,然后用刚创建的新用户登录系统,查看相关的权限控制怎么样.

这里问题就来了,管理员平时管理的事务也是很多的,总是一次又一次的注销登录,很是麻烦.

于是就提出了这样一个需求,是否可以管理员账户登录时,可以任意切换其他账户,不需要输入密码,不能出现登录页面.

2.问题分析

从问题中,可以分析出,说是直接切换,实际上还是先退出,再登录,只不过是这些操作不需要前台操作栏,通过后台进行退出和重新登录操作,然后前台页面自动刷新,变成新用户登录上去的初始化页面.

3.实现方法逻辑

登录方法:正常登录方法,空参登录方法.

登出方法:正常登出方法.

页面触发用户切换时,先触发正常登出方法,再进行登录,同时页面重定向到初始页面.

4.页面和代码实现

页面:

frame.jsp

JavaScript代码:

function openUser(){

    //获取session中的登录名

    var userName = '${sessionScope.UserInfo.LOGIN_ID}';

    //判断登录名是否为管理员账户,是打开用户列表,否给出提示信息

    if (userName == "admin"){

        var $inserts = $("#openUserDialog");

        $inserts.dialog('open');

    }else{

        //不是管理员,不允许切换用户

        $.messager.alert("提示信息","没有权限","info");

        return ;

    }

}

//初始化用户列表数据

$(function(){

    $(window).resize(

        function(){ 

            $('#user_table').datagrid('resize');

         });

});

//用户列表页面支持模糊查询

function searchUser(){

    var params = {}; 

     params.loginid=$('#input_search').val(); 

     params.username=$('#input_search').val();     

    $('#user_table').datagrid('options').queryParams=params;

    $('#user_table').datagrid('reload');

}

//选择要切换的用户所触发的方法

function toSelected(id){

    //管理员

    var user_id = '${sessionScope.UserInfo.USER_ID}';

    var url = appBase + "/pages/frame/user/UserAction.jsp?eaction=user_info";

    var new_user_id = id;

    //判断是否获取到所切换到的用户id

    if(new_user_id == null || new_user_id == ''){

        $.messager.alert("提示信息","请选择登录用户名!","info");

        return;

    }

    //前台页面获取选中用户的用户密码

    var passw;

    $.ajax({

        type : "post",

        url : url,

        data : {"userid":new_user_id}, 

         async : true, 

         success : function(data){

             var res = JSON.parse(data); 

             passw=res.password; 

             var login_id = res.loginId;

             if(passw == null || passw == ''){ 

                 $.messager.alert("提示信息","缺少用户信息,无法登陆!","info");

             }else{ 

                //根据用户id和密码进行用户信息切换,并关闭用户列表框

                doChangeUser(login_id,passw); 

                 var $inserts = $("#openUserDialog"); 

                 $inserts.dialog('close');

             }

         } 

    });

}

function doChangeUser(login_id,passw){

        var url_out = appBase+ "logout.e";

        var url_login = appBase+ "login.e";

        var datas = {user:login_id,pwd:passw};

        //登出

        $.post(url_out, null, function(data){});

        //登录

        $.post(url_login, datas, function(data){

            //页面重定向到登录初始页面

            top.location = url_login;

        });

    }

//初始化用户列表操作栏方法


HTML代码:(注:使用的easy框架)



后台代码:

正常login代码片段:

Map user_info = absLogin.login(user,pwd,runner);

if(user_info != null){

//将用户信息放入session中--省略

return "/pages/frame/Frame.jsp";

}else{

request.setAttribute("LoginMsg","用户或密码错误");

return "/index.jsp";

}

无参login代码片段:

return "/pages/frame/Frame.jsp";

登出代码(略):

5.结果展示

管理员用户登录
用户切换界面
切换后界面
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 最近在学习flask,用到flask-login,发现网上只有0.1版本的中文文档,看了官方已经0.4了,并且添加...
    ZZES_ZCDC阅读 5,929评论 3 24
  • 4 创建一个社交网站 在上一章中,你学习了如何创建站点地图和订阅,并且为博客应用构建了一个搜索引擎。在这一章中,你...
    lakerszhy阅读 2,155评论 0 7
  • 经过对django的初步学习,我们已经对后台的基本流程以及django的运作有了一定的了解,但是这还不足够,dja...
    coder_ben阅读 3,820评论 8 34
  • 这个春天的蝴蝶 总想打听我的心事 我羞涩的一瓣红 便将所有的秘密泄露 夜深人静的时候 我的蝴蝶,你又去了哪儿 我多...
    冷冬年阅读 877评论 17 70