Commit 9961ac03 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'skip_confirmation_user_API' into 'master'

Skip confirmation user api

Closes #28934

See merge request gitlab-org/gitlab-ce!15175
parents 28a5f5f2 0b9e1e16
...@@ -445,6 +445,10 @@ class User < ActiveRecord::Base ...@@ -445,6 +445,10 @@ class User < ActiveRecord::Base
skip_confirmation! if bool skip_confirmation! if bool
end end
def skip_reconfirmation=(bool)
skip_reconfirmation! if bool
end
def generate_reset_token def generate_reset_token
@reset_token, enc = Devise.token_generator.generate(self.class, :reset_password_token) @reset_token, enc = Devise.token_generator.generate(self.class, :reset_password_token)
......
---
title: Add email confirmation parameters for user creation and update via API
merge_request:
author: Daniel Juarez
type: added
...@@ -297,6 +297,7 @@ Parameters: ...@@ -297,6 +297,7 @@ Parameters:
- `location` (optional) - User's location - `location` (optional) - User's location
- `admin` (optional) - User is admin - true or false (default) - `admin` (optional) - User is admin - true or false (default)
- `can_create_group` (optional) - User can create groups - true or false - `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) - `external` (optional) - Flags the user as external - true or false(default)
- `avatar` (optional) - Image file for user's avatar - `avatar` (optional) - Image file for user's avatar
......
...@@ -31,7 +31,6 @@ module API ...@@ -31,7 +31,6 @@ module API
optional :location, type: String, desc: 'The location of the user' optional :location, type: String, desc: 'The location of the user'
optional :admin, type: Boolean, desc: 'Flag indicating the user is an administrator' optional :admin, type: Boolean, desc: 'Flag indicating the user is an administrator'
optional :can_create_group, type: Boolean, desc: 'Flag indicating the user can create groups' optional :can_create_group, type: Boolean, desc: 'Flag indicating the user can create groups'
optional :skip_confirmation, type: Boolean, default: false, desc: 'Flag indicating the account is confirmed'
optional :external, type: Boolean, desc: 'Flag indicating the user is an external user' optional :external, type: Boolean, desc: 'Flag indicating the user is an external user'
optional :avatar, type: File, desc: 'Avatar image for user' optional :avatar, type: File, desc: 'Avatar image for user'
all_or_none_of :extern_uid, :provider all_or_none_of :extern_uid, :provider
...@@ -101,6 +100,7 @@ module API ...@@ -101,6 +100,7 @@ module API
requires :email, type: String, desc: 'The email of the user' requires :email, type: String, desc: 'The email of the user'
optional :password, type: String, desc: 'The password of the new user' optional :password, type: String, desc: 'The password of the new user'
optional :reset_password, type: Boolean, desc: 'Flag indicating the user will be sent a password reset token' optional :reset_password, type: Boolean, desc: 'Flag indicating the user will be sent a password reset token'
optional :skip_confirmation, type: Boolean, desc: 'Flag indicating the account is confirmed'
at_least_one_of :password, :reset_password at_least_one_of :password, :reset_password
requires :name, type: String, desc: 'The name of the user' requires :name, type: String, desc: 'The name of the user'
requires :username, type: String, desc: 'The username of the user' requires :username, type: String, desc: 'The username of the user'
...@@ -134,6 +134,7 @@ module API ...@@ -134,6 +134,7 @@ module API
requires :id, type: Integer, desc: 'The ID of the user' requires :id, type: Integer, desc: 'The ID of the user'
optional :email, type: String, desc: 'The email of the user' optional :email, type: String, desc: 'The email of the user'
optional :password, type: String, desc: 'The password of the new user' optional :password, type: String, desc: 'The password of the new user'
optional :skip_reconfirmation, type: Boolean, desc: 'Flag indicating the account skips the confirmation by email'
optional :name, type: String, desc: 'The name of the user' optional :name, type: String, desc: 'The name of the user'
optional :username, type: String, desc: 'The username of the user' optional :username, type: String, desc: 'The username of the user'
use :optional_attributes use :optional_attributes
......
...@@ -510,6 +510,14 @@ describe API::Users do ...@@ -510,6 +510,14 @@ describe API::Users do
expect(user.reload.notification_email).to eq('new@email.com') expect(user.reload.notification_email).to eq('new@email.com')
end end
it 'skips reconfirmation when requested' do
put api("/users/#{user.id}", admin), { skip_reconfirmation: true }
user.reload
expect(user.confirmed_at).to be_present
end
it 'updates user with his own username' do it 'updates user with his own username' do
put api("/users/#{user.id}", admin), username: user.username put api("/users/#{user.id}", admin), username: user.username
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment