From a70e90d4586a032d6c5349d6a77e34178953e37d Mon Sep 17 00:00:00 2001 From: zhujinyong Date: Tue, 8 Jan 2013 07:06:19 +0000 Subject: [PATCH] * code for task#1037. --- module/user/control.php | 37 +++++++++++++++++++++------ module/user/js/batchcreate.js | 11 ++++++++ module/user/js/create.js | 11 ++++++++ module/user/lang/en.php | 1 + module/user/lang/zh-cn.php | 1 + module/user/model.php | 26 +++++++++++-------- module/user/view/batchcreate.html.php | 6 ++++- module/user/view/create.html.php | 7 ++++- 8 files changed, 80 insertions(+), 20 deletions(-) create mode 100644 module/user/js/batchcreate.js create mode 100644 module/user/js/create.js diff --git a/module/user/control.php b/module/user/control.php index 79933b5577..d3983c7b7c 100644 --- a/module/user/control.php +++ b/module/user/control.php @@ -263,13 +263,23 @@ class user extends control if(dao::isError()) die(js::error(dao::getError())); die(js::locate($this->createLink('company', 'browse'), 'parent')); } + $groups = $this->dao->select('id, name, role')->from(TABLE_GROUP)->fetchAll(); + $groupList = array('' => ''); + $roleGroup = array(); + foreach($groups as $group) + { + $groupList[$group->id] = $group->name; + if($group->role) $roleGroup[$group->role] = $group->id; + } $header['title'] = $this->lang->company->common . $this->lang->colon . $this->lang->user->create; $position[] = $this->lang->user->create; - $this->view->header = $header; - $this->view->position = $position; - $this->view->depts = $this->dept->getOptionMenu(); - $this->view->deptID = $deptID; + $this->view->header = $header; + $this->view->position = $position; + $this->view->depts = $this->dept->getOptionMenu(); + $this->view->groupList = $groupList; + $this->view->roleGroup = $roleGroup; + $this->view->deptID = $deptID; $this->display(); } @@ -284,6 +294,15 @@ class user extends control */ public function batchCreate($deptID = 0) { + $groups = $this->dao->select('id, name, role')->from(TABLE_GROUP)->fetchAll(); + $groupList = array('' => ''); + $roleGroup = array(); + foreach($groups as $group) + { + $groupList[$group->id] = $group->name; + if($group->role) $roleGroup[$group->role] = $group->id; + } + $this->lang->set('menugroup.user', 'company'); $this->lang->user->menu = $this->lang->company->menu; $this->lang->user->menuOrder = $this->lang->company->menuOrder; @@ -296,10 +315,12 @@ class user extends control $header['title'] = $this->lang->company->common . $this->lang->colon . $this->lang->user->batchCreate; $position[] = $this->lang->user->batchCreate; - $this->view->header = $header; - $this->view->position = $position; - $this->view->depts = $this->dept->getOptionMenu(); - $this->view->deptID = $deptID; + $this->view->header = $header; + $this->view->position = $position; + $this->view->depts = $this->dept->getOptionMenu(); + $this->view->deptID = $deptID; + $this->view->groupList = $groupList; + $this->view->roleGroup = $roleGroup; $this->display(); } diff --git a/module/user/js/batchcreate.js b/module/user/js/batchcreate.js new file mode 100644 index 0000000000..f6c3c9434a --- /dev/null +++ b/module/user/js/batchcreate.js @@ -0,0 +1,11 @@ +function changeGroup(role, i) +{ + if(role || roleGroup[role]) + { + $('#group' + i).val(roleGroup[role]); + } + else + { + $('#group' + i).val(''); + } +} diff --git a/module/user/js/create.js b/module/user/js/create.js new file mode 100644 index 0000000000..b24e605ba4 --- /dev/null +++ b/module/user/js/create.js @@ -0,0 +1,11 @@ +function changeGroup(role) +{ + if(role || roleGroup[role]) + { + $('#group').val(roleGroup[role]); + } + else + { + $('#group').val(''); + } +} diff --git a/module/user/lang/en.php b/module/user/lang/en.php index dc42e8b49c..76ae44ca8d 100644 --- a/module/user/lang/en.php +++ b/module/user/lang/en.php @@ -17,6 +17,7 @@ $lang->user->account = 'Account'; $lang->user->password = 'Password'; $lang->user->password2 = 'Repeat password'; $lang->user->role = 'Role'; +$lang->user->group = 'Group'; $lang->user->realname = 'Fullname'; $lang->user->nickname = 'Nickname'; $lang->user->commiter = 'Commit account'; diff --git a/module/user/lang/zh-cn.php b/module/user/lang/zh-cn.php index 29c1fe3c03..b152d3724b 100644 --- a/module/user/lang/zh-cn.php +++ b/module/user/lang/zh-cn.php @@ -17,6 +17,7 @@ $lang->user->account = '用户名'; $lang->user->password = '密码'; $lang->user->password2 = '请重复密码'; $lang->user->role = '角色'; +$lang->user->group = '分组'; $lang->user->realname = '真实姓名'; $lang->user->nickname = '昵称'; $lang->user->commiter = '源代码帐号'; diff --git a/module/user/model.php b/module/user/model.php index f8aa4a3181..24df46d79e 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -201,7 +201,7 @@ class userModel extends model ->setDefault('join', '0000-00-00') ->setIF($this->post->password1 != false, 'password', md5($this->post->password1)) ->setIF($this->post->password1 == false, 'password', '') - ->remove('password1, password2') + ->remove('group, password1, password2') ->get(); $this->dao->insert(TABLE_USER)->data($user) @@ -211,16 +211,12 @@ class userModel extends model ->check('account', 'account') ->checkIF($this->post->email != false, 'email', 'email') ->exec(); - if($this->post->role) + if($this->post->group) { - $group = $this->dao->select('id')->from(TABLE_GROUP)->where('role')->like('%' . $this->post->role . '%')->fetch(); - if($group) - { - $data = new stdClass(); - $data->account = $this->post->account; - $data->group = $group->id; - $this->dao->insert(TABLE_USERGROUP)->data($data)->exec(); - } + $data = new stdClass(); + $data->account = $this->post->account; + $data->group = $this->post->group; + $this->dao->insert(TABLE_USERGROUP)->data($data)->exec(); } } @@ -254,6 +250,7 @@ class userModel extends model $data[$i]->account = $users->account[$i]; $data[$i]->realname = $users->realname[$i]; $data[$i]->role = $users->role[$i] == 'ditto' ? (isset($prev['role']) ? $prev['role'] : '') : $users->role[$i]; + $data[$i]->group = $users->group[$i] == 'ditto' ? (isset($prev['group']) ? $prev['group'] : '') : $users->group[$i]; $data[$i]->email = $users->email[$i]; $data[$i]->gender = $users->gender[$i]; $data[$i]->password = md5($users->password[$i]); @@ -261,12 +258,21 @@ class userModel extends model $accounts[$i] = $data[$i]->account; $prev['dept'] = $data[$i]->dept; $prev['role'] = $data[$i]->role; + $prev['group'] = $data[$i]->group; $prev['password'] = $users->password[$i]; } } foreach($data as $user) { + if($user->group) + { + $group = new stdClass(); + $group->account = $user->account; + $group->group = $user->group; + } + unset($user->group); + $this->dao->insert(TABLE_USERGROUP)->data($group)->exec(); $this->dao->insert(TABLE_USER)->data($user)->autoCheck()->exec(); if(dao::isError()) { diff --git a/module/user/view/batchcreate.html.php b/module/user/view/batchcreate.html.php index a17e31869c..1aa08e1b31 100644 --- a/module/user/view/batchcreate.html.php +++ b/module/user/view/batchcreate.html.php @@ -12,6 +12,7 @@ ?> +
@@ -21,19 +22,22 @@ + $lang->user->ditto)?> user->roleList = $lang->user->roleList + array('ditto' => $lang->user->ditto)?> + $lang->user->ditto)?> user->batchCreate; $i++):?> - + +
user->batchCreate;?>
user->account;?> user->realname;?> user->role;?>user->group;?> user->email;?> user->gender;?> user->password;?>
0 ? 'ditto' : $deptID, "class='select-1'");?> user->roleList, $i > 0 ? 'ditto' : '', "class='select-1'");?>user->roleList, $i > 0 ? 'ditto' : '', "class='select-1' onchange='changeGroup(this.value, $i)'");?> 0 ? 'ditto' : '', "class='select-1'");?> user->genderList, 'm');?> diff --git a/module/user/view/create.html.php b/module/user/view/create.html.php index 4062780201..4abe16bc1a 100644 --- a/module/user/view/create.html.php +++ b/module/user/view/create.html.php @@ -13,6 +13,7 @@ user->placeholder));?> + @@ -38,7 +39,11 @@ - + + + + +
user->create;?>
user->role;?>user->roleList, '', "class='select-3'");?>user->roleList, '', "class='select-3' onchange='changeGroup(this.value)'");?>
user->group;?>
user->email;?>