]> granicus.if.org Git - ejabberd/commitdiff
mod_blocking_sql: Handle default list corner case
authorHolger Weiss <holger@zedat.fu-berlin.de>
Wed, 22 Jun 2016 20:36:27 +0000 (22:36 +0200)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Wed, 22 Jun 2016 20:36:27 +0000 (22:36 +0200)
Handle the situation where a list of the name "Blocked contacts" was
created by an XEP-0016 client, but no default list exists.

src/mod_blocking_sql.erl

index fb8380e2c53ae3e14dcf96016943fbb281c7f6db..bffe5bd25f8734bcef943ab3fe90ddf311cfdc9b 100644 (file)
@@ -25,7 +25,12 @@ process_blocklist_block(LUser, LServer, Filter) ->
                Default = case mod_privacy_sql:sql_get_default_privacy_list_t(LUser) of
                              {selected, []} ->
                                  Name = <<"Blocked contacts">>,
-                                 mod_privacy_sql:sql_add_privacy_list(LUser, Name),
+                                 case mod_privacy_sql:sql_get_privacy_list_id_t(LUser, Name) of
+                                     {selected, []} ->
+                                         mod_privacy_sql:sql_add_privacy_list(LUser, Name);
+                                     {selected, [{_ID}]} ->
+                                         ok
+                                 end,
                                  mod_privacy_sql:sql_set_default_privacy_list(LUser, Name),
                                  Name;
                              {selected, [{Name}]} -> Name