| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | <?php/** *   *  @author  Mike <m@9026.com> *  @version    1.0 *  @date 2015年10月12日 * */namespace App\Http\Controllers\Admin\Base;use App\Http\Controllers\Admin\Controller;use App\Services\Admin\Role;use App\Services\Admin\AdminUser;use Request;class UserController extends Controller{    private $_service;    private $_role_service;    /**     * 初始化Service     */    public function __construct()    {        parent::__construct();        if(!$this->_service) $this->_service = new AdminUser();        if(!$this->_role_service) $this->_role_service = new Role();    }        /**     * 列表     */    function index()    {        $request = Request::all();        $search['keyword'] = Request::input('keyword');        $orderby = array();        if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {            $orderby[$request['sort_field']] = $request['sort_field_by'];        }        $list = $this->_service->search($search, $orderby);        $roles = pairList($this->_getRoles(), 'id', 'name');        return view('admin.base.user.index', compact('list', 'roles'));    }    /**     * 列表     */    function resetPwd()    {//        $pwd = '$2y$10$jRQGg4qdfDhdt.4TZpDaL.2pbgBJZqvdR.AMrE5rA2D3dgMyit8vS';//        var_dump(crypt('abcded', $pwd));exit;        $request = Request::all();        $search['keyword'] = Request::input('keyword');        $search['resetPwd'] =true;        $orderby = array();        if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {            $orderby[$request['sort_field']] = $request['sort_field_by'];        }        $list = $this->_service->search($search, $orderby);        return view('admin.base.user.resetPwd', compact('list'));    }    function resetPwdPass()    {        $ok = $this->_service->resetPwdPass(Request::get('id'));        if($ok) {            $this->showMessage('操作成功');        }else{            $this->showWarning('操作失败');        }    }    function resetPwdReject()    {        $ok = $this->_service->resetPwdReject(Request::get('id'));        if($ok) {            $this->showMessage('操作成功');        }else{            $this->showWarning('操作失败');        }    }    /**     * 更新     */    public function create()    {        if(Request::method() == 'POST'){            $data = Request::input('info');            if(isset($data['admin_role_id']))$data['admin_role_id'] = implode(',', $data['admin_role_id']);            if($this->_service->create($data)){                $this->showMessage('操作成功', urldecode(Request::input('_referer')));            }else{                $this->showWarning('操作失败'  . $this->_service->getMsg(), urldecode(Request::input('_referer')));            }        }        $data = $this->_service->find(Request::input('id'));        if($this->_user['is_root']){            $roles = $this->_getRoles();        }else{            $roles = $this->_getCurrentRoles();        }        return view('admin.base.user.edit', compact('data', 'roles'));    }    /**     * 更新     */    public function update()    {        if(Request::method() == 'POST'){            $data = Request::input('info');            if(isset($data['admin_role_id']))$data['admin_role_id'] = implode(',', $data['admin_role_id']);            if($this->_service->update(Request::input('id'), $data)){                $this->showMessage('操作成功', urldecode(Request::input('_referer')));            }else{                $this->showWarning('操作失败' . $this->_service->getMsg(), urldecode(Request::input('_referer')));            }        }        $data = $this->_service->find(Request::input('id'));                if($this->_user['is_root']){            $roles = $this->_getRoles();        }else{            $roles = $this->_getCurrentRoles();        }        return view('admin.base.user.edit', compact('data', 'roles'));    }        public function auth() {        if(Request::method() == 'POST'){            $info = Request::input('info');            if(!empty($info['admin_role_id'])){                $info['admin_role_id'] = implode(',', $info['admin_role_id']);            }            if(!$info['id']) {                $this->showWarning('数据不全', urldecode(Request::input('_referer')));            }            if($this->_service->auth($info)){                $this->showMessage('操作成功', urldecode(Request::input('_referer')));            }else{                $this->showWarning('操作失败'. $this->_service->getMsg(), urldecode(Request::input('_referer')));            }        }        if($this->_user['is_root']){            $roles = $this->_getRoles();        }else{            $roles = $this->_getCurrentRoles();        }        return view('admin.base.user.auth', compact( 'roles'));    }    public function status() {        $ok = $this->_service->updateStatus(Request::get('id'),Request::get('status'));        if($ok) {            $this->showMessage('操作成功');        }else{            $this->showWarning('操作失败' . $this->_service->getMsg());        }    }    /**     * 得到当前角色所拥有的角色     */    private function _getCurrentRoles()    {        $_node = $this->_getRoleNode();        return $this->_role_service->getChildByLevel($_node['level'])->toArray();    }        /**     * 获取角色权限节点(level越小权限越大)     */    private function _getRoleNode()    {        return $this->_role_service->getLevelNode($this->_user['admin_role_id'])->toArray();    }        /**     * 得到所有角色     */    private function _getRoles()    {        return $this->_role_service->get()->toArray();    }    }
 |