Allow admins to remove credits from internal/users (#2635)

This commit is contained in:
Jess Lee 2019-05-01 12:49:42 -04:00 committed by Mac Siri
parent 4c9959f0ff
commit 011e734ee0
4 changed files with 24 additions and 4 deletions

View file

@ -42,6 +42,7 @@ class Internal::UsersController < Internal::ApplicationController
make_matches
add_note if user_params[:new_note]
add_credits if user_params[:add_credits]
remove_credits if user_params[:remove_credits]
if user_params[:quick_match]
redirect_to "/internal/users/unmatched_mentee"
else
@ -68,6 +69,11 @@ class Internal::UsersController < Internal::ApplicationController
Credit.import credit_objects
end
def remove_credits
amount = user_params[:remove_credits].to_i
@user.credits.where(spent: false).limit(amount).delete_all
end
def user_status
@user = User.find(params[:id])
begin
@ -138,6 +144,7 @@ class Internal::UsersController < Internal::ApplicationController
:toggle_mentorship,
:pro,
:merge_user_id,
:add_credits)
:add_credits,
:remove_credits)
end
end

View file

@ -1,7 +1,7 @@
class User < ApplicationRecord
include CloudinaryHelper
attr_accessor :scholar_email, :new_note, :quick_match, :mentorship_note, :note_for_current_role, :add_mentor, :add_mentee, :user_status, :toggle_mentorship, :pro, :merge_user_id, :add_credits
attr_accessor :scholar_email, :new_note, :quick_match, :mentorship_note, :note_for_current_role, :add_mentor, :add_mentee, :user_status, :toggle_mentorship, :pro, :merge_user_id, :add_credits, :remove_credits
rolify
include AlgoliaSearch

View file

@ -1,11 +1,18 @@
<div class="row">
<h3><u>Credits</u></h3>
<p>Avaiable Credits: <%= @user.credits.where(spent: false).size %></p>
<p>Available Credits: <%= @user.credits.where(spent: false).size %></p>
<%= form_for [:internal, @user] do |f| %>
<%= f.label "Add Credit(s): " %>
<br>
<%= f.text_field :add_credits %>
<%= f.text_field :add_credits, placeholder: "#" %>
<br>
<%= f.submit "Add Credits" %>
<% end %>
<%= form_for [:internal, @user] do |f| %>
<%= f.label "Remove Credits(s)" %>
<br>
<%= f.text_field :remove_credits, placeholder: "#" %>
<br>
<%= f.submit "Remove Credits"%>
<% end %>
</div>

View file

@ -130,6 +130,12 @@ RSpec.describe "Internal::Users", type: :request do
put "/internal/users/#{user.id}", params: { user: { new_note: "general note about whatever" } }
expect(Note.last.content).to eq("general note about whatever")
end
it "remove credits from account" do
create_list(:credit, 5, user: user)
put "/internal/users/#{user.id}", params: { user: { remove_credits: "3" } }
expect(user.credits.size).to eq(2)
end
end
context "when deleting user" do