Exemple #1
0
 /**
  * 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!';
         }
     }
 }