From cedae31c9593e43d80a6533143048b0bcf831ad7 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Wed, 11 Aug 2021 18:06:46 +0200 Subject: [PATCH] only html for admin, users restricted to university --- app/assets/stylesheets/admin/styles.sass | 4 +-- .../admin/universities_controller.rb | 33 +++++++------------ app/controllers/admin/users_controller.rb | 30 ++++++----------- .../users/registrations_controller.rb | 15 +++++++++ app/controllers/users/sessions_controller.rb | 15 +++++++++ app/models/university.rb | 2 +- app/models/university/with_identifier.rb | 6 ++-- app/models/university/with_users.rb | 7 ++++ app/models/user.rb | 22 ++++++++----- app/models/user/with_devise.rb | 11 +++++++ app/views/devise/shared/_links.html.erb | 4 +-- config/initializers/devise.rb | 2 +- config/routes.rb | 5 ++- db/migrate/20210708041914_fix_uuids.rb | 25 -------------- .../20210708052012_add_fields_to_programs.rb | 6 ---- ..._uuid.rb => 20210801041644_enable_uuid.rb} | 0 ... => 20210801043544_create_universities.rb} | 3 +- ... => 20210801043712_devise_create_users.rb} | 12 ++++--- ...s.rb => 20210808043034_create_programs.rb} | 4 ++- ...10808122438_create_qualiopi_criterions.rb} | 2 +- ...10808122519_create_qualiopi_indicators.rb} | 4 +-- ...0809084645_add_identifier_to_university.rb | 5 --- .../20210811082802_namespace_features.rb | 7 ---- db/schema.rb | 13 ++++---- db/seeds.rb | 8 +---- test/fixtures/universities.yml | 1 - test/fixtures/users.yml | 15 ++++++--- test/models/university_test.rb | 1 - test/models/user_test.rb | 15 ++++++--- 29 files changed, 137 insertions(+), 140 deletions(-) create mode 100644 app/controllers/users/registrations_controller.rb create mode 100644 app/controllers/users/sessions_controller.rb create mode 100644 app/models/university/with_users.rb create mode 100644 app/models/user/with_devise.rb delete mode 100644 db/migrate/20210708041914_fix_uuids.rb delete mode 100644 db/migrate/20210708052012_add_fields_to_programs.rb rename db/migrate/{20210708041644_enable_uuid.rb => 20210801041644_enable_uuid.rb} (100%) rename db/migrate/{20210701043544_create_universities.rb => 20210801043544_create_universities.rb} (76%) rename db/migrate/{20210701043712_devise_create_users.rb => 20210801043712_devise_create_users.rb} (76%) rename db/migrate/{20210708043034_create_programs.rb => 20210808043034_create_programs.rb} (81%) rename db/migrate/{20210708122438_create_qualiopi_criterions.rb => 20210808122438_create_qualiopi_criterions.rb} (70%) rename db/migrate/{20210708122519_create_qualiopi_indicators.rb => 20210808122519_create_qualiopi_indicators.rb} (70%) delete mode 100644 db/migrate/20210809084645_add_identifier_to_university.rb delete mode 100644 db/migrate/20210811082802_namespace_features.rb diff --git a/app/assets/stylesheets/admin/styles.sass b/app/assets/stylesheets/admin/styles.sass index 749a772a4..2bef76650 100644 --- a/app/assets/stylesheets/admin/styles.sass +++ b/app/assets/stylesheets/admin/styles.sass @@ -1,8 +1,8 @@ h1 - margin-bottom: 30px + margin-bottom: 30px .sidebar-nav .fas - min-width: 20px + min-width: 20px body, body[data-theme=dark] .sidebar-content diff --git a/app/controllers/admin/universities_controller.rb b/app/controllers/admin/universities_controller.rb index e34d9f1cd..8347979a3 100644 --- a/app/controllers/admin/universities_controller.rb +++ b/app/controllers/admin/universities_controller.rb @@ -19,37 +19,26 @@ class Admin::UniversitiesController < Admin::ApplicationController end def create - breadcrumb - respond_to do |format| - if @university.save - format.html { redirect_to [:admin, @university], notice: "University was successfully created." } - format.json { render :show, status: :created, location: [:admin, @university] } - else - format.html { render :new, status: :unprocessable_entity } - format.json { render json: @university.errors, status: :unprocessable_entity } - end + if @university.save + redirect_to [:admin, @university], notice: "University was successfully created." + else + breadcrumb + render :new, status: :unprocessable_entity end end def update - breadcrumb - respond_to do |format| - if @university.update(university_params) - format.html { redirect_to [:admin, @university], notice: "University was successfully updated." } - format.json { render :show, status: :ok, location: [:admin, @university] } - else - format.html { render :edit, status: :unprocessable_entity } - format.json { render json: @university.errors, status: :unprocessable_entity } - end + if @university.update(university_params) + redirect_to [:admin, @university], notice: "University was successfully updated." + else + breadcrumb + render :edit, status: :unprocessable_entity end end def destroy @university.destroy - respond_to do |format| - format.html { redirect_to admin_universities_url, notice: "University was successfully destroyed." } - format.json { head :no_content } - end + redirect_to admin_universities_url, notice: "University was successfully destroyed." end protected diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index df4532226..949ebb8c8 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -2,6 +2,7 @@ class Admin::UsersController < Admin::ApplicationController load_and_authorize_resource def index + @users = current_university.users breadcrumb end @@ -20,36 +21,25 @@ class Admin::UsersController < Admin::ApplicationController def create breadcrumb - respond_to do |format| - if @user.save - format.html { redirect_to [:admin, @user], notice: "User was successfully created." } - format.json { render :show, status: :created, location: [:admin, @user] } - else - format.html { render :new, status: :unprocessable_entity } - format.json { render json: @user.errors, status: :unprocessable_entity } - end + if @user.save + redirect_to [:admin, @user], notice: "User was successfully created." + else + render :new, status: :unprocessable_entity end end def update breadcrumb - respond_to do |format| - if @user.update(user_params) - format.html { redirect_to [:admin, @user], notice: "User was successfully updated." } - format.json { render :show, status: :ok, location: [:admin, @user] } - else - format.html { render :edit, status: :unprocessable_entity } - format.json { render json: @user.errors, status: :unprocessable_entity } - end + if @user.update(user_params) + redirect_to [:admin, @user], notice: "User was successfully updated." + else + render :edit, status: :unprocessable_entity end end def destroy @user.destroy - respond_to do |format| - format.html { redirect_to admin_users_url, notice: "User was successfully destroyed." } - format.json { head :no_content } - end + redirect_to admin_users_url, notice: "User was successfully destroyed." end protected diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb new file mode 100644 index 000000000..9cbed5e1c --- /dev/null +++ b/app/controllers/users/registrations_controller.rb @@ -0,0 +1,15 @@ +class Users::RegistrationsController < Devise::RegistrationsController + prepend_before_action :set_university, only: :create + before_action :configure_sign_up_params, only: :create + + protected + + def set_university + return if request.params[:user].nil? + request.params[:user][:university_id] = current_university.id + end + + def configure_sign_up_params + devise_parameter_sanitizer.permit(:sign_up, keys: [:university_id]) + end +end diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb new file mode 100644 index 000000000..5871b7790 --- /dev/null +++ b/app/controllers/users/sessions_controller.rb @@ -0,0 +1,15 @@ +class Users::SessionsController < Devise::SessionsController + prepend_before_action :set_university, only: :create + before_action :configure_sign_in_params, only: :create + + protected + + def set_university + return if request.params[:user].nil? + request.params[:user][:university_id] = current_university.id + end + + def configure_sign_in_params + devise_parameter_sanitizer.permit(:sign_in, keys: [:university_id]) + end +end diff --git a/app/models/university.rb b/app/models/university.rb index 80d480cd9..9354058d4 100644 --- a/app/models/university.rb +++ b/app/models/university.rb @@ -12,13 +12,13 @@ # zipcode :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint # class University < ApplicationRecord validates_presence_of :name scope :ordered, -> { order(:name) } include WithIdentifier + include WithUsers include WithFeatures def to_s diff --git a/app/models/university/with_identifier.rb b/app/models/university/with_identifier.rb index 678144f5a..04d3a3a84 100644 --- a/app/models/university/with_identifier.rb +++ b/app/models/university/with_identifier.rb @@ -4,10 +4,8 @@ module University::WithIdentifier included do # TODO restrict to lower case, numbers, -, _ validates :identifier, presence: true, uniqueness: true - end - class_methods do - def with_host(host) + def self.with_host(host) find_by(identifier: extract_identifier_from(host)) || first end @@ -17,7 +15,7 @@ module University::WithIdentifier # Production osuny.osuny.org -> osuny # Staging osuny.osuny.dev -> osuny # Dev osuny.osuny -> osuny - def extract_identifier_from(host) + def self.extract_identifier_from(host) host.remove('.osuny.org') .remove('.osuny.dev') .remove('.osuny') diff --git a/app/models/university/with_users.rb b/app/models/university/with_users.rb new file mode 100644 index 000000000..7f81767ca --- /dev/null +++ b/app/models/university/with_users.rb @@ -0,0 +1,7 @@ +module University::WithUsers + extend ActiveSupport::Concern + + included do + has_many :users, dependent: :destroy + end +end diff --git a/app/models/user.rb b/app/models/user.rb index d8935a9c5..b9ea0fbf2 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,20 +25,24 @@ # unlock_token :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint +# university_id :uuid not null # # Indexes # -# index_users_on_confirmation_token (confirmation_token) UNIQUE -# index_users_on_email (email) UNIQUE -# index_users_on_reset_password_token (reset_password_token) UNIQUE -# index_users_on_unlock_token (unlock_token) UNIQUE +# index_users_on_confirmation_token (confirmation_token) UNIQUE +# index_users_on_email_and_university_id (email,university_id) UNIQUE +# index_users_on_reset_password_token (reset_password_token) UNIQUE +# index_users_on_university_id (university_id) +# index_users_on_unlock_token (unlock_token) UNIQUE +# +# Foreign Keys +# +# fk_rails_... (university_id => universities.id) # class User < ApplicationRecord - # Include default devise modules. Others available are: - # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable - devise :database_authenticatable, :registerable, - :recoverable, :rememberable, :validatable + include WithDevise + + belongs_to :university def to_s first_name || last_name ? "#{first_name} #{last_name}" diff --git a/app/models/user/with_devise.rb b/app/models/user/with_devise.rb new file mode 100644 index 000000000..fcdda620e --- /dev/null +++ b/app/models/user/with_devise.rb @@ -0,0 +1,11 @@ +module User::WithDevise + extend ActiveSupport::Concern + + included do + devise :database_authenticatable, :registerable, :recoverable, :rememberable + + def self.find_for_authentication(warden_conditions) + where(email: warden_conditions[:email].downcase, university_id: warden_conditions[:university_id]).first + end + end +end diff --git a/app/views/devise/shared/_links.html.erb b/app/views/devise/shared/_links.html.erb index 96a941241..57c971143 100644 --- a/app/views/devise/shared/_links.html.erb +++ b/app/views/devise/shared/_links.html.erb @@ -11,11 +11,11 @@ <% end %> <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %> - <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br /> + <%= link_to "Didn't receive confirmation instructions?", new_user_confirmation_path(resource_name) %><br /> <% end %> <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %> - <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br /> + <%= link_to "Didn't receive unlock instructions?", new_user_unlock_path(resource_name) %><br /> <% end %> <%- if devise_mapping.omniauthable? %> diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 6cba4e7ce..8d9308c99 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -46,7 +46,7 @@ Devise.setup do |config| # session. If you need permissions, you should implement that in a before filter. # You can also supply a hash where the value is a boolean determining whether # or not authentication should be aborted when the value is not present. - # config.authentication_keys = [:email] + config.authentication_keys = [:email, :university_id] # Configure parameters from the request object used for authentication. Each entry # given should be a request method and it will automatically be passed to the diff --git a/config/routes.rb b/config/routes.rb index 5be3f77b0..5a01e8091 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,8 @@ Rails.application.routes.draw do - devise_for :users + devise_for :users, controllers: { + registrations: 'users/registrations', + sessions: 'users/sessions' + } draw 'adminserver' draw 'admin' diff --git a/db/migrate/20210708041914_fix_uuids.rb b/db/migrate/20210708041914_fix_uuids.rb deleted file mode 100644 index 05f4191d0..000000000 --- a/db/migrate/20210708041914_fix_uuids.rb +++ /dev/null @@ -1,25 +0,0 @@ -class FixUuids < ActiveRecord::Migration[6.1] - def up - add_column :users, :uuid, :uuid, default: "gen_random_uuid()", null: false - rename_column :users, :id, :integer_id - rename_column :users, :uuid, :id - execute "ALTER TABLE users drop constraint users_pkey;" - execute "ALTER TABLE users ADD PRIMARY KEY (id);" - execute "ALTER TABLE ONLY users ALTER COLUMN integer_id DROP DEFAULT;" - change_column_null :users, :integer_id, true - execute "DROP SEQUENCE IF EXISTS users_id_seq" - - add_column :universities, :uuid, :uuid, default: "gen_random_uuid()", null: false - rename_column :universities, :id, :integer_id - rename_column :universities, :uuid, :id - execute "ALTER TABLE universities drop constraint universities_pkey;" - execute "ALTER TABLE universities ADD PRIMARY KEY (id);" - execute "ALTER TABLE ONLY universities ALTER COLUMN integer_id DROP DEFAULT;" - change_column_null :universities, :integer_id, true - execute "DROP SEQUENCE IF EXISTS universities_id_seq" - end - - def down - raise ActiveRecord::IrreversibleMigration - end -end diff --git a/db/migrate/20210708052012_add_fields_to_programs.rb b/db/migrate/20210708052012_add_fields_to_programs.rb deleted file mode 100644 index 024a496e2..000000000 --- a/db/migrate/20210708052012_add_fields_to_programs.rb +++ /dev/null @@ -1,6 +0,0 @@ -class AddFieldsToPrograms < ActiveRecord::Migration[6.1] - def change - add_column :programs, :pricing, :text - add_column :programs, :contacts, :text - end -end diff --git a/db/migrate/20210708041644_enable_uuid.rb b/db/migrate/20210801041644_enable_uuid.rb similarity index 100% rename from db/migrate/20210708041644_enable_uuid.rb rename to db/migrate/20210801041644_enable_uuid.rb diff --git a/db/migrate/20210701043544_create_universities.rb b/db/migrate/20210801043544_create_universities.rb similarity index 76% rename from db/migrate/20210701043544_create_universities.rb rename to db/migrate/20210801043544_create_universities.rb index fbc9770b5..0a30e73fa 100644 --- a/db/migrate/20210701043544_create_universities.rb +++ b/db/migrate/20210801043544_create_universities.rb @@ -1,7 +1,8 @@ class CreateUniversities < ActiveRecord::Migration[6.1] def change - create_table :universities do |t| + create_table :universities, id: :uuid do |t| t.string :name + t.string :identifier t.string :address t.string :zipcode t.string :city diff --git a/db/migrate/20210701043712_devise_create_users.rb b/db/migrate/20210801043712_devise_create_users.rb similarity index 76% rename from db/migrate/20210701043712_devise_create_users.rb rename to db/migrate/20210801043712_devise_create_users.rb index dc90a460a..2cbe92285 100644 --- a/db/migrate/20210701043712_devise_create_users.rb +++ b/db/migrate/20210801043712_devise_create_users.rb @@ -2,7 +2,9 @@ class DeviseCreateUsers < ActiveRecord::Migration[6.1] def change - create_table :users do |t| + create_table :users, id: :uuid do |t| + t.references :university, null: false, foreign_key: true, type: :uuid + t.string :first_name t.string :last_name t.integer :role @@ -39,9 +41,9 @@ class DeviseCreateUsers < ActiveRecord::Migration[6.1] t.timestamps null: false end - add_index :users, :email, unique: true - add_index :users, :reset_password_token, unique: true - add_index :users, :confirmation_token, unique: true - add_index :users, :unlock_token, unique: true + add_index :users, [:email, :university_id], unique: true + add_index :users, :reset_password_token, unique: true + add_index :users, :confirmation_token, unique: true + add_index :users, :unlock_token, unique: true end end diff --git a/db/migrate/20210708043034_create_programs.rb b/db/migrate/20210808043034_create_programs.rb similarity index 81% rename from db/migrate/20210708043034_create_programs.rb rename to db/migrate/20210808043034_create_programs.rb index 801b6d961..df9c7eb45 100644 --- a/db/migrate/20210708043034_create_programs.rb +++ b/db/migrate/20210808043034_create_programs.rb @@ -1,6 +1,6 @@ class CreatePrograms < ActiveRecord::Migration[6.1] def change - create_table :programs, id: :uuid do |t| + create_table :features_education_programs, id: :uuid do |t| t.references :university, null: false, foreign_key: true, type: :uuid t.string :name t.integer :level @@ -14,6 +14,8 @@ class CreatePrograms < ActiveRecord::Migration[6.1] t.text :pedagogy t.text :evaluation t.text :accessibility + t.text :pricing + t.text :contacts t.timestamps end diff --git a/db/migrate/20210708122438_create_qualiopi_criterions.rb b/db/migrate/20210808122438_create_qualiopi_criterions.rb similarity index 70% rename from db/migrate/20210708122438_create_qualiopi_criterions.rb rename to db/migrate/20210808122438_create_qualiopi_criterions.rb index fa80b36e2..960867581 100644 --- a/db/migrate/20210708122438_create_qualiopi_criterions.rb +++ b/db/migrate/20210808122438_create_qualiopi_criterions.rb @@ -1,6 +1,6 @@ class CreateQualiopiCriterions < ActiveRecord::Migration[6.1] def change - create_table :qualiopi_criterions, id: :uuid do |t| + create_table :features_education_qualiopi_criterions, id: :uuid do |t| t.integer :number t.text :name t.text :description diff --git a/db/migrate/20210708122519_create_qualiopi_indicators.rb b/db/migrate/20210808122519_create_qualiopi_indicators.rb similarity index 70% rename from db/migrate/20210708122519_create_qualiopi_indicators.rb rename to db/migrate/20210808122519_create_qualiopi_indicators.rb index 24481f58a..d296f3c78 100644 --- a/db/migrate/20210708122519_create_qualiopi_indicators.rb +++ b/db/migrate/20210808122519_create_qualiopi_indicators.rb @@ -1,7 +1,7 @@ class CreateQualiopiIndicators < ActiveRecord::Migration[6.1] def change - create_table :qualiopi_indicators, id: :uuid do |t| - t.references :criterion, null: false, foreign_key: {to_table: :qualiopi_criterions}, type: :uuid + create_table :features_education_qualiopi_indicators, id: :uuid do |t| + t.references :criterion, null: false, foreign_key: {to_table: :features_education_qualiopi_criterions}, type: :uuid t.integer :number t.text :name t.text :level_expected diff --git a/db/migrate/20210809084645_add_identifier_to_university.rb b/db/migrate/20210809084645_add_identifier_to_university.rb deleted file mode 100644 index 149203d29..000000000 --- a/db/migrate/20210809084645_add_identifier_to_university.rb +++ /dev/null @@ -1,5 +0,0 @@ -class AddIdentifierToUniversity < ActiveRecord::Migration[6.1] - def change - add_column :universities, :identifier, :string - end -end diff --git a/db/migrate/20210811082802_namespace_features.rb b/db/migrate/20210811082802_namespace_features.rb deleted file mode 100644 index 81ff89fb8..000000000 --- a/db/migrate/20210811082802_namespace_features.rb +++ /dev/null @@ -1,7 +0,0 @@ -class NamespaceFeatures < ActiveRecord::Migration[6.1] - def change - rename_table :programs, :features_education_programs - rename_table :qualiopi_indicators, :features_education_qualiopi_indicators - rename_table :qualiopi_criterions, :features_education_qualiopi_criterions - end -end diff --git a/db/schema.rb b/db/schema.rb index 631bea021..99bb8102e 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -30,10 +30,10 @@ ActiveRecord::Schema.define(version: 2021_08_11_102819) do t.text "pedagogy" t.text "evaluation" t.text "accessibility" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false t.text "pricing" t.text "contacts" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false t.index ["university_id"], name: "index_features_education_programs_on_university_id" end @@ -68,8 +68,8 @@ ActiveRecord::Schema.define(version: 2021_08_11_102819) do end create_table "universities", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| - t.bigint "integer_id" t.string "name" + t.string "identifier" t.string "address" t.string "zipcode" t.string "city" @@ -77,11 +77,10 @@ ActiveRecord::Schema.define(version: 2021_08_11_102819) do t.boolean "private" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false - t.string "identifier" end create_table "users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| - t.bigint "integer_id" + t.uuid "university_id", null: false t.string "first_name" t.string "last_name" t.integer "role" @@ -105,12 +104,14 @@ ActiveRecord::Schema.define(version: 2021_08_11_102819) do t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true - t.index ["email"], name: "index_users_on_email", unique: true + t.index ["email", "university_id"], name: "index_users_on_email_and_university_id", unique: true t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true + t.index ["university_id"], name: "index_users_on_university_id" t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true end add_foreign_key "features_education_programs", "universities" add_foreign_key "features_education_qualiopi_indicators", "features_education_qualiopi_criterions", column: "criterion_id" add_foreign_key "features_websites_sites", "universities" + add_foreign_key "users", "universities" end diff --git a/db/seeds.rb b/db/seeds.rb index f3a0480d1..2c7336dfa 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,7 +1 @@ -# This file should contain all the record creation needed to seed the database with its default values. -# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). -# -# Examples: -# -# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) -# Character.create(name: 'Luke', movie: movies.first) +University.create name: 'Osuny', identifier: 'osuny' diff --git a/test/fixtures/universities.yml b/test/fixtures/universities.yml index 60abd2d59..44db33a42 100644 --- a/test/fixtures/universities.yml +++ b/test/fixtures/universities.yml @@ -12,7 +12,6 @@ # zipcode :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint # one: diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml index fe5dff24c..e99a05588 100644 --- a/test/fixtures/users.yml +++ b/test/fixtures/users.yml @@ -25,14 +25,19 @@ # unlock_token :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint +# university_id :uuid not null # # Indexes # -# index_users_on_confirmation_token (confirmation_token) UNIQUE -# index_users_on_email (email) UNIQUE -# index_users_on_reset_password_token (reset_password_token) UNIQUE -# index_users_on_unlock_token (unlock_token) UNIQUE +# index_users_on_confirmation_token (confirmation_token) UNIQUE +# index_users_on_email_and_university_id (email,university_id) UNIQUE +# index_users_on_reset_password_token (reset_password_token) UNIQUE +# index_users_on_university_id (university_id) +# index_users_on_unlock_token (unlock_token) UNIQUE +# +# Foreign Keys +# +# fk_rails_... (university_id => universities.id) # # This model initially had no columns defined. If you add columns to the diff --git a/test/models/university_test.rb b/test/models/university_test.rb index 1960b952e..dac831a2e 100644 --- a/test/models/university_test.rb +++ b/test/models/university_test.rb @@ -12,7 +12,6 @@ # zipcode :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint # require "test_helper" diff --git a/test/models/user_test.rb b/test/models/user_test.rb index 8ea003217..a54213fd1 100644 --- a/test/models/user_test.rb +++ b/test/models/user_test.rb @@ -25,14 +25,19 @@ # unlock_token :string # created_at :datetime not null # updated_at :datetime not null -# integer_id :bigint +# university_id :uuid not null # # Indexes # -# index_users_on_confirmation_token (confirmation_token) UNIQUE -# index_users_on_email (email) UNIQUE -# index_users_on_reset_password_token (reset_password_token) UNIQUE -# index_users_on_unlock_token (unlock_token) UNIQUE +# index_users_on_confirmation_token (confirmation_token) UNIQUE +# index_users_on_email_and_university_id (email,university_id) UNIQUE +# index_users_on_reset_password_token (reset_password_token) UNIQUE +# index_users_on_university_id (university_id) +# index_users_on_unlock_token (unlock_token) UNIQUE +# +# Foreign Keys +# +# fk_rails_... (university_id => universities.id) # require "test_helper" -- GitLab