]> git.proxmox.com Git - pmg-api.git/blame - PMG/API2/Who.pm
fix bug #2035 cluster sync issues with ipv6
[pmg-api.git] / PMG / API2 / Who.pm
CommitLineData
1ad24a43
DM
1package PMG::API2::Who;
2
3use strict;
4use warnings;
5use Data::Dumper;
6
7use PVE::SafeSyslog;
8use PVE::Tools qw(extract_param);
9use HTTP::Status qw(:constants);
10use PVE::JSONSchema qw(get_standard_option);
11use PVE::RESTHandler;
12use PVE::INotify;
13
14use PMG::Config;
15
16use PMG::RuleDB::WhoRegex;
17use PMG::RuleDB::EMail;
18use PMG::RuleDB::IPAddress;
19use PMG::RuleDB::IPNet;
20use PMG::RuleDB::Domain;
2aeda4ac 21use PMG::RuleDB::LDAP;
d4d73d95 22use PMG::RuleDB::LDAPUser;
1ad24a43
DM
23use PMG::RuleDB;
24
25use base qw(PVE::RESTHandler);
26
27__PACKAGE__->register_method ({
28 name => 'index',
29 path => '',
30 method => 'GET',
31 description => "Directory index.",
b07f4d68 32 permissions => { check => [ 'admin', 'audit' ] },
1ad24a43
DM
33 parameters => {
34 additionalProperties => 0,
35 properties => {
36 ogroup => {
37 description => "Object Group ID.",
38 type => 'integer',
39 },
40 },
41 },
42 returns => {
43 type => 'array',
44 items => {
45 type => "object",
46 properties => {
47 subdir => { type => 'string'},
48 },
49 },
50 links => [ { rel => 'child', href => "{subdir}" } ],
51 },
52 code => sub {
53 my ($param) = @_;
54
55 return [
f2becee6 56 { subdir => 'config' },
1ad24a43
DM
57 { subdir => 'objects' },
58 { subdir => 'email' },
59 { subdir => 'domain' },
60 { subdir => 'regex' },
61 { subdir => 'ip' },
62 { subdir => 'network' },
2aeda4ac 63 { subdir => 'ldap' },
1ad24a43
DM
64 ];
65
66 }});
67
1b5d8c9c
DM
68PMG::API2::ObjectGroupHelpers::register_delete_object_group_api(__PACKAGE__, 'who', '');
69PMG::API2::ObjectGroupHelpers::register_object_group_config_api(__PACKAGE__, 'who', 'config');
70PMG::API2::ObjectGroupHelpers::register_objects_api(__PACKAGE__, 'who', 'objects');
1ad24a43
DM
71
72PMG::RuleDB::EMail->register_api(__PACKAGE__, 'email');
73PMG::RuleDB::Domain->register_api(__PACKAGE__, 'domain');
74PMG::RuleDB::WhoRegex->register_api(__PACKAGE__, 'regex');
75PMG::RuleDB::IPAddress->register_api(__PACKAGE__, 'ip');
76PMG::RuleDB::IPNet->register_api(__PACKAGE__, 'network');
2aeda4ac 77PMG::RuleDB::LDAP->register_api(__PACKAGE__, 'ldap');
d4d73d95 78PMG::RuleDB::LDAPUser->register_api(__PACKAGE__, 'ldapuser');
1ad24a43
DM
79
801;