1 /*
2  * accounts.h
3  * vim: expandtab:ts=4:sts=4:sw=4
4  *
5  * Copyright (C) 2012 - 2019 James Booth <boothj5@gmail.com>
6  *
7  * This file is part of Profanity.
8  *
9  * Profanity is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * Profanity is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with Profanity.  If not, see <https://www.gnu.org/licenses/>.
21  *
22  * In addition, as a special exception, the copyright holders give permission to
23  * link the code of portions of this program with the OpenSSL library under
24  * certain conditions as described in each individual source file, and
25  * distribute linked combinations including the two.
26  *
27  * You must obey the GNU General Public License in all respects for all of the
28  * code used other than OpenSSL. If you modify file(s) with this exception, you
29  * may extend this exception to your version of the file(s), but you are not
30  * obligated to do so. If you do not wish to do so, delete this exception
31  * statement from your version. If you delete this exception statement from all
32  * source files in the program, then also delete it here.
33  *
34  */
35 
36 #ifndef CONFIG_ACCOUNTS_H
37 #define CONFIG_ACCOUNTS_H
38 
39 #define MAX_PASSWORD_SIZE 64
40 
41 #include "common.h"
42 #include "config/account.h"
43 
44 void accounts_load(void);
45 void accounts_close(void);
46 
47 char* accounts_find_all(const char* const prefix, gboolean previous, void* context);
48 char* accounts_find_enabled(const char* const prefix, gboolean previous, void* context);
49 void accounts_reset_all_search(void);
50 void accounts_reset_enabled_search(void);
51 void accounts_add(const char* jid, const char* altdomain, const int port, const char* const tls_policy, const char* const auth_policy);
52 int accounts_remove(const char* jid);
53 gchar** accounts_get_list(void);
54 ProfAccount* accounts_get_account(const char* const name);
55 gboolean accounts_enable(const char* const name);
56 gboolean accounts_disable(const char* const name);
57 gboolean accounts_rename(const char* const account_name,
58                          const char* const new_name);
59 gboolean accounts_account_exists(const char* const account_name);
60 void accounts_set_jid(const char* const account_name, const char* const value);
61 void accounts_set_server(const char* const account_name, const char* const value);
62 void accounts_set_port(const char* const account_name, const int value);
63 void accounts_set_resource(const char* const account_name, const char* const value);
64 void accounts_set_password(const char* const account_name, const char* const value);
65 void accounts_set_eval_password(const char* const account_name, const char* const value);
66 void accounts_set_muc_service(const char* const account_name, const char* const value);
67 void accounts_set_muc_nick(const char* const account_name, const char* const value);
68 void accounts_set_otr_policy(const char* const account_name, const char* const value);
69 void accounts_set_tls_policy(const char* const account_name, const char* const value);
70 void accounts_set_auth_policy(const char* const account_name, const char* const value);
71 void accounts_set_last_presence(const char* const account_name, const char* const value);
72 void accounts_set_last_status(const char* const account_name, const char* const value);
73 void accounts_set_last_activity(const char* const account_name);
74 char* accounts_get_last_activity(const char* const account_name);
75 void accounts_set_login_presence(const char* const account_name, const char* const value);
76 resource_presence_t accounts_get_login_presence(const char* const account_name);
77 char* accounts_get_last_status(const char* const account_name);
78 resource_presence_t accounts_get_last_presence(const char* const account_name);
79 char* accounts_get_login_status(const char* const account_name);
80 void accounts_set_priority_online(const char* const account_name, const gint value);
81 void accounts_set_priority_chat(const char* const account_name, const gint value);
82 void accounts_set_priority_away(const char* const account_name, const gint value);
83 void accounts_set_priority_xa(const char* const account_name, const gint value);
84 void accounts_set_priority_dnd(const char* const account_name, const gint value);
85 void accounts_set_priority_all(const char* const account_name, const gint value);
86 gint accounts_get_priority_for_presence_type(const char* const account_name,
87                                              resource_presence_t presence_type);
88 void accounts_set_pgp_keyid(const char* const account_name, const char* const value);
89 void accounts_set_script_start(const char* const account_name, const char* const value);
90 void accounts_set_theme(const char* const account_name, const char* const value);
91 void accounts_clear_password(const char* const account_name);
92 void accounts_clear_eval_password(const char* const account_name);
93 void accounts_clear_server(const char* const account_name);
94 void accounts_clear_port(const char* const account_name);
95 void accounts_clear_otr(const char* const account_name);
96 void accounts_clear_pgp_keyid(const char* const account_name);
97 void accounts_clear_script_start(const char* const account_name);
98 void accounts_clear_theme(const char* const account_name);
99 void accounts_clear_muc(const char* const account_name);
100 void accounts_clear_resource(const char* const account_name);
101 void accounts_add_otr_policy(const char* const account_name, const char* const contact_jid, const char* const policy);
102 void accounts_add_omemo_state(const char* const account_name, const char* const contact_jid, gboolean enabled);
103 void accounts_clear_omemo_state(const char* const account_name, const char* const contact_jid);
104 
105 #endif
106