Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b25a155
Add api endpoint for setting user password to be handled by moocfi
Redande Jul 10, 2025
28d495e
Validate request payload
Redande Jul 10, 2025
7a0ee92
Lessen code complexity for codeclimate
Redande Jul 10, 2025
17105ed
Further lessen code complexity
Redande Jul 10, 2025
e8e9296
Fix model spec
Redande Jul 10, 2025
c700924
Prune docker before spec_models
Redande Jul 11, 2025
a016ffd
Revert docker pruning before spec_models
Redande Jul 11, 2025
4940b77
Specify courses.mooc.fi, delete password details from db
Redande Jul 12, 2025
7f192b6
Add migration file, fix rubocop error
Redande Jul 12, 2025
d71bdd8
Update factorybot user for specs
Redande Jul 12, 2025
968b875
Don't call @user.save twice
Redande Jul 13, 2025
ce1f10a
Authenticate via courses.mooc.fi if boolean true
Redande Jul 15, 2025
e0cdbae
Use rest-client for authentication request
Redande Jul 22, 2025
a900bc5
Update password through courses if boolean is set
Redande Jul 22, 2025
0286f75
Add courses.mooc.fi user id to users-table
Redande Jul 23, 2025
cc333a4
User courses.mooc.fi user id instead of email
Redande Jul 23, 2025
0794e94
Add courses.mooc.fi user id when moving password management
Redande Jul 23, 2025
9f486e5
Authorize requests to courses.mooc.fi
Redande Jul 28, 2025
a38d633
Add enpoint for getting user details by email
Redande Aug 26, 2025
3e86cc4
Remove unnecessary logging
Redande Aug 26, 2025
fcf8bef
Add api v8 endpoint for deleting users
Redande Sep 23, 2025
51f0ae8
Use Faraday instead of RestClient
Redande Dec 3, 2025
730cab7
Rubocop fixes
Redande Dec 3, 2025
7eb65dd
Remove rest-client import
Redande Dec 4, 2025
da13414
Remove unused google drive gem and related logic
Redande Dec 4, 2025
85002db
Use transaction in new destroy user endpoint
Redande Dec 4, 2025
9fb251e
Add back ancient lost point routes
Redande Dec 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions app/controllers/api/v8/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,27 @@ class UsersController < Api::V8::BaseController
end
end

swagger_path '/api/v8/users/{user_id}/set_password_managed_by_moocfi' do
operation :post do
key :description, 'Sets the boolean password_managed_by_moocfi for the user with the given id to payload value.'
key :operationId, 'setPasswordManagedByMoocfi'
key :produces, ['application/json']
key :tags, ['user']
parameter '$ref': '#/parameters/user_id'
response 403, '$ref': '#/responses/error'
response 404, '$ref': '#/responses/error'
response 200 do
key :description, "status 'ok' and sets the boolean password_managed_by_moocfi"
schema do
key :title, :status
key :required, [:status]
property :status, type: :string, example: 'Password managed by Mooc.fi set to true.'
end
end
end
end


def show
unauthorize_guest! if current_user.guest?
user = current_user
Expand Down Expand Up @@ -149,6 +170,28 @@ def update
}, status: :bad_request
end

def set_password_managed_by_moocfi
unauthorize_guest! if current_user.guest?

@user = User.find_by!(id: params[:id])
authorize! :update, @user

value = params[:set_password_managed_by_moocfi]
unless value.in?([true, false])
@user.errors.add(:password_managed_by_moocfi, 'must be a boolean')
else
@user.password_managed_by_moocfi = value
end

if @user.errors.any? || !@user.save
render json: { errors: @user.errors }, status: :bad_request
else
render json: {
status: "Password managed by Mooc.fi set to #{value}."
}
end
end

private
def set_email
user_params = params[:user]
Expand Down
1 change: 1 addition & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
resources :request_deletion, only: [:create], module: :users
resources :assistantships, module: :users, only: :index
resources :teacherships, module: :users, only: :index
post :set_password_managed_by_moocfi, on: :member
end

resources :user_app_datum, only: [:index]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class AddPasswordManagedByMoocfiToUsers < ActiveRecord::Migration[7.1]
def change
add_column :users, :password_managed_by_moocfi, :boolean, default: false
end
end
Loading
Loading