public function add() { $m_role = M('Role'); $m_user = D('User'); if ($this->isPost()) { $m_user->create(); // echo $m_user->name; if ($_POST['radio_type'] == 'email') { //邮箱激活 if (!isset($_POST['name']) || $_POST['name'] == '') { alert('error', '请输入用户名', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['email']) || $_POST['email'] == '') { alert('error', '请输入邮箱', $_SERVER['HTTP_REFERER']); } elseif (!ereg('^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,4}$', $_POST['email'])) { alert('error', '邮箱格式不正确', $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('email = "%s"', $_POST['email'])->find()) { alert('error', '此邮箱已绑定用户!', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['category_id']) || $_POST['category_id'] == '') { alert('error', '请选择用户类别!', $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', '你没有添加管理员用户的权利!', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['position_id']) || $_POST['position_id'] == '') { alert('error', '请选择要添加用户的岗位!', $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('name = "%s"', $_POST['name'])->find()) { alert('error', '该用户已存在!', $_SERVER['HTTP_REFERER']); } $m_user->status = 0; //为用户设置默认导航(根据系统菜单设置中的位置) $m_navigation = M('navigation'); $navigation_list = $m_navigation->order('listorder asc')->select(); $menu = array(); foreach ($navigation_list as $val) { if ($val['postion'] == 'top') { $menu['top'][] = $val['id']; } elseif ($val['postion'] == 'user') { $menu['user'][] = $val['id']; } else { $menu['more'][] = $val['id']; } } $navigation = serialize($menu); $m_user->navigation = $navigation; if ($re_id = $m_user->add()) { // echo $m_user->getLastSql(); // die(); $time = time(); $info = $m_user->where('user_id = %d', $re_id)->find(); $m_user->where('user_id = %d' . $info['user_id'])->setField('reg_time', $time); $verify_code = md5(md5($time) . $info['salt']); C(F('smtp'), 'smtp'); import('@.ORG.Mail'); $url = U('user/active', array('user_id' => $info['user_id'], 'verify_code' => $verify_code), '', '', true); $content = '尊敬的' . $_POST['name'] . ':<br/><br/>您好!您的CRM管理员已经给您发送了邀请,请查收! 请点击下面的链接完成注册:<br/><br/>' . $url . '<br/><br/>如果以上链接无法点击,请将上面的地址复制到你的浏览器(如IE)的地址栏进入网站。<br/><br/>--悟空CRM管理员(这是一封自动产生的email,请勿回复。)'; //echo $info['email'].$content; //die(); if (SendMail($info['email'], '从悟空CRM添加用户邀请', $content, '悟空CRM管理员')) { $data['position_id'] = $_POST['position_id']; $data['user_id'] = $re_id; if ($role_id = $m_role->add($data)) { $m_user->where('user_id = %d', $re_id)->setField('role_id', $role_id); actionLog($re_id); alert('success', '添加成功,等待被邀请用户激活!', U('user/index')); } } else { alert('error', '无法发送邀请,请检查smtp设置信息!', $_SERVER['HTTP_REFERER']); } } else { alert('error', '添加失败,请联系管理员!', $_SERVER['HTTP_REFERER']); } } else { //填写密码 if (!isset($_POST['name']) || $_POST['name'] == '') { alert('error', '请输入用户名', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['password']) || $_POST['password'] == '') { alert('error', '请输入密码', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['category_id']) || $_POST['category_id'] == '') { alert('error', '请选择用户类别!', $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', '你没有添加管理员用户的权利!', $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['position_id']) || $_POST['position_id'] == '') { alert('error', '请选择要添加用户的岗位!', $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('name = "%s"', $_POST['name'])->find()) { alert('error', '该用户已存在!', $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', '你没有添加管理员用户的权利!', $_SERVER['HTTP_REFERER']); } $m_user->status = 1; //为用户设置默认导航(根据系统菜单设置中的位置) $m_navigation = M('navigation'); $navigation_list = $m_navigation->order('listorder asc')->select(); $menu = array(); foreach ($navigation_list as $val) { if ($val['postion'] == 'top') { $menu['top'][] = $val['id']; } elseif ($val['postion'] == 'user') { $menu['user'][] = $val['id']; } else { $menu['more'][] = $val['id']; } } $navigation = serialize($menu); $m_user->navigation = $navigation; if ($re_id = $m_user->add()) { $data['position_id'] = $_POST['position_id']; $data['user_id'] = $re_id; if ($role_id = $m_role->add($data)) { $m_user->where('user_id = %d', $re_id)->setField('role_id', $role_id); actionLog($re_id); if ($_POST['submit'] == '添加') { alert('success', '添加成功,该用户已可以登录系统!', U('user/index')); } else { alert('success', '添加成功,该用户已可以登录系统!', U('user/add')); } } } else { alert('error', '添加失败,请联系管理员!', $_SERVER['HTTP_REFERER']); } } } else { $m_config = M('Config'); if ($m_config->where('name = "smtp"')->find()) { $category = M('user_category'); $m_position = M('position'); if (!session('?admin')) { $department_list = getSubDepartment2(session('department_id'), M('role_department')->select(), 1); } else { $department_list = M('role_department')->select(); } $where['department_id'] = session('department_id'); $position_list = getSubPosition(session('position_id'), $m_position->where($where)->select()); $position_id_array = array(); foreach ($position_list as $k => $v) { $position_id_array[] = $v['position_id']; } $where['position_id'] = array('in', implode(',', $position_id_array)); $role_list = $m_position->where($where)->select(); if (empty($role_list) && !session('?admin')) { alert('error', '您没有添加用户的权限!', U('setting/smtp')); } else { $this->categoryList = $category->select(); $this->assign('department_list', $department_list); $this->alert = parseAlert(); $this->display(); } } else { alert('error', '请先设置smtp用于邀请用户', U('setting/smtp')); } } }
public function add() { $m_role = M('Role'); $m_user = D('User'); if ($this->isPost()) { $m_user->create(); // echo $m_user->name; if ($_POST['radio_type'] == 'email') { //邮箱激活 if (!isset($_POST['name']) || $_POST['name'] == '') { alert('error', L('INPUT_USER_NAME'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['email']) || $_POST['email'] == '') { alert('error', L('INPUT_EMAIL'), $_SERVER['HTTP_REFERER']); } elseif (!ereg('^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,4}$', $_POST['email'])) { alert('error', L('INVALIDATE_EMAIL'), $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('email = "%s"', $_POST['email'])->find()) { alert('error', L('EMAIL_HAS_BEEN_BOUND'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['category_id']) || $_POST['category_id'] == '') { alert('error', L('PLEASE_SELECT_USER_CATEGORY'), $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', L('YOU_HAVE_NO_PERMISSION_TO_ADD_ADMIN'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['position_id']) || $_POST['position_id'] == '') { alert('error', L('SELECT_POSITION_TO_ADD_USER'), $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('name = "%s"', $_POST['name'])->find()) { alert('error', L('USER_EXIST'), $_SERVER['HTTP_REFERER']); } $m_user->status = 0; //为用户设置默认导航(根据系统菜单设置中的位置) $m_navigation = M('navigation'); $navigation_list = $m_navigation->order('listorder asc')->select(); $menu = array(); foreach ($navigation_list as $val) { if ($val['postion'] == 'top') { $menu['top'][] = $val['id']; } elseif ($val['postion'] == 'user') { $menu['user'][] = $val['id']; } else { $menu['more'][] = $val['id']; } } $navigation = serialize($menu); $m_user->navigation = $navigation; if ($re_id = $m_user->add()) { // echo $m_user->getLastSql(); // die(); $time = time(); $info = $m_user->where('user_id = %d', $re_id)->find(); $m_user->where('user_id = %d' . $info['user_id'])->setField('reg_time', $time); $verify_code = md5(md5($time) . $info['salt']); C(F('smtp'), 'smtp'); import('@.ORG.Mail'); $url = U('user/active', array('user_id' => $info['user_id'], 'verify_code' => $verify_code), '', '', true); $content = L('ADD_USER_EMAIL_CONENT', array($_POST['name'], $url)); //echo $info['email'].$content; //die(); if (SendMail($info['email'], L('ADD_USER_INVITATION_FROM_5KCRM'), $content, L('5KCRM_ADMIN'))) { $data['position_id'] = $_POST['position_id']; $data['user_id'] = $re_id; if ($role_id = $m_role->add($data)) { $m_user->where('user_id = %d', $re_id)->setField('role_id', $role_id); actionLog($re_id); alert('success', L('ADD_SUCCESS_WAITING_TO_BE_ACTIVED'), U('user/index')); } } else { alert('error', L('CAN_NOT_SEND_INVITATION_CHECK_SMTP'), $_SERVER['HTTP_REFERER']); } } else { alert('error', L('ADDING FAILS CONTACT THE ADMINISTRATOR', array('')), $_SERVER['HTTP_REFERER']); } } else { //填写密码 if (!isset($_POST['name']) || $_POST['name'] == '') { alert('error', L('INPUT_USER_NAME'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['password']) || $_POST['password'] == '') { alert('error', L('INPUT_PASSWORD'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['category_id']) || $_POST['category_id'] == '') { alert('error', L('PLEASE_SELECT_USER_CATEGORY'), $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', L('YOU_HAVE_NO_PERMISSION_TO_ADD_ADMIN'), $_SERVER['HTTP_REFERER']); } elseif (!isset($_POST['position_id']) || $_POST['position_id'] == '') { alert('error', L('SELECT_POSITION_TO_ADD_USER'), $_SERVER['HTTP_REFERER']); } elseif ($m_user->where('name = "%s"', $_POST['name'])->find()) { alert('error', L('USER_EXIST'), $_SERVER['HTTP_REFERER']); } elseif (!session('?admin') && intval($_POST['category_id']) == 1) { alert('error', L('YOU_HAVE_NO_PERMISSION_TO_ADD_ADMIN'), $_SERVER['HTTP_REFERER']); } $m_user->status = 1; //为用户设置默认导航(根据系统菜单设置中的位置) $m_navigation = M('navigation'); $navigation_list = $m_navigation->order('listorder asc')->select(); $menu = array(); foreach ($navigation_list as $val) { if ($val['postion'] == 'top') { $menu['top'][] = $val['id']; } elseif ($val['postion'] == 'user') { $menu['user'][] = $val['id']; } else { $menu['more'][] = $val['id']; } } $navigation = serialize($menu); $m_user->navigation = $navigation; if ($re_id = $m_user->add()) { $data['position_id'] = $_POST['position_id']; $data['user_id'] = $re_id; if ($role_id = $m_role->add($data)) { $m_user->where('user_id = %d', $re_id)->setField('role_id', $role_id); actionLog($re_id); if ($_POST['submit'] == L('ADD')) { alert('success', L('ADD_USER_SUCCESS_USER_CAN_LOGIN_NOW'), U('user/index')); } else { alert('success', L('ADD_USER_SUCCESS_USER_CAN_LOGIN_NOW'), U('user/add')); } } } else { alert('error', L('ADDING FAILS CONTACT THE ADMINISTRATOR', array('')), $_SERVER['HTTP_REFERER']); } } } else { $m_config = M('Config'); $category = M('user_category'); $m_position = M('position'); if (!session('?admin')) { $department_list = getSubDepartment2(session('department_id'), M('role_department')->select(), 1); } else { $department_list = M('role_department')->select(); } $where['department_id'] = session('department_id'); $position_list = getSubPosition(session('position_id'), $m_position->where($where)->select()); $position_id_array = array(); $position_id_array[] = session('position_id'); foreach ($position_list as $k => $v) { $position_id_array[] = $v['position_id']; } $where['position_id'] = array('in', implode(',', $position_id_array)); $role_list = $m_position->where($where)->select(); if (empty($role_list) && !session('?admin')) { alert('error', L('YOU_HAVE_NO_PERMISSION_TO_ADD_USER'), $_SERVER['HTTP_REFERER']); } else { if (!$m_config->where('name = "smtp"')->find()) { alert('error', L('PLEASE_SET_SMTP_FIRST_TO_INVITATION_USER', array(U('setting/smtp')))); } $this->categoryList = $category->select(); $this->assign('department_list', $department_list); $this->alert = parseAlert(); $this->display(); } } }
/** * 动态首页 * **/ public function index() { $m_action_log = M('actionLog'); $m_comment = M('comment'); $where = array(); //查询条件 $where['action_delete'] = 0; $opeartion = 'view'; //默认都跳转到view界面 $p = isset($_GET['p']) ? intval($_GET['p']) : 1; $by = isset($_GET['by']) ? trim($_GET['by']) : ''; $reply = isset($_GET['reply']) ? trim($_GET['reply']) : ''; //module=log时,module_id为log表的log_id; module为dynamic时,module_id为action_log表的log_id //查询我的任务 $what['_string'] = 'about_roles like "%,' . session('role_id') . ',%" OR owner_role_id like "%,' . session('role_id') . ',%"'; $what['is_deleted'] = 0; $what['isclose'] = 0; $task_count = M('task')->where($what)->count(); //查看我的日程 $event_count = M('event')->where('owner_role_id = "%s" and isclose = 0 and is_deleted = 0', session('role_id'))->count(); switch ($by) { case 'log': $where['module_name'] = array('eq', 'log'); break; case 'crm': $where['module_name'] = array('neq', 'log'); break; } switch ($reply) { case 'tome': //回复我的 if ($by == 'log') { //如果是日志,查action_id $module_idArr = $m_comment->group('module_id')->where('to_role_id = %d and module = "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); $where['action_id'] = array('in', $module_idArr); } elseif ($by == '') { //如果为空,先查log,根据comment表的molule_id查到action_log表的action_id对应的log_id,再查动态,根据comment表的module_id,查到action_log表的log_id $log_idArr = $m_comment->group('module_id')->where('to_role_id = %d and module = "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); //comment 表的 module_id $module_idArrA = $m_action_log->group('action_id')->where(array('action_id' => array('in', $log_idArr), 'module_name' => 'log', 'action_delete' => 0))->getField('log_id', true); //module=log时,根据module_id对应action_log表的action_id查到的action_log表的log_id $module_idArrB = $m_comment->where('to_role_id = %d and module <> "%s"', session('role_id'), 'log')->group('module_id')->order('create_time desc')->getField('module_id', true); //module!=log时,根据module_id对应action_log表的log_id获取到action_log表的log_id empty($module_idArrA) ? $module_idArrA = array() : ($module_idArrA = $module_idArrA); empty($module_idArrB) ? $module_idArrB = array() : ($module_idArrB = $module_idArrB); $log_id = array_merge($module_idArrA, $module_idArrB); $where['log_id'] = array('in', $log_id); } else { $module_idArr = $m_comment->group('module_id')->where('to_role_id = %d and module <> "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); $where['log_id'] = array('in', $module_idArr); } break; case 'toother': //我回复的 if ($by == 'log') { //如果是日志,查action_id $module_idArr = $m_comment->group('module_id')->where('creator_role_id = %d and module = "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); $where['action_id'] = array('in', $module_idArr); } elseif ($by == '') { //如果为空,先查log,根据comment表的molule_id查到action_log表的action_id对应的log_id,再查动态,根据comment表的module_id,查到action_log表的log_id $log_idArr = $m_comment->group('module_id')->where('creator_role_id = %d and module = "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); //comment 表的 module_id $module_idArrA = $m_action_log->group('action_id')->where(array('action_id' => array('in', $log_idArr), 'module_name' => 'log', 'action_delete' => 0))->getField('log_id', true); //module=log时,根据module_id对应action_log表的action_id查到的action_log表的log_id $module_idArrB = $m_comment->where('creator_role_id = %d and module <> "%s"', session('role_id'), 'log')->group('module_id')->order('create_time desc')->getField('module_id', true); //module!=log时,根据module_id对应action_log表的log_id查到的action_log表的log_id empty($module_idArrA) ? $module_idArrA = array() : ($module_idArrA = $module_idArrA); empty($module_idArrB) ? $module_idArrB = array() : ($module_idArrB = $module_idArrB); $log_id = array_merge($module_idArrA, $module_idArrB); $where['log_id'] = array('in', $log_id); } else { $module_idArr = $m_comment->group('module_id')->where('creator_role_id = %d and module <> "%s"', session('role_id'), 'log')->order('create_time desc')->getField('module_id', true); $where['log_id'] = array('in', $module_idArr); } break; } if (!empty($reply)) { $params[] = "reply=" . trim($_GET['reply']); } if ($_GET['department_id']) { $department_id = intval($_GET['department_id']); //选中部门下的所有员工 $subPositionIdArr = M('position')->where('department_id = %d', $department_id)->order('position_id asc')->getField('position_id', true); $subRoleIdArr = M('role')->where(array('position_id' => array('in', $subPositionIdArr)))->getField('role_id', true); //部门下role_id if (!session('admin')) { //条件为选中部门下,我的下属员工的role_id $mySubRoleIdArr = getSubRoleId(); //我的下属role_id $where['role_id'] = array('in', array_intersect($subRoleIdArr, $mySubRoleIdArr)); } else { $where['role_id'] = array('in', $subRoleIdArr); } } else { //条件为选中部门下,我的下属员工的role_id if (!session('?admin')) { $where['role_id'] = array('in', getSubRoleId()); } } if ($_REQUEST["field"]) { $field = trim($_REQUEST['field']); $search = empty($_REQUEST['search']) ? '' : trim($_REQUEST['search']); if ($field == 'role') { if (!empty($search)) { $same_role_id_array = M('user')->where('name like "%s"', "%{$search}%")->getField('role_id', true); $role_id_array = getSubRoleId(true, 1); //下属role_id $role_idArr = array_intersect($same_role_id_array, $role_id_array); //交集 $where['role_id'] = array('in', $role_idArr); } } elseif ($field == 'content') { $where['content'] = array('like', "%{$search}%"); } $params = array('field=' . trim($_REQUEST['field']), 'search=' . $search); } $action_log = $m_action_log->where($where)->page($p . ',5')->order('create_time desc')->select(); $count = $m_action_log->where($where)->count(); import("@.ORG.Page"); $Page = new Page($count, 5); if (!empty($_GET['by'])) { $params[] = "by=" . trim($_GET['by']); } foreach ($action_log as $k => $v) { if ($v['module_name'] == 'finance') { $module_name = substr($v['param_name'], 2); } else { $module_name = $v['module_name']; } $m_module_name = M($module_name); $pk_id = $m_module_name->getPk(); $object_module = $m_module_name->where("{$pk_id} = %d", $v['action_id'])->find(); $name = $object_module['name']; if (empty($name)) { $name = $object_module['subject']; } //如果是日志,则追加日志内容 if ($v['action_name'] == 'mylog_add') { $apContent = $object_module['content']; $appHtml = '<p>' . $apContent . '</p>'; //如果是日志,则跳转到mylog_view $action_name = 'mylog_view'; } else { $appHtml = ''; $action_name = strtolower($v['action_name']); } $action_log[$k]['creator'] = getUserByRoleId($v['role_id']); $username = $action_log[$k]['creator']['user_name']; $operation = L(strtolower($v['action_name'])) . L('THE_IS'); $module = L(strtolower($v['module_name'])); $action_log[$k]['dynamic'] = $username . ' ' . $operation . $module . ' - <a href="./index.php?m=' . $v[module_name] . '&a=' . $action_name . '&' . $param_name . '&id=' . $v[action_id] . '">' . $name . '</a>' . $appHtml; //查评论 //如果是评论日志,则从操作日志表中根据action_id查找,否则根据操作日志表的log_id查找 if ($v['module_name'] == 'log') { $comment = $m_comment->where('module = "%s" and module_id = %d', 'log', $v['action_id'])->order('create_time desc')->limit(0, 5)->select(); $comment_count = $m_comment->where('module = "%s" and module_id = %d', 'log', $v['action_id'])->order('create_time desc')->count(); } else { $comment = $m_comment->where('module = "%s" and module_id = %d', 'dynamic', $v['log_id'])->order('create_time desc')->limit(0, 5)->select(); $comment_count = $m_comment->where('module = "%s" and module_id = %d', 'dynamic', $v['log_id'])->order('create_time desc')->count(); } //$comment = $m_comment->where('(module = "%s" or module = "%s") and module_id = %d','log', 'dynamic', $v['log_id'])->order('create_time desc')->select(); foreach ($comment as $key => $val) { $comment[$key]['comment_role'] = getUserByRoleId($val['creator_role_id']); } $action_log[$k]['comment'] = $comment; $action_log[$k]['comment_count'] = $comment_count; $action_log[$k]['comment_left_count'] = intval($comment_count) - 5; } $this->parameter = implode('&', $params); $this->actionLog = $action_log; $this->event_count = $event_count; $this->task_count = $task_count; $this->userInfo = getUserByRoleId(session('role_id')); $this->department = getSubDepartment2(0, M('roleDepartment')->select()); $show = $Page->show(); $this->page = $show; $this->alert = parseAlert(); $this->display(); }