Commit 99efbc8c authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Do ldap permissions update every hour

parent cd786519
......@@ -4,6 +4,7 @@ class ApplicationController < ActionController::Base
before_filter :check_password_expiration
before_filter :set_current_user_for_thread
before_filter :add_abilities
before_filter :ldap_security_check
before_filter :dev_tools if Rails.env == 'development'
before_filter :default_headers
before_filter :add_gon_variables
......@@ -159,4 +160,13 @@ class ApplicationController < ActionController::Base
redirect_to new_profile_password_path and return
end
end
def ldap_security_check
if current_user.ldap_user? && current_user.requires_ldap_check?
Gitlab::LDAP::Access.new.update_permissions(current_user)
current_user.last_credential_check_at = Time.now
current_user.save
end
end
end
......@@ -370,4 +370,8 @@ class User < ActiveRecord::Base
self.send("#{attr}=", Sanitize.clean(value)) if value.present?
end
end
def requires_ldap_check?
!last_credential_check_at || (last_credential_check_at + 1.hour) < Time.now
end
end
class AddPermissionCheckToUser < ActiveRecord::Migration
def change
add_column :users, :last_credential_check_at, :datetime
end
end
......@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20130809090140) do
ActiveRecord::Schema.define(:version => 20130809124851) do
create_table "deploy_keys_projects", :force => true do |t|
t.integer "deploy_key_id", :null => false
......@@ -307,6 +307,7 @@ ActiveRecord::Schema.define(:version => 20130809090140) do
t.integer "notification_level", :default => 1, :null => false
t.datetime "password_expires_at"
t.integer "created_by_id"
t.datetime "last_credential_check_at"
end
add_index "users", ["admin"], :name => "index_users_on_admin"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment