diff --git a/app/controllers/concerns/authentication.rb b/app/controllers/concerns/authentication.rb index a64e42acc32dc8e574880474dd361928f35cb291..f6de47eaa7dc245b8cd0d49fd86cd11847ea7c71 100644 --- a/app/controllers/concerns/authentication.rb +++ b/app/controllers/concerns/authentication.rb @@ -11,16 +11,17 @@ module Authentication end def authenticate_user! - id_dict = { "labs_user_id" => decrypt_header(request.headers["X-Auth-Newseye-Token"]) } - # id_dict = { "labs_user_id" => "42" } - @user = User.find_by(labs_user_id: id_dict["labs_user_id"]) + user_dict = { "labs_user_id" => decrypt_header(request.headers["X-Auth-Newseye-Token"])[0], + "labs_user_name" => decrypt_header(request.headers["X-Auth-Newseye-Token"])[1] } + # user_dict = { "labs_user_id" => "42", "labs_user_name" => "dummyuser" } + @user = User.find_by(labs_user_id: user_dict["labs_user_id"]) if @user if !session[:current_user_id] # puts "Logging in the user since current_user_id was not set" login @user end else - @user = User.new(id_dict) + @user = User.new(user_dict) if @user.save login @user end @@ -36,12 +37,12 @@ module Authentication private def current_user - Current.user ||= User.find_by(labs_user_id: decrypt_header(request.headers["X-Auth-Newseye-Token"])) + Current.user ||= User.find_by(labs_user_id: decrypt_header(request.headers["X-Auth-Newseye-Token"])[0]) # Current.user ||= User.find_by(labs_user_id: "42") end def decrypt_header(token) - private_key = ENV['NEP_AUTH_PRIVATE_KEY'] || "OFE_GQ8Ri8MX-0rH_T0e9ZFIhy-q0n2VxBWPoOyJ1I0=" + private_key = ENV["NEP_AUTH_PRIVATE_KEY"] || "OFE_GQ8Ri8MX-0rH_T0e9ZFIhy-q0n2VxBWPoOyJ1I0=" unpacked_key = Base64.urlsafe_decode64(private_key) signing_key = unpacked_key[0..15] encryption_key = unpacked_key[16..32] @@ -67,6 +68,7 @@ module Authentication d.key = encryption_key d.iv = iv plain = d.update(ciphertext) + d.final + token_tuple = plain.split(",", 2) rescue => e # do something now puts e.message, e.backtrace diff --git a/app/models/user.rb b/app/models/user.rb index f02f51be431faac33063b78e75dded039f33f586..08fcfee751ba9247d43193abb783e414d26acf42 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,5 +1,6 @@ class User < ApplicationRecord attribute :labs_user_id, presence: true, unique: true + attribute :labs_user_name, presence: true, unique: true has_many :experiments has_many :datasets diff --git a/app/views/dataset/_public_datasets_modal.html.erb b/app/views/dataset/_public_datasets_modal.html.erb index a8e1a98ce8908306cb5dc2f36fe5bf4c12d5f0a1..98614d5c8eccbc836e672ab454477cb40c6783e4 100644 --- a/app/views/dataset/_public_datasets_modal.html.erb +++ b/app/views/dataset/_public_datasets_modal.html.erb @@ -29,7 +29,7 @@ <td> <% user = User.find(d.user_id) %> <%# <% username = user.email[0...user.email.index('@')] %> - <% username = user.id %> + <% username = user.labs_user_name %> <%= username %> </td> <td> diff --git a/db/migrate/20210721081005_create_users.rb b/db/migrate/20210721081005_create_users.rb index d2be7d5092714895ac83afaa2014b7cae8e91c5e..7d36ddb92c2af7a44e623f25940d24fa68fac0e2 100644 --- a/db/migrate/20210721081005_create_users.rb +++ b/db/migrate/20210721081005_create_users.rb @@ -2,6 +2,7 @@ class CreateUsers < ActiveRecord::Migration[6.1] def change create_table :users do |t| t.string :labs_user_id, null: false, unique: true + t.string :labs_user_name, null: false, unique: true t.timestamps null: false end diff --git a/db/schema.rb b/db/schema.rb index 332f259f28d515c4ea0cb1977156ce63ba64756b..43472e2546a9191541fad51f45a284cea34189de 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -78,6 +78,7 @@ ActiveRecord::Schema.define(version: 2021_11_23_112405) do create_table "users", force: :cascade do |t| t.string "labs_user_id", null: false + t.string "labs_user_name", null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["labs_user_id"], name: "index_users_on_labs_user_id", unique: true