Skip to content

Commit 5ca545a

Browse files
author
root
committed
Validate that people don't reuse Gitolite Admin key
1 parent 0b684ed commit 5ca545a

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

Diff for: app/models/gitolite_public_key.rb

+6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class GitolitePublicKey < ActiveRecord::Base
2828

2929
validate :has_not_been_changed
3030
validate :key_correctness
31+
validate :key_not_admin
3132
validate :key_uniqueness
3233

3334
## Scopes
@@ -220,6 +221,11 @@ def key_correctness
220221
end
221222

222223

224+
def key_not_admin
225+
errors.add(:key, :taken_by_gitolite_admin) if fingerprint == RedmineGitHosting::Config.gitolite_ssh_public_key_fingerprint
226+
end
227+
228+
223229
def key_uniqueness
224230
return if !new_record?
225231
existing = GitolitePublicKey.find_by_fingerprint(fingerprint)

Diff for: lib/redmine_git_hosting/config/gitolite_base.rb

+5
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ def gitolite_ssh_public_key
5656
end
5757

5858

59+
def gitolite_ssh_public_key_fingerprint
60+
@gitolite_ssh_fingerprint ||= RedmineGitHosting::Utils.ssh_fingerprint(File.read(gitolite_ssh_public_key))
61+
end
62+
63+
5964
def gitolite_config_file
6065
File.basename(RedmineGitHosting::Config.get_setting(:gitolite_config_file))
6166
end

0 commit comments

Comments
 (0)