OSDN Git Service

Small bug fix added temp ban code to group setup.
[idb/iDB.git.git] / inc / groupsetup.php
1 <?php
2 /*
3     This program is free software; you can redistribute it and/or modify
4     it under the terms of the Revised BSD License.
5
6     This program is distributed in the hope that it will be useful,
7     but WITHOUT ANY WARRANTY; without even the implied warranty of
8     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9     Revised BSD License for more details.
10
11     Copyright 2004-2007 Cool Dude 2k - http://intdb.sourceforge.net/
12     Copyright 2004-2007 Game Maker 2k - http://upload.idb.s1.jcink.com/
13
14     $FileInfo: groupsetup.php - Last Update: 09/20/2007 SVN 107 - Author: cooldude2k $
15 */
16 $File3Name = basename($_SERVER['SCRIPT_NAME']);
17 if ($File3Name=="groupsetup.php"||$File3Name=="/groupsetup.php") {
18         require('index.php');
19         exit(); }
20 // Check to make sure MemberInfo is right
21 if(!isset($_SESSION['UserID'])) { $_SESSION['UserID'] = 0; }
22 if($_SESSION['UserID']!=0&&$_SESSION['UserID']!=null) { $BanError = null;
23 $kgbquerychkusr = query("SELECT * FROM `".$Settings['sqltable']."members` WHERE `Name`='%s' AND `Password`='%s' AND `id`=%i", array($_SESSION['MemberName'],$_SESSION['UserPass'],$_SESSION['UserID'])); 
24 $resultchkusr=mysql_query($kgbquerychkusr);
25 $numchkusr=mysql_num_rows($resultchkusr);
26 if($numchkusr==1) {
27 $ChkUsrID=mysql_result($resultchkusr,0,"id");
28 $ChkUsrName=mysql_result($resultchkusr,0,"Name");
29 $ChkUsrGroup=mysql_result($resultchkusr,0,"GroupID");
30 $ChkUsrPass=mysql_result($resultchkusr,0,"Password");
31 $ChkUsrTimeZone=mysql_result($resultchkusr,0,"TimeZone");
32 $ChkUsrTheme=mysql_result($resultchkusr,0,"UseTheme");
33 $ChkUsrDST=mysql_result($resultchkusr,0,"DST");
34 $svrquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `id`=%i", array($ChkUsrGroup));
35 $svrgresultkgb=mysql_query($svrquery);
36 $ChkUsrGroup=mysql_result($svrgresultkgb,0,"Name"); 
37 $ChkUsrBanTime=mysql_result($resultchkusr,0,"BanTime");
38 if($ChkUsrBanTime!=0&&$ChkUsrBanTime!=null) {
39 $CMonth = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
40 $CDay = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
41 $CYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
42 $BMonth = GMTimeChange("m",$ChkUsrBanTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
43 $BDay = GMTimeChange("d",$ChkUsrBanTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
44 $BYear = GMTimeChange("Y",$ChkUsrBanTime,$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
45 if($BYear<$CYear) { $BanError = "yes"; }
46 if($BYear<=$CYear&&$BMonth<$CMonth&&$BanError!="yes") { $BanError = "yes"; }
47 if($BYear<=$CYear&&$BMonth<=$CMonth&&$BDay<=$CDay&&$BanError!="yes") { $BanError = "yes"; } }
48 if($BanError!="yes") {
49 $_SESSION['Theme']=$ChkUsrTheme;
50 $_SESSION['MemberName']=$ChkUsrName;
51 $_SESSION['UserID']=$ChkUsrID;
52 $_SESSION['UserTimeZone']=$ChkUsrTimeZone;
53 $_SESSION['UserGroup']=$ChkUsrGroup;
54 $_SESSION['UserDST']=$ChkUsrDST;
55 $_SESSION['UserPass']=$ChkUsrPass; } }
56 if($numchkusr<=0||$numchkusr>1||$BanError=="yes") { @session_unset();
57 if($cookieDomain==null) {
58 @setcookie("MemberName", null, GMTimeStamp() - 3600, $basedir);
59 @setcookie("UserID", null, GMTimeStamp() - 3600, $basedir);
60 @setcookie("SessPass", null, GMTimeStamp() - 3600, $basedir);
61 @setcookie(session_name(), "", GMTimeStamp() - 3600, $basedir); }
62 if($cookieDomain!=null) {
63 if($cookieSecure==true) {
64 @setcookie("MemberName", null, GMTimeStamp() - 3600, $basedir, $cookieDomain, 1);
65 @setcookie("UserID", null, GMTimeStamp() - 3600, $basedir, $cookieDomain, 1);
66 @setcookie("SessPass", null, GMTimeStamp() - 3600, $basedir, $cookieDomain, 1);
67 @setcookie(session_name(), "", GMTimeStamp() - 3600, $basedir, $cookieDomain, 1); }
68 if($cookieSecure==false) {
69 @setcookie("MemberName", null, GMTimeStamp() - 3600, $basedir, $cookieDomain);
70 @setcookie("UserID", null, GMTimeStamp() - 3600, $basedir, $cookieDomain);
71 @setcookie("SessPass", null, GMTimeStamp() - 3600, $basedir, $cookieDomain);
72 @setcookie(session_name(), "", GMTimeStamp() - 3600, $basedir, $cookieDomain); } }
73 unset($_COOKIE[session_name()]);
74 $_SESSION = array(); @session_unset(); @session_destroy();
75 @redirect("location",$basedir.url_maker($exfile['member'],$Settings['file_ext'],"act=login",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'],false)); @mysql_free_result($numchkusr); @mysql_free_result($svrgresultkgb);
76 ob_clean(); @header("Content-Type: text/plain; charset=".$Settings['charset']);
77 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
78 @mysql_free_result($numchkusr); @mysql_free_result($svrgresultkgb); }
79 if($_SESSION['UserID']==0||$_SESSION['UserID']==null) {
80 $_SESSION['MemberName'] = null;
81 $_SESSION['UserGroup'] = $Settings['GuestGroup']; }
82 if($_SESSION['MemberName']==null) { $_SESSION['UserID'] = "0";
83 $_SESSION['UserGroup'] = $Settings['GuestGroup']; }
84 // Member Group Setup
85 if(!isset($_SESSION['UserGroup'])) { $_SESSION['UserGroup'] = null; }
86 if($_SESSION['UserGroup']==null) { 
87 $_SESSION['UserGroup']=$Settings['GuestGroup']; } $GruError = null;
88 $gruquery = query("SELECT * FROM `".$Settings['sqltable']."groups` WHERE `Name`='%s'", array($_SESSION['UserGroup']));
89 $gruresult=mysql_query($gruquery);
90 $grunum=mysql_num_rows($gruresult);
91 if($grunum<=0) { $GruError = true; @mysql_free_result($gruresult);
92 @header("Content-Type: text/plain; charset=".$Settings['charset']); 
93 ob_clean(); echo "Sorry could not find group data in database.\nContact the board admin about error."; 
94 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
95 if($grunum>=1) {
96 $GroupInfo['ID']=mysql_result($gruresult,0,"id");
97 if(!is_numeric($GroupInfo['ID'])) { $GruError = true; }
98 $GroupInfo['Name']=mysql_result($gruresult,0,"Name");
99 $GroupInfo['PermissionID']=mysql_result($gruresult,0,"PermissionID");
100 if(!is_numeric($GroupInfo['PermissionID'])) { $GruError = true; }
101 $GroupInfo['NamePrefix']=mysql_result($gruresult,0,"NamePrefix");
102 $GroupInfo['NameSuffix']=mysql_result($gruresult,0,"NameSuffix");
103 $GroupInfo['CanViewBoard']=mysql_result($gruresult,0,"CanViewBoard");
104 if($GroupInfo['CanViewBoard']!="yes"&&$GroupInfo['CanViewBoard']!="no") {
105                 $GruError = true; }
106 $GroupInfo['CanEditProfile']=mysql_result($gruresult,0,"CanEditProfile");
107 if($GroupInfo['CanEditProfile']!="yes"&&$GroupInfo['CanEditProfile']!="no") {
108                 $GruError = true; }
109 $GroupInfo['CanAddEvents']=mysql_result($gruresult,0,"CanAddEvents");
110 if($GroupInfo['CanAddEvents']!="yes"&&$GroupInfo['CanAddEvents']!="no") {
111                 $GruError = true; }
112 $GroupInfo['CanPM']=mysql_result($gruresult,0,"CanPM");
113 if($GroupInfo['CanPM']!="yes"&&$GroupInfo['CanPM']!="no") {
114                 $GruError = true; }
115 $GroupInfo['CanSearch']=mysql_result($gruresult,0,"CanSearch");
116 if($GroupInfo['CanSearch']!="yes"&&$GroupInfo['CanSearch']!="no") {
117                 $GruError = true; }
118 $GroupInfo['PromoteTo']=mysql_result($gruresult,0,"PromoteTo");
119 $GroupInfo['PromotePosts']=mysql_result($gruresult,0,"PromotePosts");
120 if(!is_numeric($GroupInfo['PromotePosts'])) { 
121         $GroupInfo['PromotePosts'] = 0; $GroupInfo['PromoteTo'] = "none"; }
122 $GroupInfo['HasModCP']=mysql_result($gruresult,0,"HasModCP");
123 if($GroupInfo['HasModCP']!="yes"&&$GroupInfo['HasModCP']!="no") {
124         $GroupInfo['HasModCP'] = "no"; }
125 $GroupInfo['HasAdminCP']=mysql_result($gruresult,0,"HasAdminCP");
126 if($GroupInfo['HasAdminCP']!="yes"&&$GroupInfo['HasAdminCP']!="no") {
127         $GroupInfo['HasAdminCP'] = "no"; }
128 $GroupInfo['ViewDBInfo']=mysql_result($gruresult,0,"ViewDBInfo"); 
129 if($GroupInfo['ViewDBInfo']!="yes"&&$GroupInfo['ViewDBInfo']!="no") {
130         $GroupInfo['ViewDBInfo'] = "no"; }
131 if($GruError==true) {
132 @header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($gruresult);
133 ob_clean(); echo "Sorry could not load all group data in database.\nContact the board admin about error."; 
134 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); } }
135 @mysql_free_result($gruresult);
136 if($GroupInfo['CanViewBoard']=="no") { 
137 @header("Content-Type: text/plain; charset=".$Settings['charset']); 
138 ob_clean(); echo "Sorry you can not view the board."; 
139 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
140 // Member Group Permissions Setup
141 $perquery = query("SELECT * FROM `".$Settings['sqltable']."permissions` WHERE `PermissionID`=%i ORDER BY `ForumID` ASC", array($GroupInfo['PermissionID']));
142 $peresult=mysql_query($perquery);
143 $pernum=mysql_num_rows($peresult);
144 $peri=0; $PerError = null;
145 if($pernum<=0) { $PerError = true; @mysql_free_result($peresult);
146 @header("Content-Type: text/plain; charset=".$Settings['charset']); 
147 ob_clean(); echo "Sorry could not find permission data in database.\nContact the board admin about error."; 
148 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
149 if($pernum>=1) { while ($peri < $pernum) {
150 $PerForumID=mysql_result($peresult,$peri,"ForumID");
151 if(!is_numeric($PerForumID)) { $PerError = true; }
152 $PermissionInfo['ID'][$PerForumID]=mysql_result($peresult,$peri,"ID");
153 if(!is_numeric($PermissionInfo['ID'][$PerForumID])) { $PerError = true; }
154 $PermissionInfo['PermissionID'][$PerForumID]=mysql_result($peresult,$peri,"PermissionID");
155 if(!is_numeric($PermissionInfo['PermissionID'][$PerForumID])) { $PerError = true; }
156 $PermissionInfo['Name'][$PerForumID]=mysql_result($peresult,$peri,"Name");
157 $PermissionInfo['ForumID'][$PerForumID]=mysql_result($peresult,$peri,"ForumID");
158 if(!is_numeric($PermissionInfo['ForumID'][$PerForumID])) { $PerError = true; }
159 $PermissionInfo['CanViewForum'][$PerForumID]=mysql_result($peresult,$peri,"CanViewForum");
160 if($PermissionInfo['CanViewForum'][$PerForumID]!="yes"&&$PermissionInfo['CanViewForum'][$PerForumID]!="no") {
161                 $PerError = true; }
162 $PermissionInfo['CanMakeTopics'][$PerForumID]=mysql_result($peresult,$peri,"CanMakeTopics");
163 if($PermissionInfo['CanMakeTopics'][$PerForumID]!="yes"&&$PermissionInfo['CanMakeTopics'][$PerForumID]!="no") {
164                 $PerError = true; }
165 $PermissionInfo['CanMakeReplys'][$PerForumID]=mysql_result($peresult,$peri,"CanMakeReplys");
166 if($PermissionInfo['CanMakeReplys'][$PerForumID]!="yes"&&$PermissionInfo['CanMakeReplys'][$PerForumID]!="no") {
167                 $PerError = true; }
168 $PermissionInfo['CanMakeReplysClose'][$PerForumID]=mysql_result($peresult,$peri,"CanMakeReplysCT");
169 if($PermissionInfo['CanMakeReplysClose'][$PerForumID]!="yes"&&$PermissionInfo['CanMakeReplysClose'][$PerForumID]!="no") {
170                 $PerError = true; }
171 $PermissionInfo['CanEditTopics'][$PerForumID]=mysql_result($peresult,$peri,"CanEditTopics");
172 if($PermissionInfo['CanEditTopics'][$PerForumID]!="yes"&&$PermissionInfo['CanEditTopics'][$PerForumID]!="no") {
173         $PermissionInfo['CanEditTopics'][$PerForumID] = "no"; }
174 $PermissionInfo['CanEditTopicsClose'][$PerForumID]=mysql_result($peresult,$peri,"CanEditTopicsCT");
175 if($PermissionInfo['CanEditTopicsClose'][$PerForumID]!="yes"&&$PermissionInfo['CanEditTopicsClose'][$PerForumID]!="no") {
176         $PermissionInfo['CanEditTopicsClose'][$PerForumID] = "no"; }
177 $PermissionInfo['CanEditReplys'][$PerForumID]=mysql_result($peresult,$peri,"CanEditReplys");
178 if($PermissionInfo['CanEditReplys'][$PerForumID]!="yes"&&$PermissionInfo['CanEditReplys'][$PerForumID]!="no") {
179         $PermissionInfo['CanEditReplys'][$PerForumID] = "no"; }
180 $PermissionInfo['CanEditReplysClose'][$PerForumID]=mysql_result($peresult,$peri,"CanEditReplysCT");
181 if($PermissionInfo['CanEditReplysClose'][$PerForumID]!="yes"&&$PermissionInfo['CanEditReplysClose'][$PerForumID]!="no") {
182         $PermissionInfo['CanEditReplysClose'][$PerForumID] = "no"; }
183 $PermissionInfo['CanDeleteTopics'][$PerForumID]=mysql_result($peresult,$peri,"CanDeleteTopics");
184 if($PermissionInfo['CanDeleteTopics'][$PerForumID]!="yes"&&$PermissionInfo['CanDeleteTopics'][$PerForumID]!="no") {
185         $PermissionInfo['CanDeleteTopics'][$PerForumID] = "no"; }
186 $PermissionInfo['CanDeleteTopicsClose'][$PerForumID]=mysql_result($peresult,$peri,"CanDeleteTopicsCT");
187 if($PermissionInfo['CanDeleteTopicsClose'][$PerForumID]!="yes"&&$PermissionInfo['CanDeleteTopicsClose'][$PerForumID]!="no") {
188         $PermissionInfo['CanDeleteTopicsClose'][$PerForumID] = "no"; }
189 $PermissionInfo['CanDeleteReplys'][$PerForumID]=mysql_result($peresult,$peri,"CanDeleteReplys");
190 if($PermissionInfo['CanDeleteReplys'][$PerForumID]!="yes"&&$PermissionInfo['CanDeleteReplys'][$PerForumID]!="no") {
191         $PermissionInfo['CanDeleteReplys'][$PerForumID] = "no"; }
192 $PermissionInfo['CanDeleteReplysClose'][$PerForumID]=mysql_result($peresult,$peri,"CanDeleteReplysCT");
193 if($PermissionInfo['CanDeleteReplysClose'][$PerForumID]!="yes"&&$PermissionInfo['CanDeleteReplysClose'][$PerForumID]!="no") {
194         $PermissionInfo['CanDeleteReplysClose'][$PerForumID] = "no"; }
195 $PermissionInfo['CanCloseTopics'][$PerForumID]=mysql_result($peresult,$peri,"CanCloseTopics");
196 if($PermissionInfo['CanCloseTopics'][$PerForumID]!="yes"&&$PermissionInfo['CanCloseTopics'][$PerForumID]!="no") {
197         $PermissionInfo['CanCloseTopics'][$PerForumID] = "no"; }
198 $PermissionInfo['CanPinTopics'][$PerForumID]=mysql_result($peresult,$peri,"CanPinTopics");
199 if($PermissionInfo['CanPinTopics'][$PerForumID]!="yes"&&$PermissionInfo['CanPinTopics'][$PerForumID]!="no") {
200         $PermissionInfo['CanPinTopics'][$PerForumID] = "no"; }
201 $PermissionInfo['CanDohtml'][$PerForumID]=mysql_result($peresult,$peri,"CanDohtml");
202 if($PermissionInfo['CanDohtml'][$PerForumID]!="yes"&&$PermissionInfo['CanDohtml'][$PerForumID]!="no") {
203         $PermissionInfo['CanDohtml'][$PerForumID] = "no"; }
204 $PermissionInfo['CanUseBBags'][$PerForumID]=mysql_result($peresult,$peri,"CanUseBBags");
205 if($PermissionInfo['CanUseBBags'][$PerForumID]!="yes"&&$PermissionInfo['CanUseBBags'][$PerForumID]!="no") {
206         $PermissionInfo['CanUseBBags'][$PerForumID] = "no"; }
207 $PermissionInfo['CanModForum'][$PerForumID]=mysql_result($peresult,$peri,"CanModForum");
208 if($PermissionInfo['CanModForum'][$PerForumID]!="yes"&&$PermissionInfo['CanModForum'][$PerForumID]!="no") {
209         $PermissionInfo['CanModForum'][$PerForumID] = "no"; }
210 if($PerError==true) { $peri = $pernum; }
211 ++$peri; } if($PerError==true) {
212 @header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($peresult);
213 ob_clean(); echo "Sorry could not load all permission data in database.\nContact the board admin about error."; 
214 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); } }
215 @mysql_free_result($peresult);
216 $per2query = query("SELECT * FROM `".$Settings['sqltable']."catpermissions` WHERE `PermissionID`=%i ORDER BY `CategoryID` ASC", array($GroupInfo['PermissionID']));
217 $per2esult=mysql_query($per2query);
218 $per2num=mysql_num_rows($per2esult);
219 $per2i=0; $Per2Error = null;
220 if($per2num<=0) { $Per2Error = true; @mysql_free_result($per2esult);
221 @header("Content-Type: text/plain; charset=".$Settings['charset']); 
222 ob_clean(); echo "Sorry could not find permission data in database.\nContact the board admin about error."; 
223 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); }
224 if($per2num>=1) { while ($per2i < $per2num) {
225 $PerCatID=mysql_result($per2esult,$per2i,"CategoryID");
226 if(!is_numeric($PerCatID)) { $Per2Error = true; }
227 $CatPermissionInfo['ID'][$PerCatID]=mysql_result($per2esult,$per2i,"id");
228 if(!is_numeric($CatPermissionInfo['ID'][$PerCatID])) { $Per2Error = true; }
229 $CatPermissionInfo['PermissionID'][$PerCatID]=mysql_result($per2esult,$per2i,"PermissionID");
230 if(!is_numeric($CatPermissionInfo['PermissionID'][$PerCatID])) { $Per2Error = true; }
231 $CatPermissionInfo['Name'][$PerCatID]=mysql_result($per2esult,$per2i,"Name");
232 $CatPermissionInfo['CategoryID'][$PerCatID]=mysql_result($per2esult,$per2i,"CategoryID");
233 if(!is_numeric($CatPermissionInfo['CategoryID'][$PerCatID])) { $Per2Error = true; }
234 $CatPermissionInfo['CanViewCategory'][$PerCatID]=mysql_result($per2esult,$per2i,"CanViewCategory");
235 if($CatPermissionInfo['CanViewCategory'][$PerCatID]!="yes"&&$CatPermissionInfo['CanViewCategory'][$PerCatID]!="no") {
236                 $Per2Error = true; }
237 if($Per2Error==true) { $per2i = $per2num; }
238 ++$per2i; } if($Per2Error==true) {
239 @header("Content-Type: text/plain; charset=".$Settings['charset']); @mysql_free_result($per2esult);
240 ob_clean(); echo "Sorry could not load all permission data in database.\nContact the board admin about error."; 
241 gzip_page($Settings['use_gzip'],$GZipEncode['Type']); @mysql_close(); die(); } }
242 @mysql_free_result($per2esult);
243 ?>