summaryrefslogtreecommitdiffstats
path: root/lib/preferences.php
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-11-04 02:02:10 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-11-04 02:02:10 +0000
commit0cf24d0deb9955fb9a1d3d0b0c92b59e3957fed4 (patch)
treea31fa03d208888f46330b296b22f083dcb58244f /lib/preferences.php
parentf6c313e5502c38706de8a28bfe239a3c1ea04d00 (diff)
downloadampache-0cf24d0deb9955fb9a1d3d0b0c92b59e3957fed4.tar.gz
ampache-0cf24d0deb9955fb9a1d3d0b0c92b59e3957fed4.tar.bz2
ampache-0cf24d0deb9955fb9a1d3d0b0c92b59e3957fed4.zip
added ability to define required user level on a per permission basis
Diffstat (limited to 'lib/preferences.php')
-rw-r--r--lib/preferences.php59
1 files changed, 46 insertions, 13 deletions
diff --git a/lib/preferences.php b/lib/preferences.php
index d3c8ce63..e46ad8e0 100644
--- a/lib/preferences.php
+++ b/lib/preferences.php
@@ -179,25 +179,21 @@ function update_preference($username,$name,$pref_id,$value) {
*/
function has_preference_access($name) {
+ /* If it's a demo they don't get jack */
if (conf('demo_mode')) {
return false;
}
- switch($name) {
+ $name = sql_escape($name);
- case 'download':
- case 'upload':
- case 'quarantine':
- case 'upload_dir':
- case 'sample_rate':
- case 'direct_link':
- $level = 100;
- break;
- default:
- $level = 25;
- break;
- } // end switch key
+ /* Check Against the Database Row */
+ $sql = "SELECT level FROM preferences " .
+ "WHERE name='$name'";
+ $db_results = mysql_query($sql, dbh());
+ $data = mysql_fetch_assoc($db_results);
+
+ $level = $data['level'];
if ($GLOBALS['user']->has_access($level)) {
return true;
@@ -454,4 +450,41 @@ function show_import_playlist() {
} // show_import_playlist
+/**
+ * get_preferences
+ * This returns an array of all current preferences in the
+ * preferences table, this isn't a users preferences
+ */
+function get_preferences() {
+
+ $sql = "SELECT * FROM preferences";
+ $db_results = mysql_query($sql, dbh());
+
+ $results = array();
+
+ while ($r = mysql_fetch_assoc($db_results)) {
+ $results[] = $r;
+ }
+
+ return $results;
+
+} // get_preferences
+
+/**
+ * update_preference_level
+ * This function updates the level field in the preferences table
+ * this has nothing to do with a users actuall preferences
+ */
+function update_preference_level($name,$level) {
+
+ $name = sql_escape($name);
+ $level = sql_escape($level);
+
+ $sql = "UPDATE preferences SET `level`='$level' WHERE `name`='$name'";
+ $db_results = mysql_query($sql,dbh());
+
+ return true;
+
+} // update_preference_level
+
?>