From c6d39a14d6b15f457bfc050f54e256cd5da64cc9 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 11 Mar 2014 10:24:07 +0200 Subject: [PATCH] Add User#requires_ldap_check? method Signed-off-by: Dmitriy Zaporozhets --- app/controllers/application_controller.rb | 2 +- app/models/user.rb | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9b05bc479ff..9a0c9f60b05 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -181,7 +181,7 @@ class ApplicationController < ActionController::Base end def ldap_security_check - if current_user && current_user.ldap_user? && current_user.requires_ldap_check? + if current_user && current_user.requires_ldap_check? if gitlab_ldap_access.allowed?(current_user) current_user.last_credential_check_at = Time.now current_user.save diff --git a/app/models/user.rb b/app/models/user.rb index 855fe58ffe8..a9ee471ad61 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -185,7 +185,7 @@ class User < ActiveRecord::Base where(conditions).first end end - + def find_for_commit(email, name) # Prefer email match over name match User.where(email: email).first || @@ -275,7 +275,9 @@ class User < ActiveRecord::Base # Projects user has access to def authorized_projects @authorized_projects ||= begin - project_ids = (personal_projects.pluck(:id) + groups_projects.pluck(:id) + projects.pluck(:id)).uniq + project_ids = personal_projects.pluck(:id) + project_ids += groups_projects.pluck(:id) + project_ids += projects.pluck(:id).uniq Project.where(id: project_ids).joins(:namespace).order('namespaces.name ASC') end end @@ -406,6 +408,14 @@ class User < ActiveRecord::Base end end + def requires_ldap_check? + if ldap_user? + !last_credential_check_at || (last_credential_check_at + 1.hour) < Time.now + else + false + end + end + def solo_owned_groups @solo_owned_groups ||= owned_groups.select do |group| group.owners == [self] -- GitLab