-
Notifications
You must be signed in to change notification settings - Fork 51
/
install.inc.php
94 lines (84 loc) · 3.42 KB
/
install.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/*
Copyright 2009-2013 Edward L. Platt <ed@elplatt.com>
This file is part of the Seltzer CRM Project
install.inc.php - Member module installation code
Seltzer is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.
Seltzer is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Seltzer. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* Install or upgrade this module.
* @param $old_revision The last installed revision of this module, or 0 if the
* module has never been installed.
*/
function member_install($old_revision = 0) {
// Initial installation
if ($old_revision < 1) {
$sql = '
CREATE TABLE IF NOT EXISTS `member` (
`cid` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
';
$res = mysql_query($sql);
if (!$res) die(mysql_error());
$sql = '
CREATE TABLE IF NOT EXISTS `membership` (
`sid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`cid` mediumint(8) unsigned NOT NULL,
`pid` mediumint(8) unsigned NOT NULL,
`start` date NOT NULL,
`end` date DEFAULT NULL,
PRIMARY KEY (`sid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
';
$res = mysql_query($sql);
if (!$res) die(mysql_error());
$sql = '
CREATE TABLE IF NOT EXISTS `plan` (
`pid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`price` varchar(6) NOT NULL,
`active` tinyint(1) NOT NULL,
`voting` tinyint(1) NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
';
$res = mysql_query($sql);
if (!$res) die(mysql_error());
}
// Permissions moved to database, add defaults on install/upgrade
if ($old_revision < 2) {
$roles = array(
'1' => 'authenticated'
, '2' => 'member'
, '3' => 'director'
, '4' => 'president'
, '5' => 'vp'
, '6' => 'secretary'
, '7' => 'treasurer'
, '8' => 'webAdmin'
);
$default_perms = array(
'member' => array('member_list', 'member_view', 'member_membership_view')
, 'director' => array('member_list', 'member_plan_edit', 'member_view', 'member_add', 'member_edit', 'member_delete', 'member_membership_view', 'member_membership_edit')
);
foreach ($roles as $rid => $role) {
if (array_key_exists($role, $default_perms)) {
foreach ($default_perms[$role] as $perm) {
$sql = "INSERT INTO `role_permission` (`rid`, `permission`) VALUES ('$rid', '$perm')";
$res = mysql_query($sql);
if (!$res) die(mysql_error());
}
}
}
}
}