Prevent creation of temporary users while seeding

This commit is contained in:
Sebastian Serth
2021-07-12 20:31:24 +02:00
parent d576136846
commit bf8d8284e2
5 changed files with 34 additions and 27 deletions

View File

@ -5,7 +5,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-coffee:latest' }
association :file_type, factory: :dot_coffee
file_type { association :dot_coffee, user: user }
help
name { 'CoffeeScript' }
network_enabled { false }
@ -19,7 +19,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-html:latest' }
association :file_type, factory: :dot_html
file_type { association :dot_html, user: user }
help
name { 'HTML5' }
network_enabled { false }
@ -35,7 +35,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'openhpi/co_execenv_java:latest' }
association :file_type, factory: :dot_java
file_type { association :dot_java, user: user }
help
name { 'Java 8' }
network_enabled { false }
@ -51,7 +51,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-jruby:latest' }
association :file_type, factory: :dot_rb
file_type { association :dot_rb, user: user }
help
name { 'JRuby 1.7' }
network_enabled { false }
@ -67,7 +67,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-node:latest' }
association :file_type, factory: :dot_js
file_type { association :dot_js, user: user }
help
name { 'Node.js' }
network_enabled { false }
@ -81,7 +81,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'openhpi/co_execenv_python:latest' }
association :file_type, factory: :dot_py
file_type { association :dot_py, user: user }
help
name { 'Python 3.4' }
network_enabled { false }
@ -97,7 +97,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-ruby:latest' }
association :file_type, factory: :dot_rb
file_type { association :dot_rb, user: user }
help
name { 'Ruby 2.2' }
network_enabled { false }
@ -113,7 +113,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-sinatra:latest' }
association :file_type, factory: :dot_rb
file_type { association :dot_rb, user: user }
exposed_ports { '4567' }
help
name { 'Sinatra' }
@ -130,7 +130,7 @@ FactoryBot.define do
created_by_teacher
default_memory_limit
docker_image { 'hklement/ubuntu-sqlite:latest' }
association :file_type, factory: :dot_sql
file_type { association :dot_sql, user: user }
help
name { 'SQLite' }
network_enabled { false }

View File

@ -4,7 +4,10 @@ require 'seeds_helper'
def create_seed_file(exercise, path, file_attributes = {})
file_extension = File.extname(path)
file_type = FactoryBot.create(file_attributes[:file_type] || :"dot_#{file_extension.delete('.')}")
file_type = FactoryBot.create(
file_attributes[:file_type] || :"dot_#{file_extension.delete('.')}",
user: exercise.user
)
name = File.basename(path).gsub(file_extension, '')
file_attributes.merge!(file_type: file_type, name: name, path: path.split('/')[1..-2].join('/'), role: file_attributes[:role] || 'regular_file')
if file_type.binary?

View File

@ -205,6 +205,10 @@ FactoryBot.define do
end
trait :singleton_file_type do
initialize_with { FileType.where(attributes).first_or_create }
initialize_with do
FileType.where(attributes.except(:user)).first_or_create do |file_type|
file_type.user = user
end
end
end
end