1: <?php
2:
3: namespace Budabot\Core;
4:
5: 6: 7:
8: class AdminManager {
9:
10:
11: public $chatBot;
12:
13:
14: public $db;
15:
16:
17: public $buddylistManager;
18:
19: public $admins = array();
20:
21: public function uploadAdmins() {
22: $this->db->exec("CREATE TABLE IF NOT EXISTS admin_<myname> (`name` VARCHAR(25) NOT NULL PRIMARY KEY, `adminlevel` INT)");
23:
24: $this->chatBot->vars["SuperAdmin"] = ucfirst(strtolower($this->chatBot->vars["SuperAdmin"]));
25:
26: $data = $this->db->query("SELECT * FROM admin_<myname> WHERE `name` = ?", $this->chatBot->vars["SuperAdmin"]);
27: if (count($data) == 0) {
28: $this->db->exec("INSERT INTO admin_<myname> (`adminlevel`, `name`) VALUES (?, ?)", '4', $this->chatBot->vars["SuperAdmin"]);
29: } else {
30: $this->db->exec("UPDATE admin_<myname> SET `adminlevel` = ? WHERE `name` = ?", '4', $this->chatBot->vars["SuperAdmin"]);
31: }
32:
33: $data = $this->db->query("SELECT * FROM admin_<myname>");
34: forEach ($data as $row) {
35: $this->admins[$row->name]["level"] = $row->adminlevel;
36: }
37: }
38:
39: public function removeFromLists($who) {
40: unset($this->admins[$who]);
41: $this->db->exec("DELETE FROM admin_<myname> WHERE `name` = ?", $who);
42: $this->buddylistManager->remove($who, 'admin');
43: }
44:
45: public function addToLists($who, $intlevel) {
46: $action = '';
47: if (isset($this->admins[$who])) {
48: $this->db->exec("UPDATE admin_<myname> SET `adminlevel` = ? WHERE `name` = ?", $intlevel, $who);
49: if ($this->admins[$who]["level"] > $intlevel) {
50: $action = "demoted";
51: } else {
52: $action = "promoted";
53: }
54: } else {
55: $this->db->exec("INSERT INTO admin_<myname> (`adminlevel`, `name`) VALUES (?, ?)", $intlevel, $who);
56: $action = "promoted";
57: }
58:
59: $this->admins[$who]["level"] = $intlevel;
60: $this->buddylistManager->add($who, 'admin');
61:
62: return $action;
63: }
64:
65: public function checkExisting($who, $level) {
66: if ($this->admins[$who]["level"] != $level) {
67: return false;
68: } else {
69: return true;
70: }
71: }
72: }
73: