diff --git a/app/helpers/admins/projects_helper.rb b/app/helpers/admins/projects_helper.rb index 36d9d6f5a..9a4d18552 100644 --- a/app/helpers/admins/projects_helper.rb +++ b/app/helpers/admins/projects_helper.rb @@ -6,7 +6,7 @@ module Admins::ProjectsHelper if owner.is_a?(User) link_to(project.owner&.real_name, "/#{project&.owner&.login}", target: '_blank') elsif owner.is_a?(Organization) - link_to(project.owner&.real_name, "/organize/#{project&.owner&.login}", target: '_blank') + link_to(project.owner&.real_name, "/#{project&.owner&.login}", target: '_blank') else "" end diff --git a/app/services/admins/update_user_service.rb b/app/services/admins/update_user_service.rb index 34f704cbe..9d116cffe 100644 --- a/app/services/admins/update_user_service.rb +++ b/app/services/admins/update_user_service.rb @@ -15,13 +15,14 @@ class Admins::UpdateUserService < ApplicationService user.firstname = '' user.password = params[:password] if params[:password].present? - user.user_extension.assign_attributes(user_extension_attributes) + user.user_extension.assign_attributes(user_extension_attributes) if user.user_extension.present? old_login = user.login ActiveRecord::Base.transaction do user.save! - user.user_extension.save! + user.user_extension.save! if user.user_extension.present? update_gitea_user(old_login) + update_gitea_user_email(user.previous_changes[:mail]) end user @@ -65,4 +66,14 @@ class Admins::UpdateUserService < ApplicationService Util.logger_error(ex) raise Error, '保存失败' end + + def update_gitea_user_email(change_options) + return if change_options.blank? + return if user.gitea_uid.blank? || user.gitea_token.blank? + $gitea_client.delete_user_emails({body: {emails: [change_options[0]]}.to_json, query: {access_token: user.gitea_token}}) + $gitea_client.post_user_emails({body: {emails: [change_options[1]]}.to_json, query: {access_token: user.gitea_token}}) + rescue Exception => ex + Util.logger_error(ex) + raise Error, '保存失败' + end end \ No newline at end of file diff --git a/app/views/admins/users/edit.html.erb b/app/views/admins/users/edit.html.erb index 44d524997..3b4801772 100644 --- a/app/views/admins/users/edit.html.erb +++ b/app/views/admins/users/edit.html.erb @@ -68,12 +68,12 @@ <%= f.label :identity, label: '职业' %> <%= select_tag('user[identity]', [], class: 'form-control identity-select optional', 'data-value': @user.user_extension&.identity, 'data-first-title': '请选择') %> -
+
<%= f.label :technical_title, label: '职称' %> <%= select_tag('user[technical_title]', [], class: 'form-control technical-title-select optional', 'data-value': @user.technical_title) %>
- <%= f.input :student_id, as: :tel, label: '学号', wrapper_html: { class: 'col-md-2', style: @user.user_extension.student? ? '' : 'display:none;' }, input_html: { class: 'student-id-input' } %> + <%= f.input :student_id, as: :tel, label: '学号', wrapper_html: { class: 'col-md-2', style: @user&.user_extension&.student? ? '' : 'display:none;' }, input_html: { class: 'student-id-input' } %>
diff --git a/app/views/admins/users/shared/_user_list.html.erb b/app/views/admins/users/shared/_user_list.html.erb index 16cd403de..716e7cc54 100644 --- a/app/views/admins/users/shared/_user_list.html.erb +++ b/app/views/admins/users/shared/_user_list.html.erb @@ -27,7 +27,7 @@ <%= user.identity %> <%= display_text(user.created_on&.strftime('%Y-%m-%d %H:%M')) %> <%= display_text(user.last_login_on&.strftime('%Y-%m-%d %H:%M')) %> - <%= link_to user.projects_count, "/users/#{user.login}/projects", target: "_blank" %> + <%= link_to user.projects_count, "/#{user.login}/projects", target: "_blank" %> <%= link_to '编辑', edit_admins_user_path(user), class: 'action' %>