/** * Creates new teacher from console. */ public function new_teacher() { $this->load->database(); $languages = $this->lang->get_list_of_languages(); echo 'Create new teacher' . "\n\n"; $name = $this->_get_cli_user_input('Teacher full name'); $email = $this->_get_cli_user_input('Teacher e-mail'); $password = $this->_get_cli_user_input('Teacher password'); if (count($languages)) { echo 'Available languages:'; foreach ($languages as $language_key => $language_value) { echo "\n" . ' (' . $language_key . ') for ' . normalize($language_value) . ''; } } $language = $this->_get_cli_user_input("\n" . 'Select teacher language'); $this->load->library('form_validation'); if (!$this->form_validation->required($name) || !$this->form_validation->required($email) || !$this->form_validation->required($password) || !$this->form_validation->required($language)) { echo 'ERROR: Some parameter(s) is(are) missing.' . "\n"; } elseif (!$this->form_validation->valid_email($email)) { echo 'ERROR: E-mail is invalid.' . "\n"; } elseif (!$this->form_validation->is_unique($email, 'teachers.email')) { echo 'ERROR: E-mail must be unique.' . "\n"; } elseif (!$this->form_validation->min_length($password, 6)) { echo 'ERROR: Password must have at least 6 characters.' . "\n"; } elseif (!$this->form_validation->max_length($password, 20)) { echo 'ERROR: Password must not be longer than 20 characters.' . "\n"; } elseif (!array_key_exists($language, $languages)) { echo 'ERROR: Desired language not found.' . "\n"; } else { $teacher = new Teacher(); $teacher->fullname = $name; $teacher->email = $email; $teacher->password = sha1($password); $teacher->language = $language; $this->db->trans_begin(); $teacher->save(); $teacher->get_by_email($email); if ($teacher->result_count() == 1) { $this->db->trans_commit(); echo "\n" . 'Teacher account created!'; } else { $this->db->trans_rollback(); echo "\n" . 'Teacher account failed to be created!'; } } }