changeset 1260:b4ccc5b2a6de

Add command /room unban ("unban jid" is actually the same as "affil jid none")
author Mikael Berthe <mikael@lilotux.net>
date Wed, 27 Jun 2007 23:03:22 +0200
parents c5c09f8f60b0
children 704adf4df2d0
files mcabber/doc/help/de/hlp_room.txt mcabber/doc/help/en/hlp_room.txt mcabber/doc/help/fr/hlp_room.txt mcabber/doc/help/nl/hlp_room.txt mcabber/doc/help/pl/hlp_room.txt mcabber/doc/help/ru/hlp_room.txt mcabber/doc/help/uk/hlp_room.txt mcabber/src/commands.c
diffstat 8 files changed, 40 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/doc/help/de/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/de/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -26,7 +26,9 @@
 /room whois nick
  Zeigt Infos über "nick" bzgl. des MUC an
 /room ban jid [grund]
- Verbannt den User mit der jid mit dem angegeben Grund
+ Verbannt die JID mit einem (optionalem) Grund
+/room unban jid
+ Entbanne die JID für den aktiven Raum
 /room invite jid [grund]
  Lädt die jid [mit einem Grund] in den gerade aktiven MUC ein
 /room kick nick [grund]
--- a/mcabber/doc/help/en/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/en/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Display MUC information about "nick"
 /room ban jid [reason]
  Ban jid from the current room
+/room unban jid
+ Unban jid from the current room
 /room invite jid [reason]
  Invite jid to the current room
 /room kick nick [reason]
--- a/mcabber/doc/help/fr/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/fr/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Affiche les informations MUC sur "pseudo"
 /room ban jid [raison]
  Bannit l'utilisateur jid du salon
+/room unban jid
+ Supprime le ban sur l'utilisateur jid dans le salon
 /room invite jid [raison]
  Invite l'utilisateur jid dans le salon
 /room kick pseudo [raison]
--- a/mcabber/doc/help/nl/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/nl/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Toon MUC informatie over "nick"
 /room ban jid [reden]
  Verban jid uit de huidige chatroom
+/room unban jid
+ Verwijder de ban van jid in de huidige chatroom
 /room invite jid [reden]
  Nodig jid uit in de huidige chatroom
 /room kick nick [reden]
--- a/mcabber/doc/help/pl/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/pl/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Wyświetla informację MUC osoby "nick"
 /room ban jid [powód]
  Banuje jid z powodu "powód" (opcjonalnie)
+/room unban jid
+ Odbanowanie jid z aktualnego pokoju
 /room invite jid [powód]
  Zaprasza osobę jid do aktualnego pokoju z powodu "powód" (opcjonalnie)
 /room kick nick [powód]
--- a/mcabber/doc/help/ru/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/ru/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Показать информацию о пользователе "nick"
 /room ban jid [reason]
  Наложить запрет (забанить) пользователя "jid" в текущей конференции
+/room unban jid
+ Unban jid from the current room
 /room invite jid [reason]
  Пригласить пользователя "jid" в текущую конференцию
 /room kick nick [reason]
--- a/mcabber/doc/help/uk/hlp_room.txt	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/doc/help/uk/hlp_room.txt	Wed Jun 27 23:03:22 2007 +0200
@@ -27,6 +27,8 @@
  Друкує інформацію про "прізвисько".
 /room ban jid [причина]
  Вибанити jid з кімнати.
+/room unban jid
+ Unban jid from the current room
 /room invite jid [причина]
  Запросити jid до поточної кімнати.
 /room kick прізвисько [причина]
--- a/mcabber/src/commands.c	Wed Jun 27 22:13:10 2007 +0200
+++ b/mcabber/src/commands.c	Wed Jun 27 23:03:22 2007 +0200
@@ -225,6 +225,7 @@
   compl_add_category_word(COMPL_ROOM, "remove");
   compl_add_category_word(COMPL_ROOM, "role");
   compl_add_category_word(COMPL_ROOM, "topic");
+  compl_add_category_word(COMPL_ROOM, "unban");
   compl_add_category_word(COMPL_ROOM, "unlock");
   compl_add_category_word(COMPL_ROOM, "whois");
 
@@ -2018,6 +2019,27 @@
   free_arg_lst(paramlst);
 }
 
+// The expected argument is a Jabber id
+static void room_unban(gpointer bud, char *arg)
+{
+  gchar *fjid = arg;
+  gchar *jid_utf8;
+  struct role_affil ra;
+  const char *roomid = buddy_getjid(bud);
+
+  if (!fjid || !*fjid) {
+    scr_LogPrint(LPRINT_NORMAL, "Please specify a Jabber ID.");
+    return;
+  }
+
+  ra.type = type_affil;
+  ra.val.affil = affil_none;
+
+  jid_utf8 = to_utf8(fjid);
+  jb_room_setattrib(roomid, jid_utf8, NULL, ra, NULL);
+  g_free(jid_utf8);
+}
+
 // The expected argument is a nickname
 static void room_kick(gpointer bud, char *arg)
 {
@@ -2381,6 +2403,9 @@
   } else if (!strcasecmp(subcmd, "ban"))  {
     if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)
       room_ban(bud, arg);
+  } else if (!strcasecmp(subcmd, "unban"))  {
+    if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)
+      room_unban(bud, arg);
   } else if (!strcasecmp(subcmd, "kick"))  {
     if ((arg = check_room_subcommand(arg, TRUE, bud)) != NULL)
       room_kick(bud, arg);