|
|
|
@@ -2,8 +2,6 @@ module RegisterHelper |
|
|
|
extend ActiveSupport::Concern |
|
|
|
|
|
|
|
def autologin_register(username, email, password, platform= 'forge') |
|
|
|
result = {message: nil, user: nil} |
|
|
|
|
|
|
|
user = User.new(admin: false, login: username, mail: email, type: "User") |
|
|
|
user.password = password |
|
|
|
user.platform = platform |
|
|
|
@@ -11,20 +9,29 @@ module RegisterHelper |
|
|
|
|
|
|
|
return unless user.valid? |
|
|
|
|
|
|
|
create_gitea_user!(user, username, email, password) |
|
|
|
end |
|
|
|
|
|
|
|
def create_gitea_user!(forge_user, username, email, password=random_password) |
|
|
|
result = {message: nil, user: nil} |
|
|
|
|
|
|
|
interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password}) |
|
|
|
if interactor.success? |
|
|
|
gitea_user = interactor.result |
|
|
|
result = Gitea::User::GenerateTokenService.call(username, password) |
|
|
|
user.gitea_token = result['sha1'] |
|
|
|
user.gitea_uid = gitea_user[:body]['id'] |
|
|
|
if user.save! |
|
|
|
UserExtension.create!(user_id: user.id) |
|
|
|
result[:user] = {id: user.id, token: user.gitea_token} |
|
|
|
forge_user.gitea_token = result['sha1'] |
|
|
|
forge_user.gitea_uid = gitea_user[:body]['id'] |
|
|
|
if forge_user.save |
|
|
|
UserExtension.create!(user_id: forge_user.id) unless forge_user.user_extension.blank? |
|
|
|
result[:user] = {id: forge_user.id, token: forge_user.gitea_token} |
|
|
|
end |
|
|
|
else |
|
|
|
result[:message] = interactor.error |
|
|
|
end |
|
|
|
result |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def random_password |
|
|
|
"#{Random.rand(11111111)}" |
|
|
|
end |
|
|
|
end |