Security fixes 20
[openemr.git] / library / user.inc
blobe34af1f7e264af512e3b7efdc47b0bb4d5202f75
1 <?php
2 // Copyright (C) 2010 Brady Miller <brady@sparmy.com>
3 //
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
9 require_once(dirname(__FILE__) . "/sql.inc");
10 require_once(dirname(__FILE__) . "/formdata.inc.php");
12 //This will return the user setting(s) from the 'users' table.
13 // $choice can be used to return only one specific user setting
14 // $user is the user id number in the 'users' table
15 // Returns the selected user setting (if does not exist, then returns 0)
16 function getUserSetting($label,$user=NULL) {
18   // if no user id is sent, then use the currently logged in user
19   if (!isset($user)) {
20     $user = $_SESSION['authUserID'];
21   }
22     
23   // Collect entry if it exist.
24   //  If does not exist, then look for a default entry.
25   //    If default entry does not exist, then return a '0'.
26   // setting.
27   $result = sqlQuery("SELECT setting_value FROM user_settings " .
28     "WHERE setting_user=? AND setting_label=?", array($user, $label) );
29   if (empty($result)) {
30     $result = sqlQuery("SELECT setting_value FROM user_settings " .
31       "WHERE setting_user='0' AND setting_label=?", array($label) );
32     if (empty($result)) {
33       return '0';
34     }
35   }
36   
37   // Only one value, so collect it
38   $tempResult = $result;
39   foreach($tempResult as $key=>$value) {
40     $result = $value;
41   }
42   
43   return $result;
46 //This will check a user setting
47 // $name is the setting name in the 'users' table
48 // $value is the setting value to be checked in the 'users' table
49 // $user is the user id number in the 'users' table
50 // Returns true if setting exist and false if does not exist
51 function checkUserSetting($label, $value, $user=NULL) {
53   // if no user id is sent, then use the currently logged in user
54   if (!isset($user)) {
55     $user = $_SESSION['authUserID'];
56   }
58   // Check for the user settings
59   //  If does not exist, then check for a default entry.
60   //  (return false if setting does not exist)
61   $result = sqlQuery("SELECT setting_value FROM user_settings " .
62     "WHERE setting_user=? AND setting_label=? AND setting_value=?", array($user, $label, $value) );
63   if (empty($result)) {
64     $result = sqlQuery("SELECT setting_value FROM user_settings " .
65       "WHERE setting_user='0' AND setting_label=? AND setting_value=?", array($label, $value) );
66     if (empty($result)) {
67       return false;
68     }
69   }
70   
71   // Setting exist, so return true
72   return true;
75 //This will set a user setting
76 // $name is the setting name in the 'users' table
77 // $value is the setting value to be set in the 'users' table
78 // $user is the user id number in the 'users' table
79 // $createDefault is flag to create a default value if it does not yet exist
80 function setUserSetting($label, $value, $user=NULL, $createDefault=TRUE) {
81   // if no user id is sent, then use the currently logged in user
82   if (!isset($user)) {
83     $user = $_SESSION['authUserID'];
84   }
86   $newCustom=false;
87   $newDefault=false;
89   // Check for a custom settings
90   $row = sqlQuery("SELECT setting_value FROM user_settings " .
91     "WHERE setting_user=? AND setting_label=?", array($user, $label) );
92   if (empty($row)) {
93     $newCustom=true;
94   }
96   // Set the custom setting
97   if ($newCustom) {
98     sqlStatement("INSERT INTO user_settings " .
99       "(setting_user, setting_label, setting_value) " .
100       "VALUES (?,?,?)", array($user, $label, $value) );
101   }
102   else {
103     sqlStatement("UPDATE user_settings SET setting_value=? " .
104       "WHERE setting_user=? AND setting_label=?", array($value, $user, $label) );
105   }
107   // Check for a default settings
108   $row = sqlQuery("SELECT setting_value FROM user_settings " .
109     "WHERE setting_user='0' AND setting_label=?", array($label) );
110   if (empty($row)) {
111     $newDefault=true;
112   }
114   // Place a default setting if it does not already exist (and createDefault flag is set)
115   if ($newDefault && $createDefault) {
116     sqlStatement("INSERT INTO user_settings " .
117       "(setting_user, setting_label, setting_value) " .
118       "VALUES ('0',?,?)", array($label, $value) );
119   }
122 //This will remove the selected user setting from the 'user_settings' table.
123 // $label is used to determine which setting to remove
124 // $user is the user id number in the 'users' table
125 function removeUserSetting($label,$user=NULL) {
126   // if no user id is sent, then use the currently logged in user
127   if (!isset($user)) {
128     $user = $_SESSION['authUserID'];
129   }
130   
131   // Collect entry if it exist.
132   //  If it exists, then delete the entry.
133   $result = sqlQuery("SELECT setting_value FROM user_settings " .
134     "WHERE setting_user=? AND setting_label=?", array($user, $label) );
135   if (!empty($result)) {
136     sqlQuery("DELETE FROM user_settings " .
137       "WHERE setting_user=? AND setting_label=?", array($user, $label) );
138   }
142 function getUserIDInfo($id)
144     $res= sqlStatement("SELECT fname,lname,username FROM users where id=?",array($id));
145     return sqlFetchArray($res);