Exemplo n.º 1
0
 public function new_user()
 {
     $register_form = parent::load('form', 'LoginForm', $_POST, 'system/contrib/auth');
     parent::load('model', 'system/contrib/auth');
     $roles = RoleTable::getInstance()->findAll();
     $this->smarty->assign('all_roles', $roles);
     $groups = GroupTable::getInstance()->findAll();
     $groups_cleaned = array();
     foreach ($groups as $k => $v) {
         $groups_cleaned[$v['id']] = $v['name'];
     }
     $this->smarty->assign('all_groups', $groups_cleaned);
     if ($this->is_post()) {
         /*
          * 验证表单数据
          */
         if ($register_form->is_valid() && Request::$method == 'POST') {
             $user = UserTable::findByUsername($register_form->data['username']);
             if ($user) {
                 array_push($register_form->messages, '员工名称已经存在');
             } else {
                 $user = new User();
                 $user->username = $register_form->data['username'];
                 $user->password = User::generate_password($register_form->data['password']);
                 $user->group_id = abs(intval($_POST['group']));
                 /*
                  * 用户角色
                  */
                 if ($_POST['roles']) {
                     foreach ($roles as $k => $role) {
                         if (in_array($role['id'], $_POST['roles'])) {
                             $user->Role[$k] = $role;
                         }
                     }
                 }
                 $user->save();
                 HTTPRedirect::flash_to('manager/new_user', sprintf('添加新员工 %s 成功', $user->username), $this->smarty);
             }
         }
     }
     $this->smarty->assign('register_form', $register_form->output());
     $this->smarty->display('manager/users/new');
 }
Exemplo n.º 2
0
 public function register()
 {
     return false;
     parent::load('model', 'system/contrib/auth.User');
     /*
      * Loggined redirect to default
      */
     if (User::is_authenticated()) {
         import('system/share/network/redirect');
         HTTPRedirect::to(ini('base/DEFAULT_ACTION'));
     }
     $smarty = parent::load('smarty');
     $register_form = parent::load('form', 'LoginForm', $_POST);
     if (!$this->is_post()) {
         $smarty->assign('register_form', $register_form->output());
         $smarty->display('auth/register');
         return;
     }
     if ($register_form->is_valid() && Request::$method == 'POST') {
         $user = UserTable::findByUsername($register_form->data['username']);
         if ($user) {
             array_push($register_form->messages, _('Username exists'));
         } else {
             $user = new User();
             $user->username = $register_form->data['username'];
             $user->password = User::generate_password($register_form->data['password']);
             $user->save();
             User::authentication($user->username, $register_form->data['password']);
             import('system/share/network/redirect');
             HTTPRedirect::to(url_reverse('auth_index'));
         }
     }
     $smarty->assign('register_form', $register_form->output());
     $smarty->display('auth/register');
 }