Skip to content
Snippets Groups Projects
Commit 9b5492c5 authored by smayer's avatar smayer
Browse files

Update code for authentication to save also the labs user name, display it for public data sets

parent 72399020
No related branches found
No related tags found
1 merge request!2Merging development into onb as preparation for Annolyzer release
......@@ -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
......
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
......
......@@ -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>
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment