From 1d5af835a5e76751e5431191d441221bf0acd476 Mon Sep 17 00:00:00 2001 From: Matchu Date: Thu, 3 Aug 2023 17:14:09 -0700 Subject: [PATCH] Add AuthUser model, connecting to openneo_id db No user-facing functionality here yet, just configuring the database connection to work with openneo_id records. This is a first step in integrating Devise stuff into this app instead of connecting with a weird second app. My basic testing for this was to temporarily connect to production `openneo_id`, and see `AuthUser.first` correctly return a user! --- Vagrantfile | 2 ++ app/models/auth_record.rb | 5 +++++ app/models/auth_user.rb | 3 +++ db/openneo_id_schema.rb | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 app/models/auth_record.rb create mode 100644 app/models/auth_user.rb create mode 100644 db/openneo_id_schema.rb diff --git a/Vagrantfile b/Vagrantfile index d1cde629..6f3a922c 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -81,6 +81,8 @@ Vagrant.configure("2") do |config| mysql -e "CREATE USER IF NOT EXISTS openneo_impress IDENTIFIED BY 'openneo_impress';" mysql -e "CREATE DATABASE IF NOT EXISTS openneo_impress;" mysql -e "GRANT ALL PRIVILEGES ON openneo_impress.* TO openneo_impress;" + mysql -e "CREATE DATABASE IF NOT EXISTS openneo_id;" + mysql -e "GRANT ALL PRIVILEGES ON openneo_id.* TO openneo_impress;" echo 'When you log in as vagrant, run `rbenv init` and follow the instructions!' echo 'Then, run `bundle install`, and `rake db:schema:load && rake db:seed`!' SHELL diff --git a/app/models/auth_record.rb b/app/models/auth_record.rb new file mode 100644 index 00000000..11fc6226 --- /dev/null +++ b/app/models/auth_record.rb @@ -0,0 +1,5 @@ +class AuthRecord < ApplicationRecord + self.abstract_class = true + + connects_to database: {reading: :openneo_id, writing: :openneo_id} +end \ No newline at end of file diff --git a/app/models/auth_user.rb b/app/models/auth_user.rb new file mode 100644 index 00000000..1fe9e4e2 --- /dev/null +++ b/app/models/auth_user.rb @@ -0,0 +1,3 @@ +class AuthUser < AuthRecord + self.table_name = 'users' +end \ No newline at end of file diff --git a/db/openneo_id_schema.rb b/db/openneo_id_schema.rb new file mode 100644 index 00000000..9395cecc --- /dev/null +++ b/db/openneo_id_schema.rb @@ -0,0 +1,36 @@ +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to +# be faster and is potentially less error prone than running all of your +# migrations from scratch. Old migrations may fail to apply correctly if those +# migrations use external dependencies or application code. +# +# It's strongly recommended that you check this file into your version control system. + +ActiveRecord::Schema[7.0].define(version: 0) do + create_table "users", id: { type: :integer, unsigned: true }, charset: "utf8", force: :cascade do |t| + t.string "name", limit: 20, null: false + t.string "encrypted_password", limit: 64, null: false + t.string "email", limit: 50, null: false + t.string "password_salt", limit: 32, null: false + t.string "reset_password_token" + t.integer "sign_in_count", default: 0 + t.datetime "current_sign_in_at", precision: nil + t.datetime "last_sign_in_at", precision: nil + t.string "current_sign_in_ip" + t.string "last_sign_in_ip" + t.integer "failed_attempts", default: 0 + t.string "unlock_token" + t.datetime "locked_at", precision: nil + t.datetime "created_at", precision: nil + t.datetime "updated_at", precision: nil + t.datetime "reset_password_sent_at", precision: nil + t.index ["email"], name: "index_users_on_email", unique: true + t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true + t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true + end + +end