diff options
Diffstat (limited to 'ident/ident.h')
-rw-r--r-- | ident/ident.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ident/ident.h b/ident/ident.h new file mode 100644 index 0000000..313926c --- /dev/null +++ b/ident/ident.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* This file is part of GNU Pies. | ||
2 | Copyright (C) 2015 Sergey Poznyakoff | ||
3 | |||
4 | GNU Pies is free software; you can redistribute it and/or modify | ||
5 | it under the terms of the GNU General Public License as published by | ||
6 | the Free Software Foundation; either version 3, or (at your option) | ||
7 | any later version. | ||
8 | |||
9 | GNU Pies is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU General Public License | ||
15 | along with GNU Pies. If not, see <http://www.gnu.org/licenses/>. */ | ||
16 | |||
17 | #include <config.h> | ||
18 | #include "xalloc.h" | ||
19 | #include "libpies.h" | ||
20 | #include "grecs.h" | ||
21 | #include "identity.h" | ||
22 | |||
23 | struct pies_identity | ||
24 | { | ||
25 | pies_identity_provider_t provider; | ||
26 | char *username; | ||
27 | void *data; | ||
28 | }; | ||
29 | |||
30 | struct pies_identity_mechanism | ||
31 | { | ||
32 | char const *name; | ||
33 | int (*authenticate) (pies_identity_provider_t p, | ||
34 | pies_identity_t id, char const *passwd); | ||
35 | int (*is_group_member) (pies_identity_provider_t p, | ||
36 | pies_identity_t id, char * const * groups); | ||
37 | void (*destroy_identity) (pies_identity_provider_t p, | ||
38 | pies_identity_t id); | ||
39 | int (*configure)(struct grecs_node *, pies_identity_provider_t); | ||
40 | void (*confhelp) (void); | ||
41 | }; | ||
42 | |||
43 | struct pies_identity_provider | ||
44 | { | ||
45 | char *name; | ||
46 | pies_identity_mechanism_t mech; | ||
47 | struct grecs_locus locus; | ||
48 | void *data; | ||
49 | }; | ||
50 | |||
51 | |||