From ff1ae24742182cbaa38d444b54f32e7154c6b544 Mon Sep 17 00:00:00 2001 From: pk910 Date: Sat, 20 Aug 2011 08:35:34 +0200 Subject: [PATCH] using channel entry named 'default' as default values --- DBHelper.c | 11 ++++++++++- DBHelper.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/DBHelper.c b/DBHelper.c index ce43cc0..f0897d2 100644 --- a/DBHelper.c +++ b/DBHelper.c @@ -56,6 +56,15 @@ int getChannelAccess(struct UserNode *user, struct ChanNode *chan, int override) 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; @@ -64,7 +73,7 @@ int checkChannelAccess(struct UserNode *user, struct ChanNode *chan, char *chann 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; diff --git a/DBHelper.h b/DBHelper.h index e1ad2e7..cb99bc3 100644 --- a/DBHelper.h +++ b/DBHelper.h @@ -13,6 +13,7 @@ struct UserNode; 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); -- 2.20.1