مراية لـ
https://github.com/postalserver/postal.git
تم المزامنة 2025-12-01 05:43:04 +00:00
add script to create an initial admin user
هذا الالتزام موجود في:
1
Gemfile
1
Gemfile
@@ -33,6 +33,7 @@ gem 'moonrope', :git => 'https://github.com/adamcooke/moonrope', :branch => 'mas
|
|||||||
gem 'jwt'
|
gem 'jwt'
|
||||||
gem 'createsend', '~> 4.0'
|
gem 'createsend', '~> 4.0'
|
||||||
gem 'acme-client', :git => 'https://github.com/unixcharles/acme-client'
|
gem 'acme-client', :git => 'https://github.com/unixcharles/acme-client'
|
||||||
|
gem 'highline', :require => true
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
gem 'byebug'
|
gem 'byebug'
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ GEM
|
|||||||
haml (4.0.7)
|
haml (4.0.7)
|
||||||
tilt
|
tilt
|
||||||
hashie (3.4.6)
|
hashie (3.4.6)
|
||||||
|
highline (1.7.8)
|
||||||
httparty (0.14.0)
|
httparty (0.14.0)
|
||||||
multi_xml (>= 0.5.2)
|
multi_xml (>= 0.5.2)
|
||||||
i18n (0.8.1)
|
i18n (0.8.1)
|
||||||
@@ -230,6 +231,7 @@ DEPENDENCIES
|
|||||||
gelf
|
gelf
|
||||||
haml
|
haml
|
||||||
hashie
|
hashie
|
||||||
|
highline
|
||||||
jquery-rails
|
jquery-rails
|
||||||
jwt
|
jwt
|
||||||
kaminari
|
kaminari
|
||||||
|
|||||||
@@ -80,6 +80,10 @@ case "$1" in
|
|||||||
run "ruby script/auto_upgrade.rb"
|
run "ruby script/auto_upgrade.rb"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
make-user)
|
||||||
|
run "bundle exec ruby script/make_user.rb"
|
||||||
|
;;
|
||||||
|
|
||||||
bundle)
|
bundle)
|
||||||
if [ -n "$2" ]; then
|
if [ -n "$2" ]; then
|
||||||
run "bundle install --path=$2 --without=development --jobs=4 --clean"
|
run "bundle install --path=$2 --without=development --jobs=4 --clean"
|
||||||
@@ -111,5 +115,6 @@ case "$1" in
|
|||||||
echo -e " * \e[35mregister-lets-encrypt\e[0m - register the generated Let's Encrypt key"
|
echo -e " * \e[35mregister-lets-encrypt\e[0m - register the generated Let's Encrypt key"
|
||||||
echo -e " * \e[35mupgrade\e[0m - upgrade the Postal installation"
|
echo -e " * \e[35mupgrade\e[0m - upgrade the Postal installation"
|
||||||
echo -e " * \e[35mbundle\e[0m - download & install all required Ruby dependencies"
|
echo -e " * \e[35mbundle\e[0m - download & install all required Ruby dependencies"
|
||||||
|
echo -e " * \e[35mmake-user\e[0m - create a new admin user"
|
||||||
echo
|
echo
|
||||||
esac
|
esac
|
||||||
|
|||||||
34
lib/postal/user_creator.rb
Normal file
34
lib/postal/user_creator.rb
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
require 'highline'
|
||||||
|
|
||||||
|
module Postal
|
||||||
|
module UserCreator
|
||||||
|
|
||||||
|
def self.start(&block)
|
||||||
|
cli = HighLine.new
|
||||||
|
puts "\e[32mPostal User Creator\e[0m"
|
||||||
|
puts "Enter the information required to create a new Postal user."
|
||||||
|
puts "This tool is usually only used to create your initial admin user."
|
||||||
|
puts
|
||||||
|
user = User.new
|
||||||
|
user.email_address = cli.ask("E-Mail Address".ljust(20, ' ') + ": ")
|
||||||
|
user.first_name = cli.ask("First Name".ljust(20, ' ') + ": ")
|
||||||
|
user.last_name = cli.ask("Last Name".ljust(20, ' ') + ": ")
|
||||||
|
user.password = cli.ask("Initial Password:".ljust(20, ' ') + ": ") { |value| value.echo = '*' }
|
||||||
|
|
||||||
|
block.call(user) if block_given?
|
||||||
|
if user.save
|
||||||
|
puts
|
||||||
|
puts "User has been created with e-mail address \e[32m#{user.email_address}\e[0m"
|
||||||
|
puts
|
||||||
|
else
|
||||||
|
puts
|
||||||
|
puts "\e[31mFailed to create user\e[0m"
|
||||||
|
for error in user.errors.full_messages
|
||||||
|
puts " * #{error}"
|
||||||
|
end
|
||||||
|
puts
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
9
script/make_user.rb
Executable file
9
script/make_user.rb
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
trap("INT") { puts ; exit }
|
||||||
|
|
||||||
|
require_relative '../config/environment'
|
||||||
|
require 'postal/user_creator'
|
||||||
|
|
||||||
|
Postal::UserCreator.start do |u|
|
||||||
|
u.admin = true
|
||||||
|
end
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم