Optional admin approval for local user sign up
### Overview In order to maintain control over an instance's membership, some administrators may benefit from requiring they manually approve any new user registration. This has a couple of use cases: * Reduces operational burden for instances that err on the side of security and have registration disabled, but want to conditionally allow sign-up for certain members of the organization. * Enables an EE instance to better control seat utilization. If managing costs is important to an instance, this may be helpful to gate membership on an instance. ### Proposal * Add an instance-level setting requiring admin approval for new users. * New users who attempt to register a new user on an enabled instance should see a message informing them that an admin must first approve their registration. * Present an error to the user if they attempt to recover their password or login before they are approved. * For the first iteration, no UI: * Each request should send a registration request to instance administrators. The email should have the user's name, username, and email, with a link to approve or disapprove the request. * Send a notification email to the user when the request has been approved. * User that requested approval are placed in a new state "blocked_pending_approval" that functionally blocks the user and doesn't count them against licensing. Having a new state will be useful when building an approval queue in the future. ## Status Update * 13.5 - Initial MVC for admin approval shipped! No email notifications included. * https://gitlab.com/gitlab-org/gitlab/-/issues/257878 * https://gitlab.com/gitlab-org/gitlab/-/issues/257881 * https://gitlab.com/gitlab-org/gitlab/-/issues/257886 * 13.6 - Email notifications for admin and user. Banner for instances that don't have the option enabled. Setting admin approval to be the default option. * https://gitlab.com/gitlab-org/gitlab/-/issues/257879 * https://gitlab.com/gitlab-org/gitlab/-/issues/257880 * https://gitlab.com/gitlab-org/gitlab/-/issues/267568 * https://gitlab.com/gitlab-org/gitlab/-/issues/237905
epic