/**
* 获取信息
* @param array $where 条件
* @return array 信息
*/
public function getWhereInfo($where)
{
return $this->table("__ADMIN_USER__ as A") //table方法指定操作的数据表,__ADMIN_USER__简化数据表名,后面的as表示设置admin_user别名为A
->join('__ADMIN_GROUP__ as B ON A.group_id = B.group_id')//用于根据两个或多个表中的列之间的关系,从这些表中查询数据
->field('A.*,B.status as group_status,B.name as group_name,B.base_purview,B.menu_purview')//标识要返回或者操作的字段,可以用于查询和写入操作/
->where($where)
->find();
}
 /**
* 登录用户
* @param int $userId ID
* @return bool 登录状态
*/
public function setLogin($userId)
{
// 更新登录信息
$data = array(
'user_id' => $userId,
'last_login_time' => NOW_TIME,
'last_login_ip' => get_client_ip(),//调用thinkphp内置函数获取IP地址
);
$this->save($data);//将用户的登陆信息记录下来以备安全监测
//写入系统记录
api('Admin','AdminLog','addLog','登录系统');
//设置cookie
$auth = array(
'user_id' => $userId,
);
session('admin_user', $auth);
session('admin_user_sign', data_auth_sign($auth));
return true;
}

这里将用户的IP地址和登陆时间记录下来了更安全。

分析DuxCms之AdminUserModel的更多相关文章

  1. 分析DuxCms之AdminController

    /** * 后台模板显示 调用内置的模板引擎显示方法, * @access protected * @param string $templateFile 指定要调用的模板文件 * @return v ...

  2. duxcms SQL Injection In /admin/module/loginMod.class.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业.公司.新闻.个 ...

  3. alias导致virtualenv异常的分析和解法

    title: alias导致virtualenv异常的分析和解法 toc: true comments: true date: 2016-06-27 23:40:56 tags: [OS X, ZSH ...

  4. 火焰图分析openresty性能瓶颈

    注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...

  5. 一起来玩echarts系列(一)------箱线图的分析与绘制

    一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...

  6. 应用工具 .NET Portability Analyzer 分析迁移dotnet core

    大多数开发人员更喜欢一次性编写好业务逻辑代码,以后再重用这些代码.与构建不同的应用以面向多个平台相比,这种方法更加容易.如果您创建与 .NET Core 兼容的.NET 标准库,那么现在比以往任何时候 ...

  7. UWP中新加的数据绑定方式x:Bind分析总结

    UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也 ...

  8. 查看w3wp进程占用的内存及.NET内存泄露,死锁分析

    一 基础知识 在分析之前,先上一张图: 从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程. 在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方 ...

  9. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

随机推荐

  1. Leetcode_165_Compare Version Numbers

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42342251 Compare two version nu ...

  2. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

    根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...

  3. 关于iOS常用的26中公共方法,可copy的代码

    1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionar ...

  4. DrawerLayout实现网易新闻抽屉效果

    个人感觉网易的客户端比较前卫,有很多新鲜的东西,有时候模仿这些好的客户端能学到很多东西 开始今天的主要课题,下面是网易客户端抽屉模式实现的效果 其实有个Drawerlayout这个布局,你得问题就已经 ...

  5. saiku 网站简介

    Saiku web:http://docs.analytical-labs.com/saiku/documentation/2013/08/15/datasources.html Click &quo ...

  6. 中国象棋游戏Chess(2) - 走棋

    之前的文章请看:中国象棋游戏Chess(1) - 棋盘绘制以及棋子的绘制 现在实现走棋的功能. 首先需要获取点击到的棋子,用QWidget中的函数 mouseReleaseEvent 实现函数: vo ...

  7. Erlang cowboy 处理简单的HTTP请求

    Erlang cowboy 处理简单的HTTP请求 原文出自: Handling plain HTTP requests 处理请求的最简单的方式是写一个简单的HTTP处理器.它的模型参照Erlang/ ...

  8. ubuntu15.04下sublime text不能输入中文的解决

    原因是由于中文输入法的输入焦点不能插入sublime的输入窗口中,需要使用代码强制插入输入焦点. 代码是cjacker 君提供的,可以看原始的讨论帖子: http://www.sublimetext. ...

  9. Cocoa练习01:一个简单的Todo list程序

    写一个简单的todo list程序,界面如下图: 在TextField区域输入文字,点击Add按钮会将文字显示在下面的TableView列表中.TableView列表有2列,第一列是文字的输入时间:第 ...

  10. ZYThumbnailTableView类似于小型阅读器

    Demo github地址: https://github.com/liuzhiyi1992/ZYThumbnailTableView  原文地址:http://zyden.vicp.cc/zythu ...