Skip to content
Snippets Groups Projects
Commit 8cf85b4b authored by Michael Leopard's avatar Michael Leopard Committed by Stan Hu
Browse files

Updating CE repo to include new EE users API changes

Updated users API documentation
Moved API level changes to the service level
parent 4a5bda06
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -5,10 +5,12 @@ module Users
delegate :user_default_internal_regex_enabled?,
:user_default_internal_regex_instance,
to: :'Gitlab::CurrentSettings.current_application_settings'
attr_reader :identity_params
 
def initialize(current_user, params = {})
@current_user = current_user
@params = params.dup
@identity_params = params.slice(*identity_attributes)
end
 
def execute(skip_authorization: false)
Loading
Loading
@@ -26,10 +28,8 @@ module Users
end
end
 
identity_attrs = params.slice(*identity_params)
unless identity_attrs.empty?
user.identities.build(identity_attrs)
unless identity_params.empty?
user.identities.build(identity_params)
end
 
user
Loading
Loading
@@ -37,7 +37,7 @@ module Users
 
private
 
def identity_params
def identity_attributes
[:extern_uid, :provider]
end
 
Loading
Loading
Loading
Loading
@@ -3,11 +3,13 @@
module Users
class UpdateService < BaseService
include NewUserNotifier
attr_reader :user, :identity_params
 
def initialize(current_user, params = {})
@current_user = current_user
@user = params.delete(:user)
@status_params = params.delete(:status)
@identity_params = params.slice(*identity_attributes)
@params = params.dup
end
 
Loading
Loading
@@ -15,8 +17,8 @@ module Users
yield(@user) if block_given?
 
user_exists = @user.persisted?
assign_attributes
assign_identity
 
if @user.save(validate: validate) && update_status
notify_success(user_exists)
Loading
Loading
@@ -55,7 +57,18 @@ module Users
params.reject! { |key, _| read_only.include?(key.to_sym) }
end
 
@user.assign_attributes(params) unless params.empty?
@user.assign_attributes(params.except(*identity_attributes)) unless params.empty? # rubocop: disable CodeReuse/ActiveRecord
end
def assign_identity
return unless identity_params.present?
identity = user.identities.find_or_create_by(provider: identity_params[:provider]) # rubocop: disable CodeReuse/ActiveRecord
identity.update(identity_params)
end
def identity_attributes
[:provider, :extern_uid]
end
end
end
---
title: Expose saml_provider_id in the users API
merge_request: 14045
author:
type: added
Loading
Loading
@@ -2,6 +2,8 @@
 
## List users
 
Active users = Total accounts - Blocked users
Get a list of users.
 
This function takes pagination parameters `page` and `per_page` to restrict the list of users.
Loading
Loading
@@ -257,7 +259,8 @@ Parameters:
"two_factor_enabled": true,
"external": false,
"private_profile": false,
"highest_role":10
"shared_runners_minutes_limit": 133
"extra_shared_runners_minutes_limit": 133
}
```
 
Loading
Loading
@@ -290,6 +293,7 @@ Parameters:
- `projects_limit` (optional) - Number of projects user can create
- `extern_uid` (optional) - External UID
- `provider` (optional) - External provider name
- `group_id_for_saml` (optional) - ID of group where SAML has been configured
- `bio` (optional) - User's biography
- `location` (optional) - User's location
- `public_email` (optional) - The public email of the user
Loading
Loading
@@ -299,6 +303,8 @@ Parameters:
- `external` (optional) - Flags the user as external - true or false(default)
- `avatar` (optional) - Image file for user's avatar
- `private_profile` (optional) - User's profile is private - true or false
- `shared_runners_minutes_limit` (optional) - Pipeline minutes quota for this user
- `extra_shared_runners_minutes_limit` (optional) - Extra pipeline minutes quota for this user
 
## User modification
 
Loading
Loading
@@ -322,6 +328,7 @@ Parameters:
- `projects_limit` - Limit projects each user can create
- `extern_uid` - External UID
- `provider` - External provider name
- `group_id_for_saml` (optional) - ID of group where SAML has been configured
- `bio` - User's biography
- `location` (optional) - User's location
- `public_email` (optional) - The public email of the user
Loading
Loading
@@ -329,6 +336,8 @@ Parameters:
- `can_create_group` (optional) - User can create groups - true or false
- `skip_reconfirmation` (optional) - Skip reconfirmation - true or false (default)
- `external` (optional) - Flags the user as external - true or false(default)
- `shared_runners_minutes_limit` (optional) - Pipeline minutes quota for this user
- `extra_shared_runners_minutes_limit` (optional) - Extra pipeline minutes quota for this user
- `avatar` (optional) - Image file for user's avatar
- `private_profile` (optional) - User's profile is private - true or false
 
Loading
Loading
@@ -1150,8 +1159,6 @@ settings page.
POST /users/:user_id/impersonation_tokens
```
 
Parameters:
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `user_id` | integer | yes | The ID of the user |
Loading
Loading
@@ -1255,4 +1262,4 @@ Example response:
 
Please note that `last_activity_at` is deprecated, please use `last_activity_on`.
 
[gemojione-index]: https://github.com/jonathanwiesel/gemojione/blob/master/config/index.json
[gemojione-index]: https://github.com/jonathanwiesel/gemojione/blob/master/config/index.json
\ No newline at end of file
Loading
Loading
@@ -209,22 +209,9 @@ module API
.where.not(id: user.id).count > 0
 
user_params = declared_params(include_missing: false)
identity_attrs = user_params.slice(:provider, :extern_uid)
if identity_attrs.any?
identity = user.identities.find_by(provider: identity_attrs[:provider])
if identity
identity.update(identity_attrs)
else
identity = user.identities.build(identity_attrs)
identity.save
end
end
 
user_params[:password_expires_at] = Time.now if user_params[:password].present?
result = ::Users::UpdateService.new(current_user, user_params.except(:extern_uid, :provider).merge(user: user)).execute
result = ::Users::UpdateService.new(current_user, user_params.merge(user: user)).execute
 
if result[:status] == :success
present user, with: Entities::UserPublic, current_user: current_user
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment