Browse Source

add: need edit user password

tags/v3.0.3
vilet.yy 5 years ago
parent
commit
c4a43c4392
6 changed files with 24 additions and 5 deletions
  1. +0
    -1
      app/controllers/application_controller.rb
  2. +6
    -2
      app/controllers/concerns/register_helper.rb
  3. +1
    -1
      app/controllers/oauth/educoder_controller.rb
  4. +14
    -1
      app/models/user.rb
  5. +2
    -0
      app/services/projects/fork_service.rb
  6. +1
    -0
      app/views/users/get_user_info.json.jbuilder

+ 0
- 1
app/controllers/application_controller.rb 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


+ 6
- 2
app/controllers/concerns/register_helper.rb 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?



+ 1
- 1
app/controllers/oauth/educoder_controller.rb 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)


+ 14
- 1
app/models/user.rb 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?


+ 2
- 0
app/services/projects/fork_service.rb 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)


+ 1
- 0
app/views/users/get_user_info.json.jbuilder 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?


Loading…
Cancel
Save