Merge pull request #7257 from DDDHuang/re_username

fix: users api, create illegal char username
This commit is contained in:
DDDHuang 2022-03-10 14:46:51 +08:00 committed by GitHub
commit 9fca6c18f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 1 deletions

View File

@ -70,7 +70,19 @@ mnesia(boot) ->
-spec(add_user(binary(), binary(), binary()) -> {ok, map()} | {error, any()}). -spec(add_user(binary(), binary(), binary()) -> {ok, map()} | {error, any()}).
add_user(Username, Password, Desc) add_user(Username, Password, Desc)
when is_binary(Username), is_binary(Password) -> when is_binary(Username), is_binary(Password) ->
return(mria:transaction(?DASHBOARD_SHARD, fun add_user_/3, [Username, Password, Desc])). case legal_username(Username) of
true ->
return(
mria:transaction(?DASHBOARD_SHARD, fun add_user_/3, [Username, Password, Desc]));
false ->
{error, <<"Bad Username."
" Only upper and lower case letters, numbers and underscores are supported">>}
end.
%% 0 - 9 or A -Z or a - z or $_
legal_username(<<>>) -> false;
legal_username(UserName) ->
nomatch /= re:run(UserName, "^[_a-zA-Z0-9]*$").
%% black-magic: force overwrite a user %% black-magic: force overwrite a user
force_add_user(Username, Password, Desc) -> force_add_user(Username, Password, Desc) ->