added some code & compiler information to cmd_netinfo
[NeonServV5.git] / cmd_neonserv_mdeluser.c
1
2 /*
3 * argv[0]  access (format: minaccess-maxaccess)
4 * argv[1]  pattern
5 */
6
7 static CMD_BIND(neonserv_cmd_mdeluser) {
8     check_mysql();
9     if(!checkChannelAccess(user, chan, "channel_candel", 1, 0)) {
10         reply(getTextBot(), user, "NS_ACCESS_DENIED");
11         return;
12     }
13     int min_access, max_access;
14     char *seperator = strstr(argv[0], "-");
15     if(seperator) {
16         *seperator = '\0';
17         seperator++;
18         min_access = atoi(argv[0]);
19         max_access = atoi(seperator);
20         if(max_access > min_access) {
21             reply(getTextBot(), user, "NS_INVALID_ACCESS_RANGE", min_access, max_access);
22             return;
23         }
24     } else {
25         min_access = atoi(argv[0]);
26         max_access = min_access;
27     }
28     if(max_access >= getChannelAccess(user, chan, 1)) {
29         reply(getTextBot(), user, "NS_NO_ACCESS");
30         return;
31     }
32     MYSQL_RES *res;
33     MYSQL_ROW row;
34     int del_count = 0;
35     printf_mysql_query("SELECT `user_user`, `chanuser_id` FROM `chanusers` LEFT JOIN `users` ON `chanuser_uid` = `user_id` WHERE `chanuser_cid` = '%d' AND `chanuser_access` >= '%d' AND `chanuser_access` <= '%d'", chan->channel_id, min_access, max_access);
36     res = mysql_use();
37     while((row = mysql_fetch_row(res)) != NULL) {
38         if(!match(argv[1], row[0])) {
39             del_count++;
40             printf_mysql_query("DELETE FROM `chanusers` WHERE `chanuser_id` = '%s'", row[1]);
41         }
42     }
43     reply(getTextBot(), user, "NS_MDELUSER_DONE", del_count, argv[1], min_access, max_access, chan->name);
44 }
45