Improved caching if find_fulldata() and reduced data.

This commit is contained in:
Martin Edenhofer 2012-04-14 18:48:40 +02:00
parent 7b3d341568
commit f76af2d2b6

View file

@ -58,30 +58,53 @@ class User < ActiveRecord::Base
# get user
user = User.find(user_id)
data = user.attributes
# get linked accounts
user['accounts'] = {}
data['accounts'] = {}
authorizations = user.authorizations() || []
authorizations.each do | authorization |
user['accounts'][authorization.provider] = {
data['accounts'][authorization.provider] = {
:uid => authorization[:uid],
:username => authorization[:username]
}
end
# set roles
user['roles'] = user.roles.select('id, name').where(:active => true)
user['groups'] = user.groups.select('id, name').where(:active => true)
user['organization'] = user.organization
user['organizations'] = user.organizations.select('id, name').where(:active => true)
roles = []
user.roles.select('id, name').where( :active => true ).each { |role|
roles.push role
}
data['roles'] = roles
@@cache[user_id] = user
groups = []
user.groups.select('id, name').where( :active => true ).each { |group|
groups.push group
}
data['groups'] = groups
return user
organization = user.organization
data['organization'] = organization
organizations = []
user.organizations.select('id, name').where( :active => true ).each { |organization|
organizations.push organization
}
data['organizations'] = organizations
@@cache[user_id] = data
return data
end
def cache_reset
@@cache[self.id] = nil
end
private
def delete_cache
puts 'delete_cache', self.insepct
@@cache[self.id] = nil
end