/** * Theme functions for companies */ function total_companies() { if (!($companies = Registry::get('companies'))) { $companies = company::get(); $companies = new Items($companies); Registry::set('companies', $companies); } return $companies->length(); }
/** * Creates a user using company user defaults and attaches it to a company * User will be emailed a password when the cron job has run * @param object $data * @return userid */ public static function create($data) { global $DB, $CFG, $USER; if ($data->companyid) { $company = new company($data->companyid); $c = $company->get('shortname'); $data->company = $c->shortname; } else { $company = company::by_shortname($data->company); } $defaults = $company->get_user_defaults(); $user = (object) array_merge((array) $defaults, (array) $data); //$user->username = self::generate_username( $user->email ); //GWL : Remove Generate Usernaame From Email for Phone No. //$user->username = clean_param($user->username, PARAM_USERNAME); //GWL : Remove Generate Usernaame From Email for Phone No. /* GWL : Get Usernamme as phone no. */ $user->username = $user->phone; /* GWL : Get Usernamme as phone no. */ // Deal with the company theme. $user->theme = $company->get_theme(); if ($user->sendnewpasswordemails && !$user->preference_auth_forcepasswordchange) { throw new Exception(get_string('cannotemailnontemporarypasswords', 'local_iomad')); } /* There are 8 possible combinations of password, sendbyemail and forcepasswordchange fields: pwd email yes force change -> temporary password pwd email no force change -> temporary password pwd email no dont force change -> not a temporary password no pwd email yes force change -> create password -> store temp no pwd email no force change -> create password -> store temp no pwd email no dont force change -> create password -> store temp These two combinations shouldn't happen (caught by form validation and exception above): pwd email yes dont force change->needs to be stored as temp password -> not secure no pwd email yes dont force change->create password->store temp->not secure The next set of variables ($sendemail, $passwordentered, $createpassword, $forcepasswordchange, $storetemppassword) are used to distinguish between the first 6 combinations and to take appropriate action. */ $sendemail = $user->sendnewpasswordemails; $passwordentered = !empty($user->newpassword); $createpassword = !$passwordentered; $forcepasswordchange = $user->preference_auth_forcepasswordchange; // Store temp password unless password was entered and it's not going to be send by // email nor is it going to be forced to change. $storetemppassword = !($passwordentered && !$sendemail && !$forcepasswordchange); if ($passwordentered) { $user->password = $user->newpassword; // Don't hash it, user_create_user will do that. } $user->confirmed = 1; $user->mnethostid = 1; $user->maildisplay = 0; // Hide email addresses by default. // Create user record and return id. $id = user_create_user($user); $user->id = $id; // Passwords will be created and sent out on cron. if ($createpassword) { set_user_preference('create_password', 1, $user->id); $user->newpassword = generate_password(); if (!empty($CFG->iomad_email_senderisreal)) { EmailTemplate::send('user_create', array('user' => $user, 'sender' => $USER)); } else { EmailTemplate::send('user_create', array('user' => $user, 'headers' => serialize(array("To:" . $user->email . ", " . $USER->email)))); } $sendemail = false; } if ($forcepasswordchange) { set_user_preference('auth_forcepasswordchange', 1, $user->id); } if ($createpassword) { $DB->set_field('user', 'password', hash_internal_user_password($user->newpassword), array('id' => $user->id)); } if ($storetemppassword) { // Store password as temporary password, sendemail if necessary. self::store_temporary_password($user, $sendemail, $user->newpassword); } // Attach user to company. // Do we have a department? if (empty($data->departmentid)) { $departmentinfo = $DB->get_record('department', array('company' => $company->id, 'parent' => 0)); $data->departmentid = $departmentinfo->id; } // Deal with unset variable. if (empty($data->managertype)) { $data->managertype = 0; } // Create the user association. $DB->insert_record('company_users', array('userid' => $user->id, 'companyid' => $company->id, 'managertype' => $data->managertype, 'departmentid' => $data->departmentid)); if (isset($data->selectedcourses)) { self::enrol($user, array_keys($data->selectedcourses)); } return $user->id; }
company_admin_fix_breadcrumb($PAGE, $linktext, $linkurl); echo $OUTPUT->header(); $companyids = $DB->get_records_menu('company', array(), 'id, name'); //$companyids['none'] = get_string('nocompany', 'block_iomad_company_admin'); $companyids[''] = get_string('selectacompany', 'block_iomad_company_admin'); ksort($companyids); $companyselect = new single_select(new moodle_url('/local/company_navigation/manage_company.php'), 'companyid', $companyids, $companyid); $companyselect->label = get_string('company', 'block_iomad_company_admin'); $companyselect->formid = 'choosecompany'; echo html_writer::tag('div', $OUTPUT->render($companyselect), array('id' => 'iomad_company_selector')) . '</br>'; // get company detail if ($companyid) { $company = new company($companyid); $table = new html_table(); $table->head = array(get_string('companyadminstration', 'local_company_navigation', $company->get_name())); if ($company->get()) { // check company record exist and set it to session variable as current company $SESSION->currenteditingcompany = $company->id; } if (isset($SESSION->currenteditingcompany)) { $companymanagelinks = get_company_manage_links($SESSION->currenteditingcompany); foreach ($companymanagelinks as $linktext => $linkurl) { $link = $linktext; if ($linkurl) { $link = '<a href=' . $linkurl . '>' . $linktext . '</a>'; } $table->data[] = array($link); } if ($companymanagelinks) { echo html_writer::table($table); }