From 272fc7662960ec4872e55b44cc9d58976ea99d73 Mon Sep 17 00:00:00 2001 From: Parziphal Date: Fri, 6 Dec 2013 05:13:03 -0500 Subject: [PATCH] fixed User::is_level... methods when anonymous they where returning true in some cases (like when calling is_unactivated). they now return false if anonymous. --- app/models/User.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/models/User.php b/app/models/User.php index 23d5c8e..9915ca9 100755 --- a/app/models/User.php +++ b/app/models/User.php @@ -494,8 +494,6 @@ class User extends Rails\ActiveRecord\Base throw new Rails\ActiveRecord\Exception\RecordNotFoundException(); } - // self::load_model('UserRecord'); - if (UserRecord::where("user_id = ? AND is_positive = false AND reported_by IN (SELECT id FROM users WHERE level >= ?)", $invitee->id, CONFIG()->user_levels["Mod"])->exists() && !$this->is_admin()) { throw new User_HasNegativeRecord(); } @@ -660,13 +658,13 @@ class User extends Rails\ActiveRecord\Base protected function _commit_secondary_languages() { - if (!$this->secondary_languages) - return; + if (!$this->secondary_languages) + return; - if (in_array("none", $this->secondary_languages)) - $this->secondary_languages = ""; - else - $this->secondary_languages = implode(",", $this->secondary_languages); + if (in_array("none", $this->secondary_languages)) + $this->secondary_languages = ""; + else + $this->secondary_languages = implode(",", $this->secondary_languages); } # } @@ -837,6 +835,11 @@ class User extends Rails\ActiveRecord\Base private function parse_is_level_or($method) { + # For anonymous users + if (!$this->id) { + return false; + } + list($name, $operator) = explode('_or_', substr($method, 3)); $name = ucfirst($name); $levels = CONFIG()->user_levels; @@ -856,6 +859,11 @@ class User extends Rails\ActiveRecord\Base private function parse_is_level($method) { + # For anonymous users + if (!$this->id) { + return false; + } + $level_name = ucfirst(substr($method, 3)); $levels = CONFIG()->user_levels; if (!isset($levels[$level_name])) {