mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-12 01:13:10 -06:00
Remove OPTION method on "/register/available",
Add CheckAccountAvailability method Signed-off-by: MTRNord <mtrnord1@gmail.com>
This commit is contained in:
parent
aad3497f0e
commit
4240762331
|
|
@ -314,3 +314,13 @@ func (d *Database) GetThreePIDsForLocalpart(
|
|||
) (threepids []authtypes.ThreePID, err error) {
|
||||
return d.threepids.selectThreePIDsForLocalpart(ctx, localpart)
|
||||
}
|
||||
|
||||
// CheckAccountAvailability checks if the username/localpart is already present in the database.
|
||||
// If the DB returns sql.ErrNoRows the Localpart isn't taken.
|
||||
func (d *Database) CheckAccountAvailability(ctx context.Context, localpart string) (bool, error) {
|
||||
_, err := d.accounts.selectAccountByLocalpart(ctx, localpart)
|
||||
if err == sql.ErrNoRows {
|
||||
return true, nil
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,14 @@ func RegisterAvailable(
|
|||
return *resErr
|
||||
}
|
||||
|
||||
if _, resErr := accountDB.GetProfileByLocalpart(req.Context(), username); resErr == nil {
|
||||
availability, availabilityErr := accountDB.CheckAccountAvailability(req.Context(), username)
|
||||
if availabilityErr != nil {
|
||||
return util.JSONResponse{
|
||||
Code: 500,
|
||||
JSON: jsonerror.Unknown("failed to check availability: " + availabilityErr.Error()),
|
||||
}
|
||||
}
|
||||
if !availability {
|
||||
return util.JSONResponse{
|
||||
Code: 400,
|
||||
JSON: jsonerror.InvalidUsername("A different user ID has already been registered for this session"),
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ func Setup(
|
|||
|
||||
r0mux.Handle("/register/available", common.MakeExternalAPI("registerAvailable", func(req *http.Request) util.JSONResponse {
|
||||
return readers.RegisterAvailable(req, accountDB)
|
||||
})).Methods("GET", "OPTIONS")
|
||||
})).Methods("GET")
|
||||
|
||||
r0mux.Handle("/directory/room/{roomAlias}",
|
||||
common.MakeAuthAPI("directory_room", deviceDB, func(req *http.Request, device *authtypes.Device) util.JSONResponse {
|
||||
|
|
|
|||
Loading…
Reference in a new issue