refactor(authz): unifined function names and var names

This commit is contained in:
JimMoen 2022-03-21 19:02:19 +08:00
parent e659748153
commit 843e12ad16
1 changed files with 47 additions and 49 deletions

View File

@ -125,78 +125,76 @@ update({?CMD_DELETE, Type}, Sources) ->
update(Cmd, Sources) -> update(Cmd, Sources) ->
emqx_authz_utils:update_config(?CONF_KEY_PATH, {Cmd, Sources}). emqx_authz_utils:update_config(?CONF_KEY_PATH, {Cmd, Sources}).
do_update({?CMD_MOVE, Type, ?CMD_MOVE_FRONT}, Conf) when is_list(Conf) -> pre_config_update(_, Cmd, Sources) ->
{Source, Front, Rear} = take(Type, Conf), {ok, do_pre_config_update(Cmd, Sources)}.
do_pre_config_update({?CMD_MOVE, Type, ?CMD_MOVE_FRONT}, Sources) ->
{Source, Front, Rear} = take(Type, Sources),
[Source | Front] ++ Rear; [Source | Front] ++ Rear;
do_update({?CMD_MOVE, Type, ?CMD_MOVE_REAR}, Conf) when is_list(Conf) -> do_pre_config_update({?CMD_MOVE, Type, ?CMD_MOVE_REAR}, Sources) ->
{Source, Front, Rear} = take(Type, Conf), {Source, Front, Rear} = take(Type, Sources),
Front ++ Rear ++ [Source]; Front ++ Rear ++ [Source];
do_update({?CMD_MOVE, Type, ?CMD_MOVE_BEFORE(Before)}, Conf) when is_list(Conf) -> do_pre_config_update({?CMD_MOVE, Type, ?CMD_MOVE_BEFORE(Before)}, Sources) ->
{S1, Front1, Rear1} = take(Type, Conf), {S1, Front1, Rear1} = take(Type, Sources),
{S2, Front2, Rear2} = take(Before, Front1 ++ Rear1), {S2, Front2, Rear2} = take(Before, Front1 ++ Rear1),
Front2 ++ [S1, S2] ++ Rear2; Front2 ++ [S1, S2] ++ Rear2;
do_update({?CMD_MOVE, Type, ?CMD_MOVE_AFTER(After)}, Conf) when is_list(Conf) -> do_pre_config_update({?CMD_MOVE, Type, ?CMD_MOVE_AFTER(After)}, Sources) ->
{S1, Front1, Rear1} = take(Type, Conf), {S1, Front1, Rear1} = take(Type, Sources),
{S2, Front2, Rear2} = take(After, Front1 ++ Rear1), {S2, Front2, Rear2} = take(After, Front1 ++ Rear1),
Front2 ++ [S2, S1] ++ Rear2; Front2 ++ [S2, S1] ++ Rear2;
do_update({?CMD_PREPEND, Sources}, Conf) when is_list(Sources), is_list(Conf) -> do_pre_config_update({?CMD_PREPEND, NewSources}, Sources) ->
NConf = Sources ++ Conf, NSources = NewSources ++ Sources,
ok = check_dup_types(NConf), ok = check_dup_types(NSources),
NConf; NSources;
do_update({?CMD_APPEND, Sources}, Conf) when is_list(Sources), is_list(Conf) -> do_pre_config_update({?CMD_APPEND, NewSources}, Sources) ->
NConf = Conf ++ Sources, NSources = Sources ++ NewSources,
ok = check_dup_types(NConf), ok = check_dup_types(NSources),
NConf; NSources;
do_update({{?CMD_REPLACE, Type}, #{<<"enable">> := Enable} = Source}, Conf) do_pre_config_update({{?CMD_REPLACE, Type}, #{<<"enable">> := Enable} = Source}, Sources)
when is_map(Source), is_list(Conf), ?IS_ENABLED(Enable) -> when ?IS_ENABLED(Enable) ->
case create_dry_run(Type, Source) of case create_dry_run(Type, Source) of
ok -> ok ->
{_Old, Front, Rear} = take(Type, Conf), {_Old, Front, Rear} = take(Type, Sources),
NConf = Front ++ [Source | Rear], NSources = Front ++ [Source | Rear],
ok = check_dup_types(NConf), ok = check_dup_types(NSources),
NConf; NSources;
{error, _} = Error -> Error {error, _} = Error -> Error
end; end;
do_update({{?CMD_REPLACE, Type}, Source}, Conf) do_pre_config_update({{?CMD_REPLACE, Type}, Source}, Sources) ->
when is_map(Source), is_list(Conf) -> {_Old, Front, Rear} = take(Type, Sources),
{_Old, Front, Rear} = take(Type, Conf), NSources = Front ++ [Source | Rear],
NConf = Front ++ [Source | Rear], ok = check_dup_types(NSources),
ok = check_dup_types(NConf), NSources;
NConf; do_pre_config_update({{?CMD_DELETE, Type}, _Source}, Sources) ->
do_update({{?CMD_DELETE, Type}, _Source}, Conf) when is_list(Conf) -> {_Old, Front, Rear} = take(Type, Sources),
{_Old, Front, Rear} = take(Type, Conf), NSources = Front ++ Rear,
NConf = Front ++ Rear, NSources;
NConf; do_pre_config_update({?CMD_REPLACE, Sources}, _OldSources) ->
do_update({_, Sources}, _Conf) when is_list(Sources)->
%% overwrite the entire config! %% overwrite the entire config!
Sources; Sources;
do_update({Op, Sources}, Conf) -> do_pre_config_update({Op, Source}, Sources) ->
error({bad_request, #{op => Op, sources => Sources, conf => Conf}}). error({bad_request, #{op => Op, source => Source, sources => Sources}}).
pre_config_update(_, Cmd, Conf) -> post_config_update(_, _, undefined, _OldSource, _AppEnvs) ->
{ok, do_update(Cmd, Conf)}.
post_config_update(_, _, undefined, _Conf, _AppEnvs) ->
ok; ok;
post_config_update(_, Cmd, NewSources, _OldSource, _AppEnvs) -> post_config_update(_, Cmd, NewSources, _OldSource, _AppEnvs) ->
ok = do_post_update(Cmd, NewSources), ok = do_post_config_update(Cmd, NewSources),
ok = emqx_authz_cache:drain_cache(). ok = emqx_authz_cache:drain_cache().
do_post_update({?CMD_MOVE, _Type, _Where} = Cmd, _NewSources) -> do_post_config_update({?CMD_MOVE, _Type, _Where} = Cmd, _NewSources) ->
InitedSources = lookup(), InitedSources = lookup(),
MovedSources = do_update(Cmd, InitedSources), MovedSources = do_pre_config_update(Cmd, InitedSources),
ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [MovedSources]}, -1), ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [MovedSources]}, -1),
ok = emqx_authz_cache:drain_cache(); ok = emqx_authz_cache:drain_cache();
do_post_update({?CMD_PREPEND, Sources}, _NewSources) -> do_post_config_update({?CMD_PREPEND, Sources}, _NewSources) ->
InitedSources = init_sources(check_sources(Sources)), InitedSources = init_sources(check_sources(Sources)),
ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [InitedSources ++ lookup()]}, -1), ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [InitedSources ++ lookup()]}, -1),
ok = emqx_authz_cache:drain_cache(); ok = emqx_authz_cache:drain_cache();
do_post_update({?CMD_APPEND, Sources}, _NewSources) -> do_post_config_update({?CMD_APPEND, Sources}, _NewSources) ->
InitedSources = init_sources(check_sources(Sources)), InitedSources = init_sources(check_sources(Sources)),
emqx_hooks:put('client.authorize', {?MODULE, authorize, [lookup() ++ InitedSources]}, -1), emqx_hooks:put('client.authorize', {?MODULE, authorize, [lookup() ++ InitedSources]}, -1),
ok = emqx_authz_cache:drain_cache(); ok = emqx_authz_cache:drain_cache();
do_post_update({{?CMD_REPLACE, Type}, Source}, _NewSources) when is_map(Source) -> do_post_config_update({{?CMD_REPLACE, Type}, Source}, _NewSources) when is_map(Source) ->
OldInitedSources = lookup(), OldInitedSources = lookup(),
{OldSource, Front, Rear} = take(Type, OldInitedSources), {OldSource, Front, Rear} = take(Type, OldInitedSources),
ok = ensure_resource_deleted(OldSource), ok = ensure_resource_deleted(OldSource),
@ -204,13 +202,13 @@ do_post_update({{?CMD_REPLACE, Type}, Source}, _NewSources) when is_map(Source)
ok = emqx_hooks:put( 'client.authorize' ok = emqx_hooks:put( 'client.authorize'
, {?MODULE, authorize, [Front ++ InitedSources ++ Rear]}, -1), , {?MODULE, authorize, [Front ++ InitedSources ++ Rear]}, -1),
ok = emqx_authz_cache:drain_cache(); ok = emqx_authz_cache:drain_cache();
do_post_update({{?CMD_DELETE, Type}, _Source}, _NewSources) -> do_post_config_update({{?CMD_DELETE, Type}, _Source}, _NewSources) ->
OldInitedSources = lookup(), OldInitedSources = lookup(),
{OldSource, Front, Rear} = take(Type, OldInitedSources), {OldSource, Front, Rear} = take(Type, OldInitedSources),
ok = ensure_resource_deleted(OldSource), ok = ensure_resource_deleted(OldSource),
ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [Front ++ Rear]}, -1), ok = emqx_hooks:put('client.authorize', {?MODULE, authorize, [Front ++ Rear]}, -1),
ok = emqx_authz_cache:drain_cache(); ok = emqx_authz_cache:drain_cache();
do_post_update({?CMD_REPLACE, Sources}, _NewSources) -> do_post_config_update({?CMD_REPLACE, Sources}, _NewSources) ->
%% overwrite the entire config! %% overwrite the entire config!
OldInitedSources = lookup(), OldInitedSources = lookup(),
InitedSources = init_sources(check_sources(Sources)), InitedSources = init_sources(check_sources(Sources)),