Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMayra Cabrera <mcabrera@gitlab.com>2018-03-30 05:11:36 +0300
committerMayra Cabrera <mcabrera@gitlab.com>2018-04-07 05:20:16 +0300
commit345ac03b7afb1dc9b941c53bc45cc3dfcf22e61c (patch)
tree42da609254928d746a961465d9ecfbff3ab71ad4 /app/services
parent370fc05da7f95bf6621867a71d51493cf3899e25 (diff)
Address UX review
- Keep 'Deploy Section' open upon save, otherwise the token might get lost - When an error appears, display the error inside the form and also keep the Deploy Section open - Changue copy of revoke modal
Diffstat (limited to 'app/services')
-rw-r--r--app/services/deploy_tokens/create_service.rb32
1 files changed, 23 insertions, 9 deletions
diff --git a/app/services/deploy_tokens/create_service.rb b/app/services/deploy_tokens/create_service.rb
index e93c021557e..0332bb54167 100644
--- a/app/services/deploy_tokens/create_service.rb
+++ b/app/services/deploy_tokens/create_service.rb
@@ -3,22 +3,36 @@ module DeployTokens
REDIS_EXPIRY_TIME = 3.minutes
def execute
- @deploy_token = @project.deploy_tokens.create(params)
- store_in_redis if @deploy_token.persisted?
-
- @deploy_token
+ @project.deploy_tokens.build.tap do |deploy_token|
+ deploy_token.attributes = params
+ deploy_token.save
+ store_deploy_token_info_in_redis(deploy_token)
+ end
end
private
- def store_in_redis
- Gitlab::Redis::SharedState.with do |redis|
- redis.set(deploy_token_key, @deploy_token.token, ex: REDIS_EXPIRY_TIME)
+ def store_deploy_token_info_in_redis(deploy_token)
+ deploy_token_key = deploy_token.redis_shared_state_key(current_user.id)
+
+ if deploy_token.persisted?
+ store_in_redis(deploy_token_key, deploy_token.token)
+ else
+ store_deploy_attributes(deploy_token_key, deploy_token)
end
end
- def deploy_token_key
- DeployToken.redis_shared_state_key(current_user.id)
+ def store_deploy_attributes(deploy_token_key, deploy_token)
+ attributes = deploy_token.attributes.slice("name", "expires_at")
+ deploy_token_attributes_key = deploy_token_key + ":attributes"
+
+ store_in_redis(deploy_token_attributes_key, attributes.to_json)
+ end
+
+ def store_in_redis(key, value)
+ Gitlab::Redis::SharedState.with do |redis|
+ redis.set(key, value, ex: REDIS_EXPIRY_TIME)
+ end
end
end
end