From 4d41e061e4771920a63edda4946cf89c92cbef66 Mon Sep 17 00:00:00 2001 From: Iain Bryson <iain@iain-bryson.ca> Date: Tue, 11 Oct 2016 12:46:53 -0700 Subject: [PATCH] =?UTF-8?q?Fix=20groups=5Fby=5Fcourse=20bug=20=E2=80=94=20?= =?UTF-8?q?have=20it=20include=20the=20actual=20group=20objects.=20=20Add?= =?UTF-8?q?=20more=20logging.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 2 +- dtu-auth2/lib/dtu_auth2.rb | 7 +++++-- dtu-core-0.0.5.gem | Bin 0 -> 16896 bytes dtu_core.gemspec | 2 +- lib/tasks/dtu_core_tasks.rake | 7 +++++++ 5 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 dtu-core-0.0.5.gem diff --git a/Gemfile.lock b/Gemfile.lock index aec31af..6068abd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,7 +19,7 @@ PATH remote: . specs: dtu-auth (0.0.0) - dtu-core (0.0.2) + dtu-core (0.0.5) dtu-auth dtu-auth2 dtu-file-management diff --git a/dtu-auth2/lib/dtu_auth2.rb b/dtu-auth2/lib/dtu_auth2.rb index 658fab4..8f7bf1b 100644 --- a/dtu-auth2/lib/dtu_auth2.rb +++ b/dtu-auth2/lib/dtu_auth2.rb @@ -62,11 +62,13 @@ module DTUAuth2 am.users.keys.each { |user_id| $redis.set("user$" + user_id, am.users[user_id].to_json) } groups_by_user = {} + groups_by_course = {} _user_roles.flatten.each do |role| am.user_roles[role.user_id] = {} unless am.user_roles.has_key? role.user_id groups_by_user[role.user_id] = [] unless groups_by_user.has_key? role.user_id am.groups[role.course_id] = [] unless am.groups.has_key? role.course_id + groups_by_course[role.course_id] = [] unless groups_by_course.has_key? role.course_id am.user_roles[role.user_id][role.course_id] = {} unless am.user_roles[role.user_id].has_key? role.course_id @@ -76,6 +78,7 @@ module DTUAuth2 am.groups[role.course_id] << role.group groups_by_user[role.user_id] << role + groups_by_course[role.course_id] << role end groups.each do |k,v| @@ -86,8 +89,8 @@ module DTUAuth2 $redis.set("user_role_by_user$" + user_id, g.uniq.to_json) end - groups.each do |group_id, g| - $redis.set("user_role_by_course$" + group_id, g.uniq.to_json) + groups_by_course.each do |course_id, g| + $redis.set("user_role_by_course$" + course_id, g.to_json) end # Rails.logger.debug "Users #{am.users.ai}" diff --git a/dtu-core-0.0.5.gem b/dtu-core-0.0.5.gem new file mode 100644 index 0000000000000000000000000000000000000000..5322d153b5d67d6321311e4f04fc0595435023a3 GIT binary patch literal 16896 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 WWD=@{_NYOlAut*OqaiSOLI42I`#(_t literal 0 HcmV?d00001 diff --git a/dtu_core.gemspec b/dtu_core.gemspec index f93c3df..1d4b3cb 100644 --- a/dtu_core.gemspec +++ b/dtu_core.gemspec @@ -6,7 +6,7 @@ require "dtu-core/version" # Describe your gem and declare its dependencies: Gem::Specification.new do |s| s.name = "dtu-core" - s.version = "0.0.4" + s.version = "0.0.5" s.authors = ["Iain Bryson"] s.email = ["iain@iain-bryson.ca"] s.homepage = "https://github.com/dtu-compute/dtu-core.git" diff --git a/lib/tasks/dtu_core_tasks.rake b/lib/tasks/dtu_core_tasks.rake index 00f6745..456b5b6 100644 --- a/lib/tasks/dtu_core_tasks.rake +++ b/lib/tasks/dtu_core_tasks.rake @@ -18,9 +18,16 @@ desc "Populate the redis cache" task :populate => [:to_stdout, :environment] do Rails.logger.info Rails.configuration.dtu_data DTUAuth2::populate Rails.configuration.dtu_data[:root_path] + puts "\n\n\n COURSE LIST (from redis) \n\n\n" ap DTUAuth2::CachedAuthorizationManager.course_list + DTUAuth2::CachedAuthorizationManager.course_list.each do |course| + puts "\n\n\n GROUPS FOR #{course} (from redis) \n\n\n" + ap DTUAuth2::CachedAuthorizationManager.groups_by_course course + end + puts "\n\n\n USER LIST (from redis) \n\n\n" ap DTUAuth2::CachedAuthorizationManager.user_list DTUAuth2::CachedAuthorizationManager.user_list.each do |user| + puts "\n\n\n GROUPS FOR #{user} (from redis) \n\n\n" ap DTUAuth2::CachedAuthorizationManager.groups_by_user user end end -- GitLab