Remove KeysObserver
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
77c0a6db4b
commit
6ae2529041
|
@ -29,6 +29,10 @@ class Key < ActiveRecord::Base
|
||||||
|
|
||||||
delegate :name, :email, to: :user, prefix: true
|
delegate :name, :email, to: :user, prefix: true
|
||||||
|
|
||||||
|
after_create :add_to_shell
|
||||||
|
after_create :notify_user
|
||||||
|
after_destroy :remove_from_shell
|
||||||
|
|
||||||
def strip_white_space
|
def strip_white_space
|
||||||
self.key = key.strip unless key.blank?
|
self.key = key.strip unless key.blank?
|
||||||
end
|
end
|
||||||
|
@ -42,6 +46,26 @@ class Key < ActiveRecord::Base
|
||||||
"key-#{id}"
|
"key-#{id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_to_shell
|
||||||
|
GitlabShellWorker.perform_async(
|
||||||
|
:add_key,
|
||||||
|
shell_id,
|
||||||
|
key
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def notify_user
|
||||||
|
NotificationService.new.new_key(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
def remove_from_shell
|
||||||
|
GitlabShellWorker.perform_async(
|
||||||
|
:remove_key,
|
||||||
|
shell_id,
|
||||||
|
key,
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def generate_fingerpint
|
def generate_fingerpint
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
class KeyObserver < BaseObserver
|
|
||||||
def after_create(key)
|
|
||||||
GitlabShellWorker.perform_async(
|
|
||||||
:add_key,
|
|
||||||
key.shell_id,
|
|
||||||
key.key
|
|
||||||
)
|
|
||||||
|
|
||||||
notification.new_key(key)
|
|
||||||
end
|
|
||||||
|
|
||||||
def after_destroy(key)
|
|
||||||
GitlabShellWorker.perform_async(
|
|
||||||
:remove_key,
|
|
||||||
key.shell_id,
|
|
||||||
key.key,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -21,7 +21,6 @@ module Gitlab
|
||||||
# Activate observers that should always be running.
|
# Activate observers that should always be running.
|
||||||
config.active_record.observers = :milestone_observer,
|
config.active_record.observers = :milestone_observer,
|
||||||
:project_activity_cache_observer,
|
:project_activity_cache_observer,
|
||||||
:key_observer,
|
|
||||||
:merge_request_observer,
|
:merge_request_observer,
|
||||||
:note_observer,
|
:note_observer,
|
||||||
:project_observer,
|
:project_observer,
|
||||||
|
|
|
@ -68,4 +68,18 @@ describe Key do
|
||||||
build(:invalid_key).should_not be_valid
|
build(:invalid_key).should_not be_valid
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'callbacks' do
|
||||||
|
it 'should add new key to authorized_file' do
|
||||||
|
@key = build(:personal_key, id: 7)
|
||||||
|
GitlabShellWorker.should_receive(:perform_async).with(:add_key, @key.shell_id, @key.key)
|
||||||
|
@key.save
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should remove key from authorized_file' do
|
||||||
|
@key = create(:personal_key)
|
||||||
|
GitlabShellWorker.should_receive(:perform_async).with(:remove_key, @key.shell_id, @key.key)
|
||||||
|
@key.destroy
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe KeyObserver do
|
|
||||||
before do
|
|
||||||
@key = create(:personal_key)
|
|
||||||
|
|
||||||
@observer = KeyObserver.instance
|
|
||||||
end
|
|
||||||
|
|
||||||
context :after_create do
|
|
||||||
it do
|
|
||||||
GitlabShellWorker.should_receive(:perform_async).with(:add_key, @key.shell_id, @key.key)
|
|
||||||
@observer.after_create(@key)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context :after_destroy do
|
|
||||||
it do
|
|
||||||
GitlabShellWorker.should_receive(:perform_async).with(:remove_key, @key.shell_id, @key.key)
|
|
||||||
@observer.after_destroy(@key)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in New Issue