42 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require_relative "request_parser"
 | |
| 
 | |
| module Devops
 | |
|   module API2_0
 | |
|     module Parser
 | |
|       class UserParser < RequestParser
 | |
| 
 | |
|         def create
 | |
|           user = create_object_from_json_body
 | |
|           ["username", "password", "email"].each do |p|
 | |
|             check_string(user[p], "Parameter '#{p}' must be a not empty string")
 | |
|           end
 | |
|           Devops::Model::User.new(user)
 | |
|         end
 | |
| 
 | |
|         def user_privileges
 | |
|           data = create_object_from_json_body
 | |
|           cmd = check_string(data["cmd"], "Parameter 'cmd' should be a not empty string", true)
 | |
|           privileges = check_string(data["privileges"], "Parameter 'privileges' should be a not empty string", true)
 | |
|           return cmd, privileges
 | |
|         end
 | |
| 
 | |
|         def change_password
 | |
|           user = @request.path_info.match(/(?<=^\/user\/)\w+/)[0]
 | |
|           raise InvalidPrivileges.new("Access denied for '#{current_user}'") if user == Devops::Model::User::ROOT_USER_NAME and current_user != Devops::Model::User::ROOT_USER_NAME
 | |
|           body = create_object_from_json_body
 | |
|           check_string(body["password"], "Parameter 'password' must be a not empty string")
 | |
|         end
 | |
| 
 | |
|         def change_email
 | |
|           user = @request.path_info.match(/(?<=^\/user\/)\w+/)[0]
 | |
|           raise InvalidPrivileges.new("Access denied for '#{current_user}'") if user == Devops::Model::User::ROOT_USER_NAME and current_user != Devops::Model::User::ROOT_USER_NAME
 | |
|           body = create_object_from_json_body
 | |
|           check_string(body["email"], "Parameter 'email' must be a not empty string")
 | |
|         end
 | |
| 
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 | 
