Sun, 28 Apr 2013 02:26:38 +0200
keyring.c refactoring - order up function implementations
| 6371 | 1 | /** |
| 15884 | 2 | * purple |
| 6371 | 3 | * |
| 15884 | 4 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 6 | * source distribution. | |
|
8007
511119d4c2cd
[gaim-migrate @ 8685]
Christian Hammond <chipx86@chipx86.com>
parents:
7581
diff
changeset
|
7 | * |
| 6371 | 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by | |
| 10 | * the Free Software Foundation; either version 2 of the License, or | |
| 11 | * (at your option) any later version. | |
| 12 | * | |
| 13 | * This program is distributed in the hope that it will be useful, | |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 16 | * GNU General Public License for more details. | |
| 17 | * | |
| 18 | * You should have received a copy of the GNU General Public License | |
| 19 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16863
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 6371 | 21 | */ |
| 22 | #include "internal.h" | |
| 23 | ||
| 24 | #include "account.h" | |
| 25 | #include "privacy.h" | |
| 26 | #include "server.h" | |
| 27 | #include "util.h" | |
| 28 | ||
| 15884 | 29 | static PurplePrivacyUiOps *privacy_ops = NULL; |
| 6371 | 30 | |
| 31 | gboolean | |
| 15884 | 32 | purple_privacy_permit_add(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
33 | gboolean local_only) |
| 6371 | 34 | { |
| 35 | GSList *l; | |
| 36 | char *name; | |
| 15884 | 37 | PurpleBuddy *buddy; |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
38 | PurpleBlistUiOps *blist_ops; |
| 6371 | 39 | |
| 40 | g_return_val_if_fail(account != NULL, FALSE); | |
| 41 | g_return_val_if_fail(who != NULL, FALSE); | |
| 42 | ||
| 15884 | 43 | name = g_strdup(purple_normalize(account, who)); |
| 6371 | 44 | |
| 45 | for (l = account->permit; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
46 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
47 | /* This buddy already exists */ |
| 6371 | 48 | break; |
| 49 | } | |
| 50 | ||
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14274
diff
changeset
|
51 | if (l != NULL) |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
52 | { |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
53 | /* This buddy already exists, so bail out */ |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
54 | g_free(name); |
|
14669
df3f48ab4aff
[gaim-migrate @ 17335]
Mark Doliner <markdoliner@pidgin.im>
parents:
14274
diff
changeset
|
55 | return FALSE; |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
56 | } |
| 6371 | 57 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
58 | account->permit = g_slist_append(account->permit, name); |
| 6371 | 59 | |
| 15884 | 60 | if (!local_only && purple_account_is_connected(account)) |
| 61 | serv_add_permit(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
62 | |
| 6371 | 63 | if (privacy_ops != NULL && privacy_ops->permit_added != NULL) |
| 64 | privacy_ops->permit_added(account, who); | |
| 65 | ||
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
66 | blist_ops = purple_blist_get_ui_ops(); |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
67 | if (blist_ops != NULL && blist_ops->save_account != NULL) |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
68 | blist_ops->save_account(account); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
69 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
70 | /* This lets the UI know a buddy has had its privacy setting changed */ |
| 15884 | 71 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
72 | if (buddy != NULL) { |
| 15884 | 73 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
74 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
75 | } |
| 6371 | 76 | return TRUE; |
| 77 | } | |
| 78 | ||
| 79 | gboolean | |
| 15884 | 80 | purple_privacy_permit_remove(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
81 | gboolean local_only) |
| 6371 | 82 | { |
| 83 | GSList *l; | |
|
14274
bd4a14747e07
[gaim-migrate @ 16893]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
84 | const char *name; |
| 15884 | 85 | PurpleBuddy *buddy; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
86 | char *del; |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
87 | PurpleBlistUiOps *blist_ops; |
| 6371 | 88 | |
| 89 | g_return_val_if_fail(account != NULL, FALSE); | |
| 90 | g_return_val_if_fail(who != NULL, FALSE); | |
| 91 | ||
| 15884 | 92 | name = purple_normalize(account, who); |
| 6371 | 93 | |
| 94 | for (l = account->permit; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
95 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
96 | /* We found the buddy we were looking for */ |
| 6371 | 97 | break; |
| 98 | } | |
| 99 | ||
| 100 | if (l == NULL) | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
101 | /* We didn't find the buddy we were looking for, so bail out */ |
| 6371 | 102 | return FALSE; |
| 103 | ||
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
104 | /* We should not free l->data just yet. There can be occasions where |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
105 | * l->data == who. In such cases, freeing l->data here can cause crashes |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
106 | * later when who is used. */ |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
107 | del = l->data; |
|
11719
2d62fa2e2d76
[gaim-migrate @ 14010]
Michael Carlson <corfe83@users.sourceforge.net>
parents:
11111
diff
changeset
|
108 | account->permit = g_slist_delete_link(account->permit, l); |
| 6371 | 109 | |
| 15884 | 110 | if (!local_only && purple_account_is_connected(account)) |
| 111 | serv_rem_permit(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
112 | |
| 6371 | 113 | if (privacy_ops != NULL && privacy_ops->permit_removed != NULL) |
| 114 | privacy_ops->permit_removed(account, who); | |
| 115 | ||
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
116 | blist_ops = purple_blist_get_ui_ops(); |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
117 | if (blist_ops != NULL && blist_ops->save_account != NULL) |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
118 | blist_ops->save_account(account); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
119 | |
| 15884 | 120 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
121 | if (buddy != NULL) { |
| 15884 | 122 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
123 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
124 | } |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
125 | g_free(del); |
| 6371 | 126 | return TRUE; |
| 127 | } | |
| 128 | ||
| 129 | gboolean | |
| 15884 | 130 | purple_privacy_deny_add(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
131 | gboolean local_only) |
| 6371 | 132 | { |
| 133 | GSList *l; | |
| 134 | char *name; | |
| 15884 | 135 | PurpleBuddy *buddy; |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
136 | PurpleBlistUiOps *blist_ops; |
| 6371 | 137 | |
| 138 | g_return_val_if_fail(account != NULL, FALSE); | |
| 139 | g_return_val_if_fail(who != NULL, FALSE); | |
| 140 | ||
| 15884 | 141 | name = g_strdup(purple_normalize(account, who)); |
| 6371 | 142 | |
| 143 | for (l = account->deny; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
144 | if (g_str_equal(name, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
145 | /* This buddy already exists */ |
| 6371 | 146 | break; |
| 147 | } | |
| 148 | ||
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
149 | if (l != NULL) |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
150 | { |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
151 | /* This buddy already exists, so bail out */ |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
152 | g_free(name); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
153 | return FALSE; |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
154 | } |
| 6371 | 155 | |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
156 | account->deny = g_slist_append(account->deny, name); |
| 6371 | 157 | |
| 15884 | 158 | if (!local_only && purple_account_is_connected(account)) |
| 159 | serv_add_deny(purple_account_get_connection(account), who); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
160 | |
| 6371 | 161 | if (privacy_ops != NULL && privacy_ops->deny_added != NULL) |
| 162 | privacy_ops->deny_added(account, who); | |
| 163 | ||
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
164 | blist_ops = purple_blist_get_ui_ops(); |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
165 | if (blist_ops != NULL && blist_ops->save_account != NULL) |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
166 | blist_ops->save_account(account); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
167 | |
| 15884 | 168 | buddy = purple_find_buddy(account, name); |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
169 | if (buddy != NULL) { |
| 15884 | 170 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
171 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
172 | } |
| 6371 | 173 | return TRUE; |
| 174 | } | |
| 175 | ||
| 176 | gboolean | |
| 15884 | 177 | purple_privacy_deny_remove(PurpleAccount *account, const char *who, |
|
6378
233d1294508f
[gaim-migrate @ 6883]
Christian Hammond <chipx86@chipx86.com>
parents:
6375
diff
changeset
|
178 | gboolean local_only) |
| 6371 | 179 | { |
| 180 | GSList *l; | |
|
14274
bd4a14747e07
[gaim-migrate @ 16893]
Mark Doliner <markdoliner@pidgin.im>
parents:
14254
diff
changeset
|
181 | const char *normalized; |
| 6371 | 182 | char *name; |
| 15884 | 183 | PurpleBuddy *buddy; |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
184 | PurpleBlistUiOps *blist_ops; |
| 6371 | 185 | |
| 186 | g_return_val_if_fail(account != NULL, FALSE); | |
| 187 | g_return_val_if_fail(who != NULL, FALSE); | |
| 188 | ||
| 15884 | 189 | normalized = purple_normalize(account, who); |
| 6371 | 190 | |
| 191 | for (l = account->deny; l != NULL; l = l->next) { | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
192 | if (g_str_equal(normalized, l->data)) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
193 | /* We found the buddy we were looking for */ |
| 6371 | 194 | break; |
| 195 | } | |
| 196 | ||
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
197 | if (l == NULL) |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
198 | /* We didn't find the buddy we were looking for, so bail out */ |
|
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
199 | return FALSE; |
| 6371 | 200 | |
|
25581
3f48174d3df7
It's wrong, unnecessary, and expensive to use purple_utf8_strcasecmp() here.
Mark Doliner <markdoliner@pidgin.im>
parents:
23417
diff
changeset
|
201 | buddy = purple_find_buddy(account, normalized); |
| 6371 | 202 | |
|
13150
325c25e2c31d
[gaim-migrate @ 15512]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11719
diff
changeset
|
203 | name = l->data; |
|
11719
2d62fa2e2d76
[gaim-migrate @ 14010]
Michael Carlson <corfe83@users.sourceforge.net>
parents:
11111
diff
changeset
|
204 | account->deny = g_slist_delete_link(account->deny, l); |
| 6371 | 205 | |
| 15884 | 206 | if (!local_only && purple_account_is_connected(account)) |
| 207 | serv_rem_deny(purple_account_get_connection(account), name); | |
|
6373
919566d5cc80
[gaim-migrate @ 6878]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
208 | |
| 6371 | 209 | if (privacy_ops != NULL && privacy_ops->deny_removed != NULL) |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
210 | privacy_ops->deny_removed(account, who); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
211 | |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
212 | if (buddy != NULL) { |
| 15884 | 213 | purple_signal_emit(purple_blist_get_handle(), |
|
14200
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
214 | "buddy-privacy-changed", buddy); |
|
799dfae258cf
[gaim-migrate @ 16780]
Aaron Sheldon <aaronsheldon@users.sourceforge.net>
parents:
13150
diff
changeset
|
215 | } |
| 6371 | 216 | |
|
13150
325c25e2c31d
[gaim-migrate @ 15512]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11719
diff
changeset
|
217 | g_free(name); |
|
27969
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
218 | |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
219 | blist_ops = purple_blist_get_ui_ops(); |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
220 | if (blist_ops != NULL && blist_ops->save_account != NULL) |
|
ed5bf3c3e328
Add blist ui-ops to overload the saving of data to blist.xml. Closes #9630.
Jan Kaluza <hanzz.k@gmail.com>
parents:
25911
diff
changeset
|
221 | blist_ops->save_account(account); |
|
10704
99a466f384d2
[gaim-migrate @ 12288]
Mark Doliner <markdoliner@pidgin.im>
parents:
9741
diff
changeset
|
222 | |
| 6371 | 223 | return TRUE; |
| 224 | } | |
| 225 | ||
|
22365
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
226 | /** |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
227 | * This makes sure your permit list contains all buddies from your |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
228 | * buddy list and ONLY buddies from your buddy list. |
|
7be96d358b45
Update a comment. I think it was missing a word or three.
Mark Doliner <markdoliner@pidgin.im>
parents:
19859
diff
changeset
|
229 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
230 | static void |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
231 | add_all_buddies_to_permit_list(PurpleAccount *account, gboolean local) |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
232 | { |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
233 | GSList *list; |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
234 | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
235 | /* Remove anyone in the permit list who is not in the buddylist */ |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
236 | for (list = account->permit; list != NULL; ) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
237 | char *person = list->data; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
238 | list = list->next; |
| 15884 | 239 | if (!purple_find_buddy(account, person)) |
| 240 | purple_privacy_permit_remove(account, person, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
241 | } |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
242 | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
243 | /* Now make sure everyone in the buddylist is in the permit list */ |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
244 | list = purple_find_buddies(account, NULL); |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
245 | while (list != NULL) |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
246 | { |
|
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
247 | PurpleBuddy *buddy = list->data; |
|
24955
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
248 | const gchar *name = purple_buddy_get_name(buddy); |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
249 | |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
250 | if (!g_slist_find_custom(account->permit, name, (GCompareFunc)g_utf8_collate)) |
|
77727fac30c6
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
23417
diff
changeset
|
251 | purple_privacy_permit_add(account, name, local); |
|
16863
b98303c15033
Change a few functions to free a linked list while iterating through
Mark Doliner <markdoliner@pidgin.im>
parents:
15884
diff
changeset
|
252 | list = g_slist_delete_link(list, list); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
253 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
254 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
255 | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
256 | /* |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
257 | * TODO: All callers of this function pass in FALSE for local and |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
258 | * restore and I don't understand when you would ever want to |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
259 | * use TRUE for either of them. I think both parameters could |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
260 | * safely be removed in the next major version bump. |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
261 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
262 | void |
| 15884 | 263 | purple_privacy_allow(PurpleAccount *account, const char *who, gboolean local, |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
264 | gboolean restore) |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
265 | { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
266 | GSList *list; |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
267 | PurplePrivacyType type = purple_account_get_privacy_type(account); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
268 | |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
269 | switch (type) { |
| 15884 | 270 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
271 | return; |
| 15884 | 272 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 273 | purple_privacy_permit_add(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
274 | break; |
| 15884 | 275 | case PURPLE_PRIVACY_DENY_USERS: |
| 276 | purple_privacy_deny_remove(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
277 | break; |
| 15884 | 278 | case PURPLE_PRIVACY_DENY_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
279 | if (!restore) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
280 | /* Empty the allow-list. */ |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
281 | const char *norm = purple_normalize(account, who); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
282 | for (list = account->permit; list != NULL;) { |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
283 | char *person = list->data; |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
284 | list = list->next; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
285 | if (!purple_strequal(norm, person)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
286 | purple_privacy_permit_remove(account, person, local); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
287 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
288 | } |
| 15884 | 289 | purple_privacy_permit_add(account, who, local); |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
290 | purple_account_set_privacy_type(account, PURPLE_PRIVACY_ALLOW_USERS); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
291 | break; |
| 15884 | 292 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 293 | if (!purple_find_buddy(account, who)) { | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
294 | add_all_buddies_to_permit_list(account, local); |
| 15884 | 295 | purple_privacy_permit_add(account, who, local); |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
296 | purple_account_set_privacy_type(account, PURPLE_PRIVACY_ALLOW_USERS); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
297 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
298 | break; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
299 | default: |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
300 | g_return_if_reached(); |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
301 | } |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
302 | |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
303 | /* Notify the server if the privacy setting was changed */ |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
304 | if (type != purple_account_get_privacy_type(account) && purple_account_is_connected(account)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
305 | serv_set_permit_deny(purple_account_get_connection(account)); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
306 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
307 | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
308 | /* |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
309 | * TODO: All callers of this function pass in FALSE for local and |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
310 | * restore and I don't understand when you would ever want to |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
311 | * use TRUE for either of them. I think both parameters could |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
312 | * safely be removed in the next major version bump. |
|
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
313 | */ |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
314 | void |
| 15884 | 315 | purple_privacy_deny(PurpleAccount *account, const char *who, gboolean local, |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
316 | gboolean restore) |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
317 | { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
318 | GSList *list; |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
319 | PurplePrivacyType type = purple_account_get_privacy_type(account); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
320 | |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
321 | switch (type) { |
| 15884 | 322 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
323 | if (!restore) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
324 | /* Empty the deny-list. */ |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
325 | const char *norm = purple_normalize(account, who); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
326 | for (list = account->deny; list != NULL; ) { |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
327 | char *person = list->data; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
328 | list = list->next; |
|
25859
b42be7bb9dac
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <darkrain42@pidgin.im>
parents:
24955
diff
changeset
|
329 | if (!purple_strequal(norm, person)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
330 | purple_privacy_deny_remove(account, person, local); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
331 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
332 | } |
| 15884 | 333 | purple_privacy_deny_add(account, who, local); |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
334 | purple_account_set_privacy_type(account, PURPLE_PRIVACY_DENY_USERS); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
335 | break; |
| 15884 | 336 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 337 | purple_privacy_permit_remove(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
338 | break; |
| 15884 | 339 | case PURPLE_PRIVACY_DENY_USERS: |
| 340 | purple_privacy_deny_add(account, who, local); | |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
341 | break; |
| 15884 | 342 | case PURPLE_PRIVACY_DENY_ALL: |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
343 | break; |
| 15884 | 344 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 345 | if (purple_find_buddy(account, who)) { | |
|
22374
62e0de94bbf1
Rename 'add_buddies_in_permit' to 'add_all_buddies_to_permit_list'
Mark Doliner <markdoliner@pidgin.im>
parents:
22365
diff
changeset
|
346 | add_all_buddies_to_permit_list(account, local); |
| 15884 | 347 | purple_privacy_permit_remove(account, who, local); |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
348 | purple_account_set_privacy_type(account, PURPLE_PRIVACY_ALLOW_USERS); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
349 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
350 | break; |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
351 | default: |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
352 | g_return_if_reached(); |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
353 | } |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
354 | |
|
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
355 | /* Notify the server if the privacy setting was changed */ |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
356 | if (type != purple_account_get_privacy_type(account) && purple_account_is_connected(account)) |
|
23417
70cd82888308
Notify the server when we change the privacy setting for an account.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22374
diff
changeset
|
357 | serv_set_permit_deny(purple_account_get_connection(account)); |
|
15380
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
358 | } |
|
1171796358b3
[gaim-migrate @ 18109]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14669
diff
changeset
|
359 | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
360 | gboolean |
| 15884 | 361 | purple_privacy_check(PurpleAccount *account, const char *who) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
362 | { |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
363 | GSList *list; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
364 | |
|
32438
dc8991868906
A boring and large patch so I can merge heads.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
27969
diff
changeset
|
365 | switch (purple_account_get_privacy_type(account)) { |
| 15884 | 366 | case PURPLE_PRIVACY_ALLOW_ALL: |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
367 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
368 | |
| 15884 | 369 | case PURPLE_PRIVACY_DENY_ALL: |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
370 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
371 | |
| 15884 | 372 | case PURPLE_PRIVACY_ALLOW_USERS: |
| 373 | who = purple_normalize(account, who); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
374 | for (list=account->permit; list!=NULL; list=list->next) { |
|
25582
997ba674e64b
Change two more uses of purple_utf8_strcasecmp to g_str_equal
Mark Doliner <markdoliner@pidgin.im>
parents:
25581
diff
changeset
|
375 | if (g_str_equal(who, list->data)) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
376 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
377 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
378 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
379 | |
| 15884 | 380 | case PURPLE_PRIVACY_DENY_USERS: |
| 381 | who = purple_normalize(account, who); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
382 | for (list=account->deny; list!=NULL; list=list->next) { |
|
25582
997ba674e64b
Change two more uses of purple_utf8_strcasecmp to g_str_equal
Mark Doliner <markdoliner@pidgin.im>
parents:
25581
diff
changeset
|
383 | if (g_str_equal(who, list->data)) |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
384 | return FALSE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
385 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
386 | return TRUE; |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
387 | |
| 15884 | 388 | case PURPLE_PRIVACY_ALLOW_BUDDYLIST: |
| 389 | return (purple_find_buddy(account, who) != NULL); | |
|
11111
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
390 | |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
391 | default: |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
392 | g_return_val_if_reached(TRUE); |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
393 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
394 | } |
|
4621d9b973a4
[gaim-migrate @ 13163]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
10704
diff
changeset
|
395 | |
| 6371 | 396 | void |
| 15884 | 397 | purple_privacy_set_ui_ops(PurplePrivacyUiOps *ops) |
| 6371 | 398 | { |
| 399 | privacy_ops = ops; | |
| 400 | } | |
| 401 | ||
| 15884 | 402 | PurplePrivacyUiOps * |
| 403 | purple_privacy_get_ui_ops(void) | |
| 6371 | 404 | { |
| 405 | return privacy_ops; | |
| 406 | } | |
| 407 | ||
| 408 | void | |
| 15884 | 409 | purple_privacy_init(void) |
| 6371 | 410 | { |
| 411 | } |