forgeplus/app/controllers/admins/users_controller.rb

78 lines
1.7 KiB
Ruby
Raw Normal View History

2020-03-09 00:40:16 +08:00
class Admins::UsersController < Admins::BaseController
before_action :finder_user, except: [:index]
2020-03-09 00:40:16 +08:00
def index
params[:sort_by] = params[:sort_by].presence || 'created_on'
params[:sort_direction] = params[:sort_direction].presence || 'desc'
users = Admins::UserQuery.call(params)
2020-05-14 18:08:27 +08:00
@users = paginate users.includes(:user_extension, projects: :members)
2020-03-09 00:40:16 +08:00
end
def edit
end
def update
Admins::UpdateUserService.call(@user, update_params)
flash[:success] = '保存成功'
redirect_to edit_admins_user_path(@user)
rescue ActiveRecord::RecordInvalid
flash.now[:danger] = '保存失败'
render 'edit'
rescue Admins::UpdateUserService::Error => ex
flash.now[:danger] = ex.message
render 'edit'
end
def destroy
@user.destroy!
Gitea::User::DeleteService.call(@user.login)
2020-03-09 00:40:16 +08:00
render_delete_success
end
def lock
@user.lock!
2020-03-09 00:40:16 +08:00
render_ok
end
def unlock
@user.activate!
2020-03-09 00:40:16 +08:00
render_ok
end
def reward_grade
return render_unprocessable_entity('金币数量必须大于0') if params[:grade].to_i <= 0
RewardGradeService.call(@user, container_id: @user.id, container_type: 'Feedback', score: params[:grade].to_i, not_unique: true)
2020-03-09 00:40:16 +08:00
render_ok(grade: @user.grade)
2020-03-09 00:40:16 +08:00
end
def reset_login_times
@user.reset_login_times!
2020-03-09 00:40:16 +08:00
render_ok
end
def fresh_gitea_token
@user.fresh_gitea_token
render_ok
end
2020-03-09 00:40:16 +08:00
private
def finder_user
@user = User.find(params[:id])
end
2020-03-09 00:40:16 +08:00
def update_params
2023-03-16 16:48:00 +08:00
params.require(:user).permit(%i[lastname nickname gender technical_title is_shixun_marker
mail phone location location_city school_id department_id admin
password login])
2020-03-09 00:40:16 +08:00
end
2020-04-02 14:33:13 +08:00
end