root/dev/common/admin_postperm.php @ 91

Revision 91, 5.5 KB (checked in by exi, 14 years ago)

Made contracts to be able to be targeted on systems.
Added Mapoptions to make you graphics guys scream.
Added adjustable posting permissions for killmail authorization.
Aded killmail exporter, it can export multiple pilots, corporation and alliances at once.

Line 
1<?php
2require_once('db.php');
3require_once('class.page.php');
4require_once('class.contract.php');
5require_once('admin_menu.php');
6require_once('class.http.php');
7
8$page = new Page();
9$page->setAdmin();
10$page->setTitle('Administration - Post Permissions');
11
12if ($_REQUEST['searchphrase'] != "" && strlen($_REQUEST['searchphrase']) >= 3)
13{
14    switch ($_REQUEST['searchtype'])
15    {
16        case "pilot":
17            $sql = "select plt.plt_id, plt.plt_name, crp.crp_name
18                    from kb3_pilots plt, kb3_corps crp
19                    where lower( plt.plt_name ) like lower( '%".slashfix($_REQUEST['searchphrase'])."%' )
20                    and plt.plt_crp_id = crp.crp_id
21                    order by plt.plt_name";
22            break;
23        case "corp":
24            $sql = "select crp.crp_id, crp.crp_name, ali.all_name
25                    from kb3_corps crp, kb3_alliances ali
26                    where lower( crp.crp_name ) like lower( '%".slashfix($_REQUEST['searchphrase'])."%' )
27                    and crp.crp_all_id = ali.all_id
28                    order by crp.crp_name";
29            break;
30        case "alliance":
31            $sql = "select ali.all_id, ali.all_name
32                    from kb3_alliances ali
33                    where lower( ali.all_name ) like lower( '%".slashfix($_REQUEST['searchphrase'])."%' )
34                    order by ali.all_name";
35            break;
36    }
37
38    $qry = new DBQuery();
39    if (!$qry->execute($sql))
40    {
41        die($qry->getErrorMsg());
42    }
43
44    while ($row = $qry->getRow())
45    {
46        switch ($_REQUEST['searchtype'])
47        {
48            case 'pilot':
49                $link = '?a=admin_postperm&add=p'.$row['plt_id'];
50                $descr = 'Pilot '.$row['plt_name'].' from '.$row['crp_name'];
51                break;
52            case 'corp':
53                $link = "?a=admin_postperm&add=c".$row['crp_id'];
54                $descr = 'Corp '.$row['crp_name'].', member of '.$row['all_name'];
55                break;
56            case 'alliance':
57                $link = '?a=admin_postperm&add=a'.$row['all_id'];
58                $descr = 'Alliance '.$row['all_name'];
59                break;
60        }
61        $results[] = array('descr' => $descr, 'link' => $link);
62    }
63    $smarty->assign_by_ref('results', $results);
64    $smarty->assign('search', true);
65}
66
67if (isset($_REQUEST['authall']))
68{
69    if ($_REQUEST['authall'])
70    {
71        $config->setConfig('post_permission', 'all');
72    }
73    else
74    {
75        $config->setConfig('post_permission', '');
76    }
77}
78if (!$string = $config->getConfig('post_permission'))
79{
80    $string = '';
81}
82if ($string != 'all')
83{
84    $tmp = explode(',', $string);
85    $permissions = array('a' => array(), 'c' => array(), 'p' => array());
86    foreach ($tmp as $item)
87    {
88        if (!$item)
89        {
90            continue;
91        }
92        $typ = substr($item, 0, 1);
93        $id = substr($item, 1);
94        $permissions[$typ][$id] = $id;
95    }
96
97    if ($_REQUEST['add'])
98    {
99        $typ = substr($_REQUEST['add'], 0, 1);
100        $id = intval(substr($_REQUEST['add'], 1));
101        $permissions[$typ][$id] = $id;
102        $configstr = '';
103        foreach ($permissions as $typ => $id_array)
104        {
105            foreach ($id_array as $id)
106            {
107                $conf[] = $typ.$id;
108            }
109        }
110        $config->setConfig('post_permission', implode(',', $conf));
111    }
112
113    if ($_REQUEST['del'])
114    {
115        $typ = substr($_REQUEST['del'], 0, 1);
116        $id = intval(substr($_REQUEST['del'], 1));
117        unset($permissions[$typ][$id]);
118        $conf = array();
119        foreach ($permissions as $typ => $id_array)
120        {
121            foreach ($id_array as $id)
122            {
123                $conf[] = $typ.$id;
124            }
125        }
126        $config->setConfig('post_permission', implode(',', $conf));
127    }
128
129    asort($permissions['a']);
130    asort($permissions['c']);
131    asort($permissions['p']);
132
133    $permt = array();
134    foreach ($permissions as $typ => $ids)
135    {
136        foreach ($ids as $id)
137        {
138            if ($typ == 'a')
139            {
140                $alliance = new Alliance($id);
141                $text = $alliance->getName();
142                $link = '?a=admin_postperm&del='.$typ.$id;
143                $permt[$typ][] = array('text' => $text, 'link' => $link);
144            }
145            if ($typ == 'p')
146            {
147                $pilot = new Pilot($id);
148                $text = $pilot->getName();
149                $link = '?a=admin_postperm&del='.$typ.$id;
150                $permt[$typ][] = array('text' => $text, 'link' => $link);
151            }
152            if ($typ == 'c')
153            {
154                $corp = new Corporation($id);
155                $text = $corp->getName();
156                $link = '?a=admin_postperm&del='.$typ.$id;
157                $permt[$typ][] = array('text' => $text, 'link' => $link);
158            }
159        }
160    }
161    $perm = array();
162    if ($permt['a'])
163    {
164        $perm[] = array('name' => 'Alliances', 'list' => $permt['a']);
165    }
166    if ($permt['p'])
167    {
168        $perm[] = array('name' => 'Pilots', 'list' => $permt['p']);
169    }
170    if ($permt['c'])
171    {
172        $perm[] = array('name' => 'Corporations', 'list' => $permt['c']);
173    }
174
175    $smarty->assign_by_ref('permissions', $perm);
176}
177$html = $smarty->fetch('admin_postperm.tpl');
178
179$page->addContext($menubox->generate());
180$page->setContent($html);
181$page->generate();
182?>
Note: See TracBrowser for help on using the browser.