about summary refs log tree commit diff
path: root/app/services/setup_local_account_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/setup_local_account_service.rb')
-rw-r--r--app/services/setup_local_account_service.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/app/services/setup_local_account_service.rb b/app/services/setup_local_account_service.rb
new file mode 100644
index 000000000..c40e51855
--- /dev/null
+++ b/app/services/setup_local_account_service.rb
@@ -0,0 +1,14 @@
+class SetupLocalAccountService
+  def call(user, username)
+    user.build_account
+
+    user.account.username = username
+    user.account.domain   = nil
+
+    keypair = OpenSSL::PKey::RSA.new(2048)
+    user.account.private_key = keypair.to_pem
+    user.account.public_key  = keypair.public_key.to_pem
+
+    user.save!
+  end
+end