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,6 +29,10 @@ class Key &lt; ActiveRecord::Base
29 29
30 delegate :name, :email, to: :user, prefix: true 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 def strip_white_space 36 def strip_white_space
33 self.key = key.strip unless key.blank? 37 self.key = key.strip unless key.blank?
34 end 38 end
@@ -42,6 +46,26 @@ class Key &lt; ActiveRecord::Base @@ -42,6 +46,26 @@ class Key &lt; ActiveRecord::Base
42 "key-#{id}" 46 "key-#{id}"
43 end 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 private 69 private
46 70
47 def generate_fingerpint 71 def generate_fingerpint
app/observers/key_observer.rb
@@ -1,19 +0,0 @@ @@ -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,7 +21,6 @@ module Gitlab
21 # Activate observers that should always be running. 21 # Activate observers that should always be running.
22 config.active_record.observers = :milestone_observer, 22 config.active_record.observers = :milestone_observer,
23 :project_activity_cache_observer, 23 :project_activity_cache_observer,
24 - :key_observer,  
25 :merge_request_observer, 24 :merge_request_observer,
26 :note_observer, 25 :note_observer,
27 :project_observer, 26 :project_observer,
spec/models/key_spec.rb
@@ -68,4 +68,18 @@ describe Key do @@ -68,4 +68,18 @@ describe Key do
68 build(:invalid_key).should_not be_valid 68 build(:invalid_key).should_not be_valid
69 end 69 end
70 end 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 end 85 end
spec/observers/key_observer_spec.rb
@@ -1,23 +0,0 @@ @@ -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