Пример #1
0
 /**
  * Method used to get the preferences set by a specific user.
  *
  * @param integer $usr_id The user ID
  * @param bool $force Set to true to force database refresh
  * @return array The preferences
  */
 public static function get($usr_id, $force = false)
 {
     static $returns;
     if (!$force && !empty($returns[$usr_id])) {
         return $returns[$usr_id];
     }
     $sql = 'SELECT
                 upr_timezone as timezone,
                 upr_week_firstday as week_firstday,
                 upr_list_refresh_rate as list_refresh_rate,
                 upr_email_refresh_rate as email_refresh_rate,
                 upr_email_signature as email_signature,
                 upr_auto_append_email_sig as auto_append_email_sig,
                 upr_auto_append_note_sig as auto_append_note_sig,
                 upr_auto_close_popup_window as close_popup_windows
             FROM
                 {{%user_preference}}
             WHERE
                 upr_usr_id=?';
     try {
         $res = DB_Helper::getInstance()->getRow($sql, array($usr_id));
     } catch (DbException $e) {
         return Prefs::getDefaults(array_keys(Project::getAssocList($usr_id, false, true)));
     }
     if ($res === null) {
         return Prefs::getDefaults(array_keys(Project::getAssocList($usr_id, false, true)));
     }
     $returns[$usr_id] = $res;
     $returns[$usr_id]['receive_assigned_email'] = array();
     $returns[$usr_id]['receive_new_issue_email'] = array();
     $returns[$usr_id]['receive_copy_of_own_action'] = array();
     // check for the refresh rate variables, and use the default values if appropriate
     if (empty($returns[$usr_id]['list_refresh_rate'])) {
         $returns[$usr_id]['list_refresh_rate'] = APP_DEFAULT_REFRESH_RATE;
     }
     if (empty($returns[$usr_id]['email_refresh_rate'])) {
         $returns[$usr_id]['email_refresh_rate'] = APP_DEFAULT_REFRESH_RATE;
     }
     // get per project preferences
     $sql = "SELECT\n                    upp_prj_id as prj_id,\n                    upp_receive_assigned_email as receive_assigned_email,\n                    upp_receive_new_issue_email as receive_new_issue_email,\n                    upp_receive_copy_of_own_action as receive_copy_of_own_action\n                FROM\n                    {{%user_project_preference}}\n                WHERE\n                    upp_usr_id = {$usr_id}";
     try {
         $res = DB_Helper::getInstance()->fetchAssoc($sql, array(), DB_FETCHMODE_ASSOC);
     } catch (DbException $e) {
         return $returns[$usr_id];
     }
     foreach ($res as $prj_id => $project_prefs) {
         $returns[$usr_id]['receive_assigned_email'][$prj_id] = $project_prefs['receive_assigned_email'];
         $returns[$usr_id]['receive_new_issue_email'][$prj_id] = $project_prefs['receive_new_issue_email'];
         $returns[$usr_id]['receive_copy_of_own_action'][$prj_id] = $project_prefs['receive_copy_of_own_action'];
     }
     return $returns[$usr_id];
 }
Пример #2
0
 /**
  * Method used to add a new user to the system.
  *
  * @param   array $user The array of user information
  * @return  integer 1 if the update worked, -1 otherwise
  */
 public static function insert($user)
 {
     $projects = array();
     foreach ($user['role'] as $prj_id => $role) {
         if ($role < 1) {
             continue;
         }
         $projects[] = $prj_id;
     }
     $params = array(isset($user['customer_id']) ? $user['customer_id'] : null, isset($user['contact_id']) ? $user['contact_id'] : null, Date_Helper::getCurrentDateGMT(), Auth::hashPassword($user['password']), $user['full_name'], $user['email'], !empty($user['grp_id']) ? $user['grp_id'] : null, $user['external_id'], isset($user['par_code']) ? $user['par_code'] : null);
     $stmt = 'INSERT INTO
                 {{%user}}
              (
                 usr_customer_id,
                 usr_customer_contact_id,
                 usr_created_date,
                 usr_password,
                 usr_full_name,
                 usr_email,
                 usr_grp_id,
                 usr_external_id,
                 usr_par_code
              ) VALUES (
                 ?,
                 ?,
                 ?,
                 ?,
                 ?,
                 ?,
                 ?,
                 ?,
                 ?
              )';
     try {
         DB_Helper::getInstance()->query($stmt, $params);
     } catch (DbException $e) {
         return -1;
     }
     $new_usr_id = DB_Helper::get_last_insert_id();
     // add the project associations!
     $projects = array();
     foreach ($user['role'] as $prj_id => $role) {
         if ($role < 1) {
             continue;
         }
         Project::associateUser($prj_id, $new_usr_id, $role);
         $projects[] = $prj_id;
     }
     Prefs::set($new_usr_id, Prefs::getDefaults($projects));
     // send email to user
     Notification::notifyNewUser($new_usr_id, $user['password']);
     return $new_usr_id;
 }
