Another year is about to end... So we have to update these damn copyright information :P
[NeonServV5.git] / src / cmd_neonserv_myaccess.c
index 994bf8ea6ab573a601e8beaa6a39c77ce0b29e72..c37f0f8b0452f37a870ad497b89fb551f884c66e 100644 (file)
@@ -1,5 +1,5 @@
-/* cmd_neonserv_myaccess.c - NeonServ v5.0
- * Copyright (C) 2011  Philipp Kreil (pk910)
+/* cmd_neonserv_myaccess.c - NeonServ v5.3
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -111,6 +111,10 @@ static USERAUTH_CALLBACK(neonserv_cmd_myaccess_nick_lookup) {
 
 static void neonserv_cmd_myaccess_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, char *nick, char *auth, char *chanmatch) {
     //we've got a valid auth now...
+    if(stricmp(user->auth, auth) && !isGodMode(user)) {
+        reply(textclient, user, "NS_MYACCESS_SELF_ONLY");
+        return;
+    }
     MYSQL_RES *res, *default_res;
     MYSQL_ROW user_row, chanuser_row, default_chan = NULL;
     char flagBuf[5];
@@ -131,7 +135,7 @@ static void neonserv_cmd_myaccess_async1(struct ClientSocket *client, struct Cli
     if ((user_row = mysql_fetch_row(res)) != NULL) {
         userid = atoi(user_row[0]);
         //check if the user is already added
-        printf_mysql_query("SELECT `chanuser_access`, `chanuser_flags`, `chanuser_infoline`, `channel_name`, `channel_getop`, `channel_getvoice`, `botid` FROM `chanusers` LEFT JOIN `channels` ON `chanuser_cid` = `channel_id` LEFT JOIN `bot_channels` ON `chanuser_cid` = `chanid` LEFT JOIN `bots` ON `bots`.`id` = `botid` WHERE `chanuser_uid` = '%d' AND `botclass` = '%d' ORDER BY `chanuser_access` DESC, `channel_name` ASC", userid, client->botid);
+        printf_mysql_query("SELECT `chanuser_access`, `chanuser_flags`, `chanuser_infoline`, `channel_name`, `channel_getop`, `channel_getvoice`, `botid` FROM `chanusers` LEFT JOIN `channels` ON `chanuser_cid` = `channel_id` LEFT JOIN `bot_channels` ON `chanuser_cid` = `chanid` LEFT JOIN `bots` ON `bots`.`id` = `botid` WHERE `chanuser_uid` = '%d' AND `botclass` = '%d' AND `active` = '1' ORDER BY `chanuser_access` DESC, `channel_name` ASC", userid, client->botid);
         res = mysql_use();
         total_count = mysql_num_rows(res);
         table = table_init(4, total_count + 1, 0);
@@ -158,7 +162,7 @@ static void neonserv_cmd_myaccess_async1(struct ClientSocket *client, struct Cli
                 flagPos += sprintf(flagBuf + flagPos, "v");
             if((cflags & DB_CHANUSER_AUTOINVITE))
                 flagPos += sprintf(flagBuf + flagPos, "i");
-            content[2] = flagBuf;
+            content[2] = (flagPos ? flagBuf : "");
             content[3] = chanuser_row[2];
             table_add(table, content);
         }