Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
e3e9db95
Commit
e3e9db95
authored
Feb 07, 2012
by
miks
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow non-unique deploy keys
parent
3d77183c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
3 deletions
+16
-3
app/models/key.rb
app/models/key.rb
+16
-3
No files found.
app/models/key.rb
View file @
e3e9db95
require
'digest/md5'
class
Key
<
ActiveRecord
::
Base
belongs_to
:user
belongs_to
:project
...
...
@@ -8,16 +10,24 @@ class Key < ActiveRecord::Base
validates
:key
,
:presence
=>
true
,
:uniqueness
=>
true
,
:length
=>
{
:within
=>
0
..
5000
}
before_save
:set_identifier
after_save
:update_repository
after_destroy
:repository_delete_key
validate
:unique_key
def
unique_key
query
=
'key = ?'
query
<<
' AND project_id IS NULL'
unless
user_id
if
(
Key
.
where
(
query
,
key
.
strip
).
count
>
0
)
errors
.
add
:key
,
'already exist.'
end
end
def
set_identifier
if
is_deploy_key
self
.
identifier
=
"deploy_
#{
project
.
code
}
_
#{
Time
.
now
.
to_i
}
"
self
.
identifier
=
"deploy_
"
+
Digest
::
MD5
.
hexdigest
(
key
)
else
self
.
identifier
=
"
#{
user
.
identifier
}
_
#{
Time
.
now
.
to_i
}
"
end
...
...
@@ -32,7 +42,10 @@ class Key < ActiveRecord::Base
def
repository_delete_key
Gitlabhq
::
GitHost
.
system
.
new
.
configure
do
|
c
|
c
.
delete_key
(
identifier
)
#delete key file is there is no identically deploy keys
if
!
is_deploy_key
||
Key
.
where
(
:identifier
=>
identifier
).
count
()
==
0
c
.
delete_key
(
identifier
)
end
c
.
update_projects
(
projects
)
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment