diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-11-04 02:02:10 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-11-04 02:02:10 +0000 |
commit | 0cf24d0deb9955fb9a1d3d0b0c92b59e3957fed4 (patch) | |
tree | a31fa03d208888f46330b296b22f083dcb58244f /lib/preferences.php | |
parent | f6c313e5502c38706de8a28bfe239a3c1ea04d00 (diff) | |
download | ampache-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.php | 59 |
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 + ?> |