summaryrefslogtreecommitdiff
path: root/media-sound/murmur/files/acl_edit_log.patch
blob: e4a65174314287f912450e5ff0a47126b5b372e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
index 529f287..43ab378 100644
--- a/src/murmur/Messages.cpp
+++ b/src/murmur/Messages.cpp
@@ -1326,19 +1326,70 @@ void Server::msgACL(ServerUser *uSource, MumbleProto::ACL &msg) {
 
 			QHash<QString, QSet<int> > hOldTemp;
 
+			log(uSource, QString("Updating ACL in channel %1").arg(*c));
+			log("old  groups and acl follows:");
+			log("old groups:");
+
 			foreach(g, c->qhGroups) {
+			    log(QString("group: ") + g->qsName + " have following users: ");
+			    int m;
+			    QString member_list;
+			    foreach(m, g->members())
+			      {
+				member_list += getUserName(m);
+				member_list += ", ";
+			      }
+			    member_list.remove(member_list.length() -2, 2);
+			    log(member_list);
+
 				hOldTemp.insert(g->qsName, g->qsTemporary);
 				delete g;
 			}
 
+			log("old acls:");
+
+			QString acls_string;
+
 			foreach(a, c->qlACL)
+			  {
+			    acls_string += a->qsGroup;
+			    acls_string += "|";
+			    acls_string += getUserName(a->iUserId);
+			    acls_string += ":";
+			    QString tmp;
+			    acls_string += tmp.sprintf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", a->pAllow.testFlag(ChanACL::None)?"None,":"", a->pAllow.testFlag(ChanACL::Write)?"Write,":"", \
+							    a->pAllow.testFlag(ChanACL::Traverse)?"Traverse,":"", a->pAllow.testFlag(ChanACL::Enter)?"Enter,":"", a->pAllow.testFlag(ChanACL::Speak)?"Speak,":"", \
+							    a->pAllow.testFlag(ChanACL::MuteDeafen)?"Mute,":"", a->pAllow.testFlag(ChanACL::Move)?"Move,":"", a->pAllow.testFlag(ChanACL::MakeChannel)?"MakeChannel,":"", \
+							    a->pAllow.testFlag(ChanACL::LinkChannel)?"LinkChannel,":"", a->pAllow.testFlag(ChanACL::Whisper)?"Whisper,":"", a->pAllow.testFlag(ChanACL::TextMessage)?"TextMessage,":"", \
+							    a->pAllow.testFlag(ChanACL::MakeTempChannel)?"MakeTempChannel,":"", a->pAllow.testFlag(ChanACL::Kick)?"Kick,":"", a->pAllow.testFlag(ChanACL::Ban)?"Ban,":"", \
+							    a->pAllow.testFlag(ChanACL::Register)?"Register,":"", a->pAllow.testFlag(ChanACL::SelfRegister)?"SelfRegister,":"");
+			    acls_string.remove(acls_string.length() -1, 1);
+			    acls_string += "_";
+			    acls_string += tmp.sprintf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", a->pDeny.testFlag(ChanACL::None)?"None,":"", a->pDeny.testFlag(ChanACL::Write)?"Write,":"", \
+							    a->pDeny.testFlag(ChanACL::Traverse)?"Traverse,":"", a->pDeny.testFlag(ChanACL::Enter)?"Enter,":"", a->pDeny.testFlag(ChanACL::Speak)?"Speak,":"", \
+							    a->pDeny.testFlag(ChanACL::MuteDeafen)?"Mute,":"", a->pDeny.testFlag(ChanACL::Move)?"Move,":"", a->pDeny.testFlag(ChanACL::MakeChannel)?"MakeChannel,":"", \
+							    a->pDeny.testFlag(ChanACL::LinkChannel)?"LinkChannel,":"", a->pDeny.testFlag(ChanACL::Whisper)?"Whisper,":"", a->pDeny.testFlag(ChanACL::TextMessage)?"TextMessage,":"", \
+							    a->pDeny.testFlag(ChanACL::MakeTempChannel)?"MakeTempChannel,":"", a->pDeny.testFlag(ChanACL::Kick)?"Kick,":"", a->pDeny.testFlag(ChanACL::Ban)?"Ban,":"", \
+							    a->pDeny.testFlag(ChanACL::Register)?"Register,":"", a->pDeny.testFlag(ChanACL::SelfRegister)?"SelfRegister,":"");
+			    acls_string.remove(acls_string.length() -1, 1);
+			    acls_string += "; ";
+
+
 				delete a;
+			  }
+			acls_string.remove(acls_string.length() -2, 2);
+			log(acls_string);
+
+			acls_string.clear();
 
 			c->qhGroups.clear();
 			c->qlACL.clear();
 
 			c->bInheritACL = msg.inherit_acls();
 
+			log("new groups and acl follows:");
+			log("new groups:");
+
 			for (int i = 0; i < msg.groups_size(); ++i) {
 				const MumbleProto::ACL_ChanGroup &group = msg.groups(i);
 				g = new Group(c, u8(group.name()));
@@ -1350,9 +1401,23 @@ void Server::msgACL(ServerUser *uSource, MumbleProto::ACL &msg) {
 				for (int j = 0; j < group.remove_size(); ++j)
 					if (!getUserName(group.remove(j)).isEmpty())
 						g->qsRemove << group.remove(j);
+
+				log(QString("group: ") + g->qsName + " have following users: ");
+				int m;
+				QString member_list;
+				foreach(m, g->members())
+				  {
+				    member_list += getUserName(m);
+				    member_list += ", ";
+				  }
+				member_list.remove(member_list.length() -2, 2);
+				log(member_list);
+
 				g->qsTemporary = hOldTemp.value(g->qsName);
 			}
 
+			log("new acls:");
+
 			for (int i = 0; i < msg.acls_size(); ++i) {
 				const MumbleProto::ACL_ChanACL &mpacl = msg.acls(i);
 				if (mpacl.has_user_id() && getUserName(mpacl.user_id()).isEmpty())
@@ -1367,7 +1432,32 @@ void Server::msgACL(ServerUser *uSource, MumbleProto::ACL &msg) {
 					a->qsGroup = u8(mpacl.group());
 				a->pDeny = static_cast<ChanACL::Permissions>(mpacl.deny()) & ChanACL::All;
 				a->pAllow = static_cast<ChanACL::Permissions>(mpacl.grant()) & ChanACL::All;
+				//TODO: log acls
+				acls_string += a->qsGroup;
+				acls_string += "|";
+				acls_string += getUserName(a->iUserId);
+				acls_string += ":";
+				QString tmp;
+				acls_string += tmp.sprintf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", a->pAllow.testFlag(ChanACL::None)?"None,":"", a->pAllow.testFlag(ChanACL::Write)?"Write,":"", \
+								a->pAllow.testFlag(ChanACL::Traverse)?"Traverse,":"", a->pAllow.testFlag(ChanACL::Enter)?"Enter,":"", a->pAllow.testFlag(ChanACL::Speak)?"Speak,":"", \
+								a->pAllow.testFlag(ChanACL::MuteDeafen)?"Mute,":"", a->pAllow.testFlag(ChanACL::Move)?"Move,":"", a->pAllow.testFlag(ChanACL::MakeChannel)?"MakeChannel,":"", \
+								a->pAllow.testFlag(ChanACL::LinkChannel)?"LinkChannel,":"", a->pAllow.testFlag(ChanACL::Whisper)?"Whisper,":"", a->pAllow.testFlag(ChanACL::TextMessage)?"TextMessage,":"", \
+								a->pAllow.testFlag(ChanACL::MakeTempChannel)?"MakeTempChannel,":"", a->pAllow.testFlag(ChanACL::Kick)?"Kick,":"", a->pAllow.testFlag(ChanACL::Ban)?"Ban,":"", \
+								a->pAllow.testFlag(ChanACL::Register)?"Register,":"", a->pAllow.testFlag(ChanACL::SelfRegister)?"SelfRegister,":"");
+				acls_string.remove(acls_string.length() -1, 1);
+				acls_string += "_";
+				acls_string += tmp.sprintf("%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", a->pDeny.testFlag(ChanACL::None)?"None,":"", a->pDeny.testFlag(ChanACL::Write)?"Write,":"", \
+								a->pDeny.testFlag(ChanACL::Traverse)?"Traverse,":"", a->pDeny.testFlag(ChanACL::Enter)?"Enter,":"", a->pDeny.testFlag(ChanACL::Speak)?"Speak,":"", \
+								a->pDeny.testFlag(ChanACL::MuteDeafen)?"Mute,":"", a->pDeny.testFlag(ChanACL::Move)?"Move,":"", a->pDeny.testFlag(ChanACL::MakeChannel)?"MakeChannel,":"", \
+								a->pDeny.testFlag(ChanACL::LinkChannel)?"LinkChannel,":"", a->pDeny.testFlag(ChanACL::Whisper)?"Whisper,":"", a->pDeny.testFlag(ChanACL::TextMessage)?"TextMessage,":"", \
+								a->pDeny.testFlag(ChanACL::MakeTempChannel)?"MakeTempChannel,":"", a->pDeny.testFlag(ChanACL::Kick)?"Kick,":"", a->pDeny.testFlag(ChanACL::Ban)?"Ban,":"", \
+								a->pDeny.testFlag(ChanACL::Register)?"Register,":"", a->pDeny.testFlag(ChanACL::SelfRegister)?"SelfRegister,":"");
+				acls_string.remove(acls_string.length() -1, 1);
+				acls_string += ", ";
 			}
+			acls_string.remove(acls_string.length() -2, 2);
+			log(acls_string);
+
 		}
 
 		clearACLCache();