3193: update the ssh popup to not require name.
authorradhika <radhika@curoverse.com>
Wed, 30 Jul 2014 14:32:43 +0000 (10:32 -0400)
committerradhika <radhika@curoverse.com>
Wed, 30 Jul 2014 14:32:43 +0000 (10:32 -0400)
apps/workbench/app/controllers/users_controller.rb
apps/workbench/app/views/users/_add_ssh_key_popup.html.erb
apps/workbench/app/views/users/add_ssh_key_popup.js.erb

index 836c1852421f4131d41a8e075d11cc4c224c8421..805d0d2e8064c4a72765927a03d44249edbf2fb5 100644 (file)
@@ -263,6 +263,11 @@ class UsersController < ApplicationController
         key_params['public_key'] = params['public_key']
       end
 
+      if !key_params['name']
+        split_key = key_params['public_key'].split
+        key_params['name'] = split_key[-1] if (split_key.size == 3)
+      end
+
       new_key = AuthorizedKey.create! key_params
       if new_key
         format.js
index 283154f174d3745ccf8a4d229171ec4ba2460f22..83299813ac0202e59332115cd33cd483b7b3b189 100644 (file)
                  style: "font-weight: bold",
                  target: "_blank" %>
         </div>
-        <div class="form-group">
-               <label for="name">Name</label>
-          <input class="form-control" id="name" maxlength="250" name="name" type="text"/>
-        </div>
         <div class="form-group">
           <label for="public_key">Public Key</label>
           <textarea class="form-control" id="public_key" rows="4" name="public_key" type="text"/>
         </div>
+        <div class="form-group">
+          <label for="name">Name</label>
+          <input class="form-control" id="name" maxlength="250" name="name" type="text"/>
+        </div>
       </div>
 
       <div class="modal-footer">
index 148c0b2b5903677cc51ef8d1d248d834d9e1dee9..808edd750216fc2af519891f757d901ebac0be86 100644 (file)
@@ -6,8 +6,7 @@ $register = $('#register');
 
 var name_value = document.forms["add_new_key_form"]["name"].value;
 var public_key_value = document.forms["add_new_key_form"]["public_key"].value;
-if ((name_value == null || name_value == "" ||
-     public_key_value == null || public_key_value == "")) {
+if (public_key_value == null || public_key_value == "") {
   $register.attr('disabled', true);
 }
 
@@ -18,8 +17,14 @@ $input.on('keyup paste mouseleave onblur', function() {
   var name_value = document.forms["add_new_key_form"]["name"].value;
   var public_key_value = document.forms["add_new_key_form"]["public_key"].value;
 
-  if ((name_value == null || name_value == "" ||
-       public_key_value == null || public_key_value == "")){
+  var publicKeyRegExp = /^ssh-(rsa|dss) [A-Za-z0-9+\/=\+]+\b/;
+  var validKey = false;
+  if (publicKeyRegExp.test(public_key_value )) {
+    validKey = true;
+  }
+
+  if (public_key_value == null || public_key_value == "" || !validKey){
     trigger = true;
   }