Changeset 734
- Timestamp:
- 11/22/07 13:52:33 (1 year ago)
- Files:
-
- trunk/app/models/asset.rb (modified) (1 diff)
- trunk/test/unit/asset_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/models/asset.rb
r721 r734 267 267 # 268 268 def users(exclude_user_id = nil) 269 return [] if self.user_groups.empty? 270 where_sql = "users.type = 'User' AND users.id = user_groups_users.user_id AND user_groups_users.user_group_id IN (#{self.user_groups.map {|g| g.id }.join(',')})" 271 where_sql = "users.id != #{exclude_user_id} AND " + where_sql if exclude_user_id.is_a?(Integer) 272 273 User.find_by_sql("SELECT DISTINCT users.* FROM users, user_groups_users WHERE (#{where_sql})") 269 if Setting.enable_user_permissions 270 return [] if self.user_groups.empty? 271 sql = ['SELECT DISTINCT users.* FROM users, user_groups_users WHERE ('] 272 if exclude_user_id.is_a?(Integer) 273 sql[0] += 'users.id != ? AND ' 274 sql.push(exclude_user_id) 275 end 276 sql[0] += 'users.type = ? AND users.id = user_groups_users.user_id AND user_groups_users.user_group_id IN (?)' 277 sql.push('User', self.user_groups.map {|g| g.id }) 278 sql[0] += ') ORDER BY id' 279 280 User.find_by_sql(sql) 281 else 282 options = { :order => 'id' } 283 options[:conditions] = ['id != ?', exclude_user_id] if exclude_user_id.is_a?(Integer) 284 User.find(:all, options) 285 end 274 286 end 275 287 trunk/test/unit/asset_test.rb
r721 r734 891 891 assert_equal false, users.include?(unauthorized) 892 892 # Exclude user who doesn't belong to asset has no effect 893 users = @root.users(unauthorized.id) 894 assert_equal true, users.include?(@user) 895 assert_equal true, users.include?(another_admin) 896 assert_equal true, users.include?(user) 897 assert_equal false, users.include?(unauthorized) 898 899 # When tye asset permissions are disabled all users are returned 900 # except the optionally excluded user with given id. 901 # 902 # Disable permissions 903 setup_settings(false) 904 # All users 905 users = @root.users 906 assert_equal true, users.include?(@user) 907 assert_equal true, users.include?(another_admin) 908 assert_equal true, users.include?(user) 909 assert_equal true, users.include?(unauthorized) 910 # Exclude user @user 893 911 users = @root.users(@user.id) 912 assert_equal false, users.include?(@user) 913 assert_equal true, users.include?(another_admin) 914 assert_equal true, users.include?(user) 915 assert_equal true, users.include?(unauthorized) 894 916 end 895 917