Commit 6ae2529041258c2d63a992298c9708cc03efd8d1

Authored by Dmitriy Zaporozhets
1 parent 77c0a6db

Remove KeysObserver

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/models/key.rb
... ... @@ -29,6 +29,10 @@ class Key &lt; ActiveRecord::Base
29 29  
30 30 delegate :name, :email, to: :user, prefix: true
31 31  
  32 + after_create :add_to_shell
  33 + after_create :notify_user
  34 + after_destroy :remove_from_shell
  35 +
32 36 def strip_white_space
33 37 self.key = key.strip unless key.blank?
34 38 end
... ... @@ -42,6 +46,26 @@ class Key &lt; ActiveRecord::Base
42 46 "key-#{id}"
43 47 end
44 48  
  49 + def add_to_shell
  50 + GitlabShellWorker.perform_async(
  51 + :add_key,
  52 + shell_id,
  53 + key
  54 + )
  55 + end
  56 +
  57 + def notify_user
  58 + NotificationService.new.new_key(self)
  59 + end
  60 +
  61 + def remove_from_shell
  62 + GitlabShellWorker.perform_async(
  63 + :remove_key,
  64 + shell_id,
  65 + key,
  66 + )
  67 + end
  68 +
45 69 private
46 70  
47 71 def generate_fingerpint
... ...
app/observers/key_observer.rb
... ... @@ -1,19 +0,0 @@
1   -class KeyObserver < BaseObserver
2   - def after_create(key)
3   - GitlabShellWorker.perform_async(
4   - :add_key,
5   - key.shell_id,
6   - key.key
7   - )
8   -
9   - notification.new_key(key)
10   - end
11   -
12   - def after_destroy(key)
13   - GitlabShellWorker.perform_async(
14   - :remove_key,
15   - key.shell_id,
16   - key.key,
17   - )
18   - end
19   -end
config/application.rb
... ... @@ -21,7 +21,6 @@ module Gitlab
21 21 # Activate observers that should always be running.
22 22 config.active_record.observers = :milestone_observer,
23 23 :project_activity_cache_observer,
24   - :key_observer,
25 24 :merge_request_observer,
26 25 :note_observer,
27 26 :project_observer,
... ...
spec/models/key_spec.rb
... ... @@ -68,4 +68,18 @@ describe Key do
68 68 build(:invalid_key).should_not be_valid
69 69 end
70 70 end
  71 +
  72 + context 'callbacks' do
  73 + it 'should add new key to authorized_file' do
  74 + @key = build(:personal_key, id: 7)
  75 + GitlabShellWorker.should_receive(:perform_async).with(:add_key, @key.shell_id, @key.key)
  76 + @key.save
  77 + end
  78 +
  79 + it 'should remove key from authorized_file' do
  80 + @key = create(:personal_key)
  81 + GitlabShellWorker.should_receive(:perform_async).with(:remove_key, @key.shell_id, @key.key)
  82 + @key.destroy
  83 + end
  84 + end
71 85 end
... ...
spec/observers/key_observer_spec.rb
... ... @@ -1,23 +0,0 @@
1   -require 'spec_helper'
2   -
3   -describe KeyObserver do
4   - before do
5   - @key = create(:personal_key)
6   -
7   - @observer = KeyObserver.instance
8   - end
9   -
10   - context :after_create do
11   - it do
12   - GitlabShellWorker.should_receive(:perform_async).with(:add_key, @key.shell_id, @key.key)
13   - @observer.after_create(@key)
14   - end
15   - end
16   -
17   - context :after_destroy do
18   - it do
19   - GitlabShellWorker.should_receive(:perform_async).with(:remove_key, @key.shell_id, @key.key)
20   - @observer.after_destroy(@key)
21   - end
22   - end
23   -end