Property changes on: . ___________________________________________________________________ Added: svn:ignore + LFSLapper.csproj LFSLapper.csproj.user LFSLapper.sln LFSLapper.suo bin obj Index: LFSClient/managePacket.cs =================================================================== --- LFSClient/managePacket.cs (revision 10) +++ LFSClient/managePacket.cs (working copy) @@ -613,7 +613,7 @@ { userGroups ugroup = new userGroups( myDebug ); ugroup.addUserFromFile("superUsers", newCfg.varsLapper.WorkingDir + "/" + newCfg.varsLapper.superUsers); - if (ugroup.userExist("superUsers", currInfoPlayer.userName.ToLower())) + if ((ugroup.userExist("superUsers", currInfoPlayer.userName.ToLower())) || (currInfoPlayer.UCID == 0)) { this.TermProg = true; SendMsgToConnection(currInfoPlayer.UCID, "Go to stand by mode!"); @@ -628,7 +628,7 @@ { userGroups ugroup = new userGroups( myDebug ); ugroup.addUserFromFile("superUsers", newCfg.varsLapper.WorkingDir + "/" + newCfg.varsLapper.superUsers); - if (ugroup.userExist("superUsers", currInfoPlayer.userName.ToLower())) + if ((ugroup.userExist("superUsers", currInfoPlayer.userName.ToLower())) || (currInfoPlayer.UCID == 0)) { this.TermProg = true; this.RestartProg = true; Index: LFSClient/parseEvent.cs =================================================================== --- LFSClient/parseEvent.cs (revision 10) +++ LFSClient/parseEvent.cs (working copy) @@ -1175,6 +1175,10 @@ testArgs(ident, "SS", args); uGroup.addUser(args[0].ToString(), args[1].ToString()); break; + case "savegrouptofile": + testArgs(ident, "SS", args); + uGroup.saveUsersToFile(args[0].ToString(),newCfg.varsLapper.WorkingDir + "/" + args[1].ToString()); + break; case "usergroupfromfile": testArgs(ident, "SS", args); uGroup.clear( args[0].ToString()); @@ -1184,6 +1188,11 @@ testArgs(ident, "SS", args); uGroup.removeUser(args[0].ToString(), args[1].ToString()); break; + case "listgroupusers": + testArgs(ident, "S", args); + val.typVal = GLScript.typVal.str; + val.sval = quote(uGroup.listUsersInGroup(args[0].ToString())); + return; case "cleargroup": testArgs(ident, "S", args); uGroup.clear(args[0].ToString()); Index: LFSListen/Listen.cs =================================================================== --- LFSListen/Listen.cs (revision 10) +++ LFSListen/Listen.cs (working copy) @@ -260,7 +260,7 @@ } else if(mso.message.ToLower() == "!start"){ ugroup.addUserFromFile("superUsers", this.workingDir + "/" + this.superUsers); - if (listOfPlayers.ContainsKey(mso.UCID) && ugroup.userExist("superUsers", (string)listOfPlayers[mso.UCID])) + if ( (listOfPlayers.ContainsKey(mso.UCID) && ugroup.userExist("superUsers", (string)listOfPlayers[mso.UCID])) || (mso.UCID == 0) ) { SendMsgToConnection(mso.UCID, "Go to working mode!"); Index: userGroups.cs =================================================================== --- userGroups.cs (revision 10) +++ userGroups.cs (working copy) @@ -102,5 +102,42 @@ } return false; } + public string listUsersInGroup(string group) + { + string userList = ""; + if (listOfGroups.Contains(group)) + { + Hashtable currGroup = (Hashtable)listOfGroups[group]; + + foreach (string userKey in currGroup.Keys) + { + userList = userList + userKey + ','; + } + } + return (userList); + } + public void saveUsersToFile(string group, string filepath) + { + StreamWriter sw; + if (!listOfGroups.Contains(group)) + { + listOfGroups[group] = new Hashtable(); + } + Hashtable currGroup = (Hashtable)listOfGroups[group]; + try + { + using ( sw = new System.IO.StreamWriter(filepath)) + { + foreach (string userKey in currGroup.Keys) + { + sw.WriteLine(userKey); + } + sw.Close(); + } + } + catch{ + myDebug.WriteLine("err","Can't rewrite group file : " + filepath); + } + } } }