Пример #3
0
// | Authors: Bryan Alsdorf <*****@*****.**>                             |
// +----------------------------------------------------------------------+
//
//
include_once "../../config.inc.php";
include_once APP_INC_PATH . "db_access.php";
include_once APP_INC_PATH . "class.customer.php";
include_once APP_INC_PATH . "class.user.php";
// creates user accounts for all the customers
$prj_id = 1;
$customers = Customer::getAssocList($prj_id);
foreach ($customers as $customer_id => $customer_name) {
    echo "Customer: {$customer_name}<br />\n";
    $details = Customer::getDetails($prj_id, $customer_id);
    foreach ($details['contacts'] as $contact) {
        echo "Contact: " . $contact['first_name'] . " " . $contact['last_name'] . " (" . $contact['email'] . ")<br />\n";
        $contact_id = User::getUserIDByContactID($contact['contact_id']);
        if (empty($contact_id)) {
            $sql = "INSERT INTO\n                        " . APP_DEFAULT_DB . "." . APP_TABLE_PREFIX . "user\n                    SET\n                        usr_created_date = '" . Date_API::getCurrentDateGMT() . "',\n                        usr_full_name = '" . Misc::escapeString($contact['first_name'] . " " . $contact['last_name']) . "',\n                        usr_email = '" . $contact['email'] . "',\n                        usr_customer_id = " . $customer_id . ",\n                        usr_customer_contact_id = " . $contact['contact_id'] . ",\n                        usr_preferences = '" . Misc::escapeString(Prefs::getDefaults(array($prj_id))) . "'";
            $res = $GLOBALS["db_api"]->dbh->query($sql);
            if (PEAR::isError($res)) {
                echo "Error inserting user<br /><pre>";
                print_r($res);
                echo "</pre>";
            }
            $new_usr_id = $GLOBALS['db_api']->get_last_insert_id();
            Project::associateUser($prj_id, $new_usr_id, User::getRoleID("Customer"));
        }
    }
    echo "<hr />";
}
Пример #4
0
$prj_id = 1;
// FIXME: Customer::getAssocList does not exist
$customers = Customer::getAssocList($prj_id);
foreach ($customers as $customer_id => $customer_name) {
    echo "Customer: {$customer_name}<br />\n";
    $details = Customer::getDetails($prj_id, $customer_id);
    foreach ($details['contacts'] as $contact) {
        echo 'Contact: ' . $contact['first_name'] . ' ' . $contact['last_name'] . ' (' . $contact['email'] . ")<br />\n";
        $contact_id = User::getUserIDByContactID($contact['contact_id']);
        if (empty($contact_id)) {
            $sql = 'INSERT INTO
                        {{%user}}
                    SET
                        usr_created_date = ?,
                        usr_full_name = ?,
                        usr_email = ?,
                        usr_customer_id = ?,
                        usr_customer_contact_id = ?,
                        usr_preferences = ?';
            $params = array(Date_Helper::getCurrentDateGMT(), $contact['first_name'] . ' ' . $contact['last_name'], $contact['email'], $customer_id, $contact['contact_id'], Prefs::getDefaults(array($prj_id)));
            try {
                DB_Helper::getInstance()->query($sql, $params);
            } catch (DbException $e) {
                echo 'Error inserting user<br />';
            }
            $new_usr_id = DB_Helper::get_last_insert_id();
            Project::associateUser($prj_id, $new_usr_id, User::ROLE_CUSTOMER);
        }
    }
    echo '<hr />';
}
Пример #5
0
 /**
  * Method used to add a new user to the system.
  *
  * @access  public
  * @return  integer 1 if the update worked, -1 otherwise
  */
 function insert()
 {
     global $HTTP_POST_VARS;
     $projects = array();
     foreach ($HTTP_POST_VARS["role"] as $prj_id => $role) {
         if ($role < 1) {
             continue;
         }
         $projects[] = $prj_id;
     }
     $fn = preg_split('/\\s+/', $HTTP_POST_VARS["full_name"], 2);
     $username = preg_split('/@/', $HTTP_POST_VARS["email"], 2);
     $prefs = Prefs::getDefaults($projects);
     $stmt = "INSERT INTO\n                    " . ETEL_USER_TABLE_NOSUB . "\n\t\t\t\tSET\n                    en_ev_customer_id = NULL,\n                    en_ev_contact_id = NULL,\n                    en_signup = '" . Date_API::getCurrentDateGMT() . "',\n                    en_username = '******',\n                    en_password = '******',\n                    en_firstname = '" . Misc::escapeString($fn[0]) . "',\n                    en_lastname = '" . Misc::escapeString($fn[1]) . "',\n                    en_email = '" . Misc::escapeString($HTTP_POST_VARS["email"]) . "',\n                    en_ev_pref = '" . Misc::escapeString($prefs) . "'\n                ";
     $res = $GLOBALS["db_api"]->dbh->query($stmt);
     if (PEAR::isError($res)) {
         Error_Handler::logError(array($res->getMessage(), $res->getDebugInfo()), __FILE__, __LINE__);
         return -1;
     } else {
         $new_usr_id = $GLOBALS["db_api"]->get_last_insert_id();
         // add the project associations!
         foreach ($HTTP_POST_VARS["role"] as $prj_id => $role) {
             if ($role < 1) {
                 continue;
             }
             Project::associateUser($prj_id, $new_usr_id, $role);
         }
         // send email to user
         Notification::notifyNewUser($new_usr_id, $HTTP_POST_VARS["password"]);
         return 1;
     }
 }