Module: Lab::UserService

Extended by:
BCrypt
Defined in:
app/services/lab/user_service.rb

Overview

Service for managing LIMS users

Class Method Summary collapse

Class Method Details

.authenticate_user(username:, password:, user_agent:, request_ip:) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'app/services/lab/user_service.rb', line 17

def authenticate_user(username:, password:, user_agent:, request_ip:)
  user = User.find_by_username username
  encrypted_pass = Password.new(user.password)
  if encrypted_pass == password
    generate_token(user, user_agent, request_ip)
  else
    # throw authentication error
    nil
  end
end

.create_lims_user(username:, password:) ⇒ Object



9
10
11
12
13
14
15
# File 'app/services/lab/user_service.rb', line 9

def create_lims_user(username:, password:)
  validate username: username
  ActiveRecord::Base.transaction do
    person = create_lims_person
    create_user username: username, password: password, person: person
  end
end