@@ -56,6 +56,27 @@ class UsersController < Api::V8::BaseController
5656 end
5757 end
5858
59+ swagger_path '/api/v8/users/{user_id}/set_password_managed_by_moocfi' do
60+ operation :post do
61+ key :description , 'Sets the boolean password_managed_by_moocfi for the user with the given id to payload value.'
62+ key :operationId , 'setPasswordManagedByMoocfi'
63+ key :produces , [ 'application/json' ]
64+ key :tags , [ 'user' ]
65+ parameter '$ref' : '#/parameters/user_id'
66+ response 403 , '$ref' : '#/responses/error'
67+ response 404 , '$ref' : '#/responses/error'
68+ response 200 do
69+ key :description , "status 'ok' and sets the boolean password_managed_by_moocfi"
70+ schema do
71+ key :title , :status
72+ key :required , [ :status ]
73+ property :status , type : :string , example : 'Password managed by Mooc.fi set to true.'
74+ end
75+ end
76+ end
77+ end
78+
79+
5980 def show
6081 unauthorize_guest! if current_user . guest?
6182 user = current_user
@@ -149,6 +170,23 @@ def update
149170 } , status : :bad_request
150171 end
151172
173+ def set_password_managed_by_moocfi
174+ unauthorize_guest! if current_user . guest?
175+
176+ @user = User . find_by! ( id : params [ :id ] )
177+ authorize! :update , @user
178+ @user . password_managed_by_moocfi = params [ :set_password_managed_by_moocfi ]
179+ if @user . save
180+ render json : {
181+ status : "Password managed by Mooc.fi set to #{ params [ :set_password_managed_by_moocfi ] } ."
182+ }
183+ else
184+ render json : {
185+ errors : @user . errors
186+ } , status : :bad_request
187+ end
188+ end
189+
152190 private
153191 def set_email
154192 user_params = params [ :user ]
0 commit comments