1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 
3 #ifndef _ORG_MGR_H_
4 #define _ORG_MGR_H_
5 
6 typedef struct _SeafileSession SeafileSession;
7 typedef struct _CcnetOrgManager CcnetOrgManager;
8 typedef struct _CcnetOrgManagerPriv CcnetOrgManagerPriv;
9 
10 struct _CcnetOrgManager
11 {
12     SeafileSession	*session;
13 
14     CcnetOrgManagerPriv	*priv;
15 };
16 
17 CcnetOrgManager* ccnet_org_manager_new (SeafileSession *session);
18 
19 int
20 ccnet_org_manager_prepare (CcnetOrgManager *manager);
21 
22 void
23 ccnet_org_manager_start (CcnetOrgManager *manager);
24 
25 int
26 ccnet_org_manager_create_org (CcnetOrgManager *mgr,
27                               const char *org_name,
28                               const char *url_prefix,
29                               const char *creator,
30                               GError **error);
31 
32 int
33 ccnet_org_manager_remove_org (CcnetOrgManager *mgr,
34                               int org_id,
35                               GError **error);
36 
37 GList *
38 ccnet_org_manager_get_all_orgs (CcnetOrgManager *mgr,
39                                 int start,
40                                 int limit);
41 
42 int
43 ccnet_org_manager_count_orgs (CcnetOrgManager *mgr);
44 
45 CcnetOrganization *
46 ccnet_org_manager_get_org_by_url_prefix (CcnetOrgManager *mgr,
47                                          const char *url_prefix,
48                                          GError **error);
49 
50 CcnetOrganization *
51 ccnet_org_manager_get_org_by_id (CcnetOrgManager *mgr,
52                                  int org_id,
53                                  GError **error);
54 
55 int
56 ccnet_org_manager_add_org_user (CcnetOrgManager *mgr,
57                                 int org_id,
58                                 const char *email,
59                                 int is_staff,
60                                 GError **error);
61 
62 int
63 ccnet_org_manager_remove_org_user (CcnetOrgManager *mgr,
64                                    int org_id,
65                                    const char *email,
66                                    GError **error);
67 
68 GList *
69 ccnet_org_manager_get_orgs_by_user (CcnetOrgManager *mgr,
70                                    const char *email,
71                                    GError **error);
72 
73 GList *
74 ccnet_org_manager_get_org_emailusers (CcnetOrgManager *mgr,
75                                       const char *url_prefix,
76                                       int start, int limit);
77 
78 int
79 ccnet_org_manager_add_org_group (CcnetOrgManager *mgr,
80                                  int org_id,
81                                  int group_id,
82                                  GError **error);
83 int
84 ccnet_org_manager_remove_org_group (CcnetOrgManager *mgr,
85                                     int org_id,
86                                     int group_id,
87                                     GError **error);
88 
89 int
90 ccnet_org_manager_is_org_group (CcnetOrgManager *mgr,
91                                 int group_id,
92                                 GError **error);
93 
94 int
95 ccnet_org_manager_get_org_id_by_group (CcnetOrgManager *mgr,
96                                        int group_id,
97                                        GError **error);
98 
99 GList *
100 ccnet_org_manager_get_org_group_ids (CcnetOrgManager *mgr,
101                                      int org_id,
102                                      int start,
103                                      int limit);
104 
105 GList *
106 ccnet_org_manager_get_org_groups (CcnetOrgManager *mgr,
107                                   int org_id,
108                                   int start,
109                                   int limit);
110 
111 GList *
112 ccnet_org_manager_get_org_groups_by_user (CcnetOrgManager *mgr,
113                                           const char *user,
114                                           int org_id);
115 
116 GList *
117 ccnet_org_manager_get_org_top_groups (CcnetOrgManager *mgr, int org_id, GError **error);
118 
119 int
120 ccnet_org_manager_org_user_exists (CcnetOrgManager *mgr,
121                                    int org_id,
122                                    const char *email,
123                                    GError **error);
124 
125 char *
126 ccnet_org_manager_get_url_prefix_by_org_id (CcnetOrgManager *mgr,
127                                             int org_id,
128                                             GError **error);
129 
130 int
131 ccnet_org_manager_is_org_staff (CcnetOrgManager *mgr,
132                                 int org_id,
133                                 const char *email,
134                                 GError **error);
135 
136 int
137 ccnet_org_manager_set_org_staff (CcnetOrgManager *mgr,
138                                  int org_id,
139                                  const char *email,
140                                  GError **error);
141 
142 int
143 ccnet_org_manager_unset_org_staff (CcnetOrgManager *mgr,
144                                    int org_id,
145                                    const char *email,
146                                    GError **error);
147 
148 int
149 ccnet_org_manager_set_org_name(CcnetOrgManager *mgr,
150                                int org_id,
151                                const char *org_name,
152                                GError **error);
153 
154 
155 #endif /* _ORG_MGR_H_ */
156