summaryrefslogtreecommitdiff
path: root/lib/gitlab/lfs_token.rb
diff options
context:
space:
mode:
authorPatricio Cano <suprnova32@gmail.com>2016-09-06 16:32:39 -0500
committerPatricio Cano <suprnova32@gmail.com>2016-09-15 12:21:00 -0500
commitc144db2935f0f71c7f282a3015d126526bc16b57 (patch)
treebe83c7b4dac7e56c236de5eb9d1dde9173eec965 /lib/gitlab/lfs_token.rb
parent85152f0291b7e6dd4a92a068e7d5c4334df54e80 (diff)
downloadgitlab-ce-c144db2935f0f71c7f282a3015d126526bc16b57.tar.gz
Better authentication handling, syntax fixes and better actor handling for LFS Tokens
Diffstat (limited to 'lib/gitlab/lfs_token.rb')
-rw-r--r--lib/gitlab/lfs_token.rb21
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/gitlab/lfs_token.rb b/lib/gitlab/lfs_token.rb
index 8f49deb4d03..d7db8017475 100644
--- a/lib/gitlab/lfs_token.rb
+++ b/lib/gitlab/lfs_token.rb
@@ -2,15 +2,18 @@ module Gitlab
class LfsToken
attr_accessor :actor
+ TOKEN_LENGTH = 50
+ EXPIRY_TIME = 1800
+
def initialize(actor)
- @actor = actor
+ set_actor(actor)
end
def generate
- token = Devise.friendly_token(50)
+ token = Devise.friendly_token(TOKEN_LENGTH)
Gitlab::Redis.with do |redis|
- redis.set(redis_key, token, ex: 600)
+ redis.set(redis_key, token, ex: EXPIRY_TIME)
end
token
@@ -35,5 +38,17 @@ module Gitlab
def redis_key
"gitlab:lfs_token:#{actor.class.name.underscore}_#{actor.id}" if actor
end
+
+ def set_actor(actor)
+ @actor =
+ case actor
+ when DeployKey, User
+ actor
+ when Key
+ actor.user
+ else
+ #
+ end
+ end
end
end