*
* srvx is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* srvx is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
{ "CSMSG_BAD_RANGE", "Invalid access range; minimum (%d) must be greater than maximum (%d)." },
{ "CSMSG_DELETED_USERS", "Deleted accounts matching $b%s$b with access from $b%d$b to $b%d$b from the %s user list." },
{ "CSMSG_TRIMMED_USERS", "Trimmed $b%d users$b with access from %d to %d from the %s user list who were inactive for at least %s." },
{ "CSMSG_BAD_RANGE", "Invalid access range; minimum (%d) must be greater than maximum (%d)." },
{ "CSMSG_DELETED_USERS", "Deleted accounts matching $b%s$b with access from $b%d$b to $b%d$b from the %s user list." },
{ "CSMSG_TRIMMED_USERS", "Trimmed $b%d users$b with access from %d to %d from the %s user list who were inactive for at least %s." },
- { "CSMSG_INCORRECT_ACCESS", "%s has access $b%d$b, not %s." },
- { "CSMSG_USER_EXISTS", "%s is already on the $b%s$b user list (with access %d)." },
+ { "CSMSG_INCORRECT_ACCESS", "%s has access $b%s$b, not %s." },
+ { "CSMSG_USER_EXISTS", "%s is already on the $b%s$b user list (with %s access)." },
{ "CSMSG_CANNOT_TRIM", "You must include a minimum inactivity duration of at least 60 seconds to trim." },
{ "CSMSG_NO_SELF_CLVL", "You cannot change your own access." },
{ "CSMSG_CANNOT_TRIM", "You must include a minimum inactivity duration of at least 60 seconds to trim." },
{ "CSMSG_NO_SELF_CLVL", "You cannot change your own access." },
{ "CSMSG_TOPIC_SET", "Topic is now '%s'." },
{ "CSMSG_NO_TOPIC", "$b%s$b does not have a default topic." },
{ "CSMSG_TOPICMASK_CONFLICT1", "I do not know how to make that topic work with the current topic mask in $b%s$b, which is: %s" },
{ "CSMSG_TOPIC_SET", "Topic is now '%s'." },
{ "CSMSG_NO_TOPIC", "$b%s$b does not have a default topic." },
{ "CSMSG_TOPICMASK_CONFLICT1", "I do not know how to make that topic work with the current topic mask in $b%s$b, which is: %s" },
- { "CSMSG_TOPICMASK_CONFLICT2", "Please make sure your topic at most %d characters and matches the topic mask pattern." },
+ { "CSMSG_TOPICMASK_CONFLICT2", "Please make sure your topic is at most %d characters and matches the topic mask pattern." },
{ "CSMSG_TOPIC_LOCKED", "The %s topic is locked." },
{ "CSMSG_MASK_BUT_NO_TOPIC", "Warning: $b%s$b does not have a default topic, but you just set the topic mask." },
{ "CSMSG_TOPIC_MISMATCH", "Warning: The default topic for $b%s$b does not match the topic mask; changing it anyway." },
{ "CSMSG_TOPIC_LOCKED", "The %s topic is locked." },
{ "CSMSG_MASK_BUT_NO_TOPIC", "Warning: $b%s$b does not have a default topic, but you just set the topic mask." },
{ "CSMSG_TOPIC_MISMATCH", "Warning: The default topic for $b%s$b does not match the topic mask; changing it anyway." },
- { "CSMSG_ACCESS_ALL_HEADER", "%s users from level %d to %d:" },
- { "CSMSG_ACCESS_SEARCH_HEADER", "%s users from level %d to %d matching %s:" },
+ { "CSMSG_ACCESS_ALL_HEADER", "%s users from level %s to %s" },
+ { "CSMSG_ACCESS_SEARCH_HEADER", "%s users from level %s to %s matching %s" },
{ "CSMSG_SQUAT_ACCESS", "$b%s$b does not have access to any channels." },
{ "CSMSG_INFOLINE_LIST", "Showing all channel entries for account $b%s$b:" },
{ "CSMSG_USER_NO_ACCESS", "%s lacks access to %s." },
{ "CSMSG_SQUAT_ACCESS", "$b%s$b does not have access to any channels." },
{ "CSMSG_INFOLINE_LIST", "Showing all channel entries for account $b%s$b:" },
{ "CSMSG_USER_NO_ACCESS", "%s lacks access to %s." },
- { "CSMSG_HELPER_HAS_ACCESS", "%s has access $b%d$b in %s and has $bsecurity override$b enabled." },
+ { "CSMSG_HELPER_HAS_ACCESS", "%s has $b%s$b access in %s and has $bsecurity override$b enabled." },
{ "CSMSG_LAZY_SMURF_TARGET", "%s is %s ($bIRCOp$b; not logged in)." },
{ "CSMSG_SMURF_TARGET", "%s is %s ($b%s$b)." },
{ "CSMSG_LAME_SMURF_TARGET", "%s is an IRC operator." },
{ "CSMSG_LAZY_SMURF_TARGET", "%s is %s ($bIRCOp$b; not logged in)." },
{ "CSMSG_SMURF_TARGET", "%s is %s ($b%s$b)." },
{ "CSMSG_LAME_SMURF_TARGET", "%s is an IRC operator." },
#define CSFUNC_ARGS user, channel, argc, argv, cmd
#define CHANSERV_FUNC(NAME) MODCMD_FUNC(NAME)
#define CSFUNC_ARGS user, channel, argc, argv, cmd
#define CHANSERV_FUNC(NAME) MODCMD_FUNC(NAME)
#define REQUIRE_PARAMS(N) if(argc < (N)) { \
reply("MSG_MISSING_PARAMS", argv[0]); \
CHANSERV_SYNTAX(); \
#define REQUIRE_PARAMS(N) if(argc < (N)) { \
reply("MSG_MISSING_PARAMS", argv[0]); \
CHANSERV_SYNTAX(); \
{ "peon", "Peon", UL_PEON, '+' },
{ "halfop", "HalfOp", UL_HALFOP, '%' },
{ "op", "Op", UL_OP, '@' },
{ "peon", "Peon", UL_PEON, '+' },
{ "halfop", "HalfOp", UL_HALFOP, '%' },
{ "op", "Op", UL_OP, '@' },
- if((argc < 2) || !IsChannelName(argv[1]))
+ if(argc < 2)
+ {
+ reply("MSG_MISSING_PARAMS", cmd->name);
+ svccmd_send_help_brief(user, chanserv, cmd);
+ return 0;
+ }
+ if(!IsChannelName(argv[1]))
- reply("CSMSG_USER_EXISTS", handle->handle, channel->name, actee->access);
+ reply("CSMSG_USER_EXISTS", handle->handle, channel->name, user_level_name_from_level(actee->access));
- reply("CSMSG_CHANGED_ACCESS", handle->handle, new_access, channel->name);
+ reply("CSMSG_CHANGED_ACCESS", handle->handle, user_level_name_from_level(new_access), channel->name);
- reply("CSMSG_INCORRECT_ACCESS", handle->handle, victim->access, argv[1]);
+ reply("CSMSG_INCORRECT_ACCESS", handle->handle, user_level_name_from_level(victim->access), argv[1]);
&& ((target_handle->opserv_level >= chanserv_conf.nodelete_level) || !IsProtected(channel->channel_info));
if((uData = GetTrueChannelAccess(channel->channel_info, target_handle)))
{
&& ((target_handle->opserv_level >= chanserv_conf.nodelete_level) || !IsProtected(channel->channel_info));
if((uData = GetTrueChannelAccess(channel->channel_info, target_handle)))
{
- reply((helping ? "CSMSG_HELPER_HAS_ACCESS" : "CSMSG_USER_HAS_ACCESS"), prefix, uData->access, channel->name);
+ reply((helping ? "CSMSG_HELPER_HAS_ACCESS" : "CSMSG_USER_HAS_ACCESS"), prefix, user_level_name_from_level(uData->access), channel->name);
/* To prevent possible information leaks, only show infolines
* if the requestor is in the channel or it's their own
* handle. */
/* To prevent possible information leaks, only show infolines
* if the requestor is in the channel or it's their own
* handle. */
- send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, list->lowest, list->highest, list->search);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, user_level_name_from_level(list->lowest), user_level_name_from_level(list->highest), list->search);
- send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, list->lowest, list->highest);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, user_level_name_from_level(list->lowest), user_level_name_from_level(list->highest));
msg = user_find_message(list->user, "MSG_NONE");
send_message_type(4, list->user, list->bot, " %s", msg);
}
msg = user_find_message(list->user, "MSG_NONE");
send_message_type(4, list->user, list->bot, " %s", msg);
}
- send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, lowest, highest, list->search);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, user_level_name_from_level(lowest), user_level_name_from_level(highest), list->search);
- send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, lowest, highest);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, user_level_name_from_level(lowest), user_level_name_from_level(highest));
temp = list->table.contents[--start];
list->table.contents[start] = list->table.contents[0];
tmp_table.contents = list->table.contents + start;
temp = list->table.contents[--start];
list->table.contents[start] = list->table.contents[0];
tmp_table.contents = list->table.contents + start;
- send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, list->lowest, list->highest, list->search);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_SEARCH_HEADER", list->channel->name, user_level_name_from_level(list->lowest), user_level_name_from_level(list->highest), list->search);
- send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, list->lowest, list->highest);
+ send_message(list->user, list->bot, "CSMSG_ACCESS_ALL_HEADER", list->channel->name, user_level_name_from_level(list->lowest), user_level_name_from_level(list->highest));
table_send(list->bot, list->user->nick, 0, NULL, list->table);
if(list->table.length == 1)
{
table_send(list->bot, list->user->nick, 0, NULL, list->table);
if(list->table.length == 1)
{
- ary[0] = strtab(uData->access);
+ /* ary[0] = strtab(uData->access);*/
+ ary[0] = user_level_name_from_level(uData->access);
+ /* TODO: replace above with func that returns static string
+ * of userlevel for that level. eg OP/MANAGER etc. -rubin */