return 0;
}
+char *getChanDefault(char *channel_setting) {
+ MYSQL_RES *res;
+ MYSQL_ROW row;
+ printf_mysql_query("SELECT `%s` FROM `channels` WHERE `channel_name` = 'defaults'", channel_setting);
+ res = mysql_use();
+ if ((row = mysql_fetch_row(res)) == NULL) return "";
+ return row[0];
+}
+
int checkChannelAccess(struct UserNode *user, struct ChanNode *chan, char *channel_setting, int allow_override, int allow_501) {
loadChannelSettings(chan);
if(!(chan->flags & CHANFLAG_CHAN_REGISTERED)) return 0;
printf_mysql_query("SELECT `%s` FROM `channels` WHERE `channel_id` = '%d'", channel_setting, chan->channel_id);
res = mysql_use();
if ((row = mysql_fetch_row(res)) == NULL) return 0;
- int require_access = atoi(row[0]);
+ int require_access = (row[0] ? atoi(row[0]) : getChanDefault(channel_setting));
if(require_access == 0) return 1;
if(!(user->flags & USERFLAG_ISAUTHED)) return 0;
int caccess = 0;
void _loadUserSettings(struct UserNode* user);
#define loadUserSettings(USER) if((USER->flags & USERFLAG_ISAUTHED) && !(USER->flags & USERFLAG_LOADED_SETTINGS)) _loadUserSettings(USER)
int isGodMode(struct UserNode *user);
+char *getChanDefault(char *channel_setting);
int getChannelAccess(struct UserNode *user, struct ChanNode *chan, int override);
int checkChannelAccess(struct UserNode *user, struct ChanNode *chan, char *channel_setting, int allow_override, int allow_501);
void _loadChannelSettings(struct ChanNode *chan);