add: need edit user password

This commit is contained in:
vilet.yy 2021-04-02 16:44:36 +08:00
parent 1153bd5ab6
commit c4a43c4392
6 changed files with 24 additions and 5 deletions

View File

@ -329,7 +329,6 @@ class ApplicationController < ActionController::Base
User.current = user
end
end
# if !User.current.logged? && Rails.env.development?
# User.current = User.find 1
# end

View File

@ -1,13 +1,17 @@
module RegisterHelper
extend ActiveSupport::Concern
def autologin_register(username, email, password, platform= 'forge')
def autologin_register(username, email, password, platform= 'forge', need_edit_password = false)
result = {message: nil, user: nil}
user = User.new(admin: false, login: username, mail: email, type: "User")
user.password = password
user.platform = platform
user.activate
if need_edit_password
user.need_edit_password
else
user.activate
end
return unless user.valid?

View File

@ -53,7 +53,7 @@ class Oauth::EducoderController < Oauth::BaseController
if current_user.blank? || !current_user.logged?
new_user = true
login = User.generate_login('E')
reg_result = autologin_register(login,"#{login}@forge.com", "Ec#{login}2021#", 'educoder')
reg_result = autologin_register(login,"#{login}@forge.com", "Ec#{login}2021#", 'educoder', true)
if reg_result[:message].blank?
open_user = OpenUsers::Educoder.create!(user_id: reg_result[:user][:id], uid: result['login'], extra: result)
successful_authentication(open_user.user)

View File

@ -79,6 +79,7 @@ class User < Owner
STATUS_ACTIVE = 1
STATUS_REGISTERED = 2
STATUS_LOCKED = 3
STATUS_EDIT_PASSWORD = 4
# tpi tpm权限控制
EDU_ADMIN = 1 # 超级管理员
@ -161,7 +162,7 @@ class User < Owner
has_many :organizations, through: :organization_users
# Groups and active users
scope :active, lambda { where(status: STATUS_ACTIVE) }
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_PASSWORD]) }
scope :like, lambda { |keywords|
where("LOWER(concat(lastname, firstname, login, mail)) LIKE ?", "%#{keywords.split(" ").join('|')}%") unless keywords.blank?
}
@ -378,6 +379,10 @@ class User < Owner
status == STATUS_LOCKED
end
def need_edit_password?
status == STATUS_EDIT_PASSWORD
end
def activate
self.status = STATUS_ACTIVE
end
@ -390,6 +395,10 @@ class User < Owner
self.status = STATUS_LOCKED
end
def need_edit_password
self.status = STATUS_EDIT_PASSWORD
end
def activate!
update_attribute(:status, STATUS_ACTIVE)
end
@ -402,6 +411,10 @@ class User < Owner
update_attribute(:status, STATUS_LOCKED)
end
def need_edit_password!
update_attribute(:status, STATUS_LOCKED)
end
# 课程用户身份
def course_identity(course)
if !logged?

View File

@ -24,6 +24,8 @@ class Projects::ForkService < ApplicationService
new_repository.identifier = @project.identifier
new_repository.save!
ProjectUnit.init_types(clone_project.id)
result = Gitea::Repository::ForkService.new(@project.owner, @target_owner, @project.identifier, @organization).call
@project.update_column('forked_count', @project&.forked_count.to_i + 1)

View File

@ -8,6 +8,7 @@ json.is_teacher @user.user_extension&.teacher?
json.user_identity @user.identity
json.tidding_count 0
json.user_phone_binded @user.phone.present?
json.need_edit_password @user.need_edit_password?
# json.phone @user.phone
# json.email @user.mail
json.profile_completed @user.profile_completed?