mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-20 16:15:59 +01:00
Better count management and batch users retrieval internal database
SVN Revision: 972
This commit is contained in:
parent
c7aeeb6e1f
commit
d7d34f87e7
@ -1,3 +1,8 @@
|
|||||||
|
2007-11-16 Christophe Romain <christophe.romain@process-one.net>
|
||||||
|
|
||||||
|
* src/ejabberd_auth_internal.erl: Better count management and batch users
|
||||||
|
retrieval internal database
|
||||||
|
|
||||||
2007-11-05 Mickael Remond <mremond@process-one.net>
|
2007-11-05 Mickael Remond <mremond@process-one.net>
|
||||||
|
|
||||||
* src/ejabberd_config.erl: Refactoring: Move internal
|
* src/ejabberd_config.erl: Refactoring: Move internal
|
||||||
|
@ -22,13 +22,13 @@
|
|||||||
try_register/3,
|
try_register/3,
|
||||||
dirty_get_registered_users/0,
|
dirty_get_registered_users/0,
|
||||||
get_vh_registered_users/1,
|
get_vh_registered_users/1,
|
||||||
get_vh_registered_users/2,
|
get_vh_registered_users/2,
|
||||||
get_vh_registered_users_number/1,
|
get_vh_registered_users_number/1,
|
||||||
get_vh_registered_users_number/2,
|
get_vh_registered_users_number/2,
|
||||||
get_password/2,
|
get_password/2,
|
||||||
get_password_s/2,
|
get_password_s/2,
|
||||||
is_user_exists/2,
|
is_user_exists/2,
|
||||||
is_user_exists_in_other_modules/3,
|
is_user_exists_in_other_modules/3,
|
||||||
remove_user/2,
|
remove_user/2,
|
||||||
remove_user/3,
|
remove_user/3,
|
||||||
plain_password_required/1,
|
plain_password_required/1,
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
try_register/3,
|
try_register/3,
|
||||||
dirty_get_registered_users/0,
|
dirty_get_registered_users/0,
|
||||||
get_vh_registered_users/1,
|
get_vh_registered_users/1,
|
||||||
|
get_vh_registered_users/2,
|
||||||
|
get_vh_registered_users_number/1,
|
||||||
|
get_vh_registered_users_number/2,
|
||||||
get_password/2,
|
get_password/2,
|
||||||
get_password_s/2,
|
get_password_s/2,
|
||||||
is_user_exists/2,
|
is_user_exists/2,
|
||||||
@ -122,10 +125,67 @@ get_vh_registered_users(Server) ->
|
|||||||
LServer = jlib:nameprep(Server),
|
LServer = jlib:nameprep(Server),
|
||||||
mnesia:dirty_select(
|
mnesia:dirty_select(
|
||||||
passwd,
|
passwd,
|
||||||
[{#passwd{us = '$1', _ = '_'},
|
[{#passwd{us = '$1', _ = '_'},
|
||||||
[{'==', {element, 2, '$1'}, LServer}],
|
[{'==', {element, 2, '$1'}, LServer}],
|
||||||
['$1']}]).
|
['$1']}]).
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, [{from, Start}, {to, End}])
|
||||||
|
when is_integer(Start) and is_integer(End) ->
|
||||||
|
get_vh_registered_users(Server, [{limit, End-Start+1}, {offset, Start}]);
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, [{limit, Limit}, {offset, Offset}])
|
||||||
|
when is_integer(Limit) and is_integer(Offset) ->
|
||||||
|
case get_vh_registered_users(Server) of
|
||||||
|
[] ->
|
||||||
|
[];
|
||||||
|
Users ->
|
||||||
|
Set = lists:keysort(1, Users),
|
||||||
|
L = length(Set),
|
||||||
|
Start = if Offset < 1 -> 1;
|
||||||
|
Offset > L -> L;
|
||||||
|
true -> Offset
|
||||||
|
end,
|
||||||
|
lists:sublist(Set, Start, Limit)
|
||||||
|
end;
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, [{prefix, Prefix}])
|
||||||
|
when is_list(Prefix) ->
|
||||||
|
Set = [{U,S} || {U, S} <- get_vh_registered_users(Server), lists:prefix(Prefix, U)],
|
||||||
|
lists:keysort(1, Set);
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, [{prefix, Prefix}, {from, Start}, {to, End}])
|
||||||
|
when is_list(Prefix) and is_integer(Start) and is_integer(End) ->
|
||||||
|
get_vh_registered_users(Server, [{prefix, Prefix}, {limit, End-Start+1}, {offset, Start}]);
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, [{prefix, Prefix}, {limit, Limit}, {offset, Offset}])
|
||||||
|
when is_list(Prefix) and is_integer(Limit) and is_integer(Offset) ->
|
||||||
|
case [{U,S} || {U, S} <- get_vh_registered_users(Server), lists:prefix(Prefix, U)] of
|
||||||
|
[] ->
|
||||||
|
[];
|
||||||
|
Users ->
|
||||||
|
Set = lists:keysort(1, Users),
|
||||||
|
L = length(Set),
|
||||||
|
Start = if Offset < 1 -> 1;
|
||||||
|
Offset > L -> L;
|
||||||
|
true -> Offset
|
||||||
|
end,
|
||||||
|
lists:sublist(Set, Start, Limit)
|
||||||
|
end;
|
||||||
|
|
||||||
|
get_vh_registered_users(Server, _) ->
|
||||||
|
get_vh_registered_users(Server).
|
||||||
|
|
||||||
|
get_vh_registered_users_number(Server) ->
|
||||||
|
Set = get_vh_registered_users(Server),
|
||||||
|
length(Set).
|
||||||
|
|
||||||
|
get_vh_registered_users_number(Server, [{prefix, Prefix}]) when is_list(Prefix) ->
|
||||||
|
Set = [{U, S} || {U, S} <- get_vh_registered_users(Server), lists:prefix(Prefix, U)],
|
||||||
|
length(Set);
|
||||||
|
|
||||||
|
get_vh_registered_users_number(Server, _) ->
|
||||||
|
get_vh_registered_users_number(Server).
|
||||||
|
|
||||||
get_password(User, Server) ->
|
get_password(User, Server) ->
|
||||||
LUser = jlib:nodeprep(User),
|
LUser = jlib:nodeprep(User),
|
||||||
LServer = jlib:nameprep(Server),
|
LServer = jlib:nameprep(Server),
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
try_register/3,
|
try_register/3,
|
||||||
dirty_get_registered_users/0,
|
dirty_get_registered_users/0,
|
||||||
get_vh_registered_users/1,
|
get_vh_registered_users/1,
|
||||||
get_vh_registered_users/2,
|
get_vh_registered_users/2,
|
||||||
get_vh_registered_users_number/1,
|
get_vh_registered_users_number/1,
|
||||||
get_vh_registered_users_number/2,
|
get_vh_registered_users_number/2,
|
||||||
get_password/2,
|
get_password/2,
|
||||||
get_password_s/2,
|
get_password_s/2,
|
||||||
is_user_exists/2,
|
is_user_exists/2,
|
||||||
|
Loading…
Reference in New Issue
Block a user