コード例 #1
0
ファイル: StdIO.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus PushSTDIOData(SQLLib sql, Push_Stdio_StdIn stdin, NetworkConnectionInfo ni, string MachineID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (stdin == null)
            {
                ni.Error   = "Missing data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            string sess = "stdio-" + stdin.SessionID;

            PushData p = new PushData();

            p.Action          = "stdin";
            p.ReplyID         = sess;
            p.AdditionalData1 = JsonConvert.SerializeObject(stdin);

            PushServiceHelper.SendPushService(MachineID, p, 0);

            return(RESTStatus.Success);
        }
コード例 #2
0
ファイル: UsersMGMT.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus DeleteUser(SQLLib sql, NetString User, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Fail);
            }

            if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM Users WHERE Username=@u",
                                                  new SQLParam("@u", User.Data))) == 0)
            {
                ni.Error   = "Invalid User";
                ni.ErrorID = ErrorFlags.InvalidID;
                return(RESTStatus.Fail);
            }

            if (User.Data.ToLower().Trim() == "root")
            {
                ni.Error   = "Invalid User";
                ni.ErrorID = ErrorFlags.InvalidID;
                return(RESTStatus.Fail);
            }

            sql.ExecSQL("DELETE FROM Users WHERE Username=@u",
                        new SQLParam("@u", User.Data));

            return(RESTStatus.Success);
        }
コード例 #3
0
        public RESTStatus GetFileList(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            Int64List           = new NetInt64ListSigned();
            Int64List.data      = new NetInt64List2();
            Int64List.data.data = new List <long>();

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("SELECT ID FROM FileTransfers WHERE MachineID=@mid AND ((Size=ProgressSize AND Direction=0) OR (Direction=1)) ORDER BY RequestOnly ASC, ID ASC",
                                                     new SQLParam("@mid", ni.Username));
                while (dr.Read())
                {
                    Int64List.data.data.Add(Convert.ToInt64(dr["ID"]));
                }
                dr.Close();
            }

            if (Certificates.Sign(Int64List, SettingsManager.Settings.UseCertificate) == false)
            {
                FoxEventLog.WriteEventLog("Cannot sign policy with Certificate " + SettingsManager.Settings.UseCertificate, System.Diagnostics.EventLogEntryType.Warning);
                ni.Error   = "Cannot sign policy with Certificate " + SettingsManager.Settings.UseCertificate;
                ni.ErrorID = ErrorFlags.CannotSign;
                return(RESTStatus.ServerError);
            }

            return(RESTStatus.Success);
        }
コード例 #4
0
ファイル: UsersMGMT.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus AddUser(SQLLib sql, NetString User, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Fail);
            }

            if (string.IsNullOrWhiteSpace(User.Data) == true)
            {
                ni.Error   = "Missing username";
                ni.ErrorID = ErrorFlags.InvalidID;
                return(RESTStatus.Fail);
            }

            if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM Users WHERE Username=@u",
                                                  new SQLParam("@u", User.Data.Trim()))) != 0)
            {
                ni.Error   = "User already exists";
                ni.ErrorID = ErrorFlags.InvalidID;
                return(RESTStatus.Fail);
            }

            sql.InsertMultiData("Users",
                                new SQLData("Username", User.Data.Trim()),
                                new SQLData("Name", "new user"),
                                new SQLData("Permissions", 0),
                                new SQLData("Password", ""));

            return(RESTStatus.Success);
        }
コード例 #5
0
ファイル: UsersMGMT.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus ListUsers(SQLLib sql, object Dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Fail);
            }

            UserLists      = new UserDetailsList();
            UserLists.List = new List <UserDetails>();

            SqlDataReader dr = sql.ExecSQLReader("SELECT * FROM Users ORDER BY Username");

            while (dr.Read())
            {
                UserDetails d = new UserDetails();
                d.EMail              = Convert.ToString(dr["EMail"]);
                d.LDAPUsername       = Convert.ToString(dr["LDAPUsername"]);
                d.MustChangePassword = Convert.ToBoolean(dr["MustChangePassword"]);
                d.Name        = Convert.ToString(dr["Name"]);
                d.Permissions = Convert.ToInt64(dr["Permissions"]);
                d.UseLDAP     = Convert.ToBoolean(dr["UseLDAP"]);
                d.Username    = Convert.ToString(dr["Username"]);
                UserLists.List.Add(d);
            }
            dr.Close();
            return(RESTStatus.Success);
        }
コード例 #6
0
ファイル: Status.cs プロジェクト: VulpesSARL/Fox-SDC
 public RESTStatus GetLastError(SQLLib sql, object foo, NetworkConnectionInfo ni)
 {
     Err         = new ErrorInfo();
     Err.Error   = ni.Error;
     Err.ErrorID = (int)ni.ErrorID;
     return(RESTStatus.Success);
 }
コード例 #7
0
        public RESTStatus RestartClientForced(SQLLib sql, object dummy, NetworkConnectionInfo ni, string MachineID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            string guid = Guid.NewGuid().ToString();

            PushData p = new PushData();

            p.Action  = "restartsystemforced";
            p.ReplyID = guid;

            PushServiceHelper.SendPushService(MachineID, p, 0);
            PushDataResponse resp = PushServiceHelper.PopResponse(MachineID, 0, guid);

            if (resp == null)
            {
                ni.Error   = "No response";
                ni.ErrorID = ErrorFlags.NoData;
                return(RESTStatus.NoContent);
            }

            Dummy      = new NetString();
            Dummy.Data = "OK";

            return(RESTStatus.Success);
        }
コード例 #8
0
ファイル: Chat.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus GetPendingChatMessages(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            string MachineID = ni.Username;

            ChatList2      = new PushChatMessageList();
            ChatList2.List = new List <PushChatMessage>();

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("select * from Chats where [Read]=0 AND MachineID=@m AND ToClient=1 ORDER BY DT ASC",
                                                     new SQLParam("@m", MachineID));
                while (dr.Read())
                {
                    PushChatMessage pch = new PushChatMessage();
                    pch.ID   = Convert.ToInt64(dr["ID"]);
                    pch.DT   = SQLLib.GetDTUTC(dr["DT"]);
                    pch.Name = Convert.ToString(dr["Name"]);
                    pch.Text = Convert.ToString(dr["Text"]);
                    ChatList2.List.Add(pch);
                }
                dr.Close();
            }

            return(RESTStatus.Success);
        }
コード例 #9
0
ファイル: RenderReport.cs プロジェクト: VulpesSARL/Fox-SDC
        public static byte[] RenderMachineReport(SQLLib sql, List <string> MachineIDs, DateTime?From, DateTime?To, ReportingFlagsPaper ReportingPaper, string Output = "PDF")
        {
            byte[] ReportFile = GetReportPaperData(sql, "COMPUTERREPORT", Resources.Computer_Report);

            ReportBook RepBook = new ReportBook();

            foreach (string MachineID in MachineIDs)
            {
                Dictionary <string, object> Params = new Dictionary <string, object>();
                Params.Add("MachineID", MachineID);
                Params.Add("From", From);
                Params.Add("To", To);
                Params.Add("ReportingPaper", (int)ReportingPaper);

                RepBook.ReportSources.Add(RenderReportData(ReportFile, Params));
            }

            InstanceReportSource instance = new InstanceReportSource();

            instance.ReportDocument = RepBook;

            ReportProcessor reportprocessor = new ReportProcessor();
            RenderingResult result          = reportprocessor.RenderReport(Output, instance, null);

            return(result.DocumentBytes);
        }
コード例 #10
0
        public RESTStatus Push10(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            PushData data = PushServiceHelper.WaitForPush(ni, 10);

            if (data == null)
            {
                ni.Error   = "Push Service Error";
                ni.ErrorID = ErrorFlags.SystemError;
                return(RESTStatus.ServerError);
            }

            ReturnData      = new PushDataRoot();
            ReturnData.Data = data;

            if (Certificates.Sign(ReturnData, SettingsManager.Settings.UseCertificate) == false)
            {
                ni.Error   = "Push Service Signing Error";
                ni.ErrorID = ErrorFlags.SystemError;
                return(RESTStatus.ServerError);
            }

            return(RESTStatus.Success);
        }
コード例 #11
0
        public RESTStatus PushResponseB(SQLLib sql, PushDataResponse pdr, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (pdr == null)
            {
                ni.Error   = "Invalid data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            if (ni.PushChannel == null)
            {
                ni.Error   = "Too early";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            if (PushServiceHelper.PushResponse(ni.Username, pdr, ni.PushChannel.Value, true) == false)
            {
                ni.Error   = "Cannot push";
                ni.ErrorID = ErrorFlags.SystemError;
                return(RESTStatus.ServerError);
            }

            return(RESTStatus.Success);
        }
コード例 #12
0
        public RESTStatus GetFileDataMgmt(SQLLib sql, object dummy, NetworkConnectionInfo ni, Int64 ID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("SELECT COUNT(*) FROM FileTransfers WHERE ID=@id",
                                                     new SQLParam("@id", ID));
                if (dr.HasRows == false)
                {
                    ni.Error   = "Not found";
                    ni.ErrorID = ErrorFlags.InvalidID;
                    dr.Close();
                    return(RESTStatus.NotFound);
                }

                dr.Read();

                UploadedData2 = FillUploadData(dr);

                dr.Close();
            }

            return(RESTStatus.Success);
        }
コード例 #13
0
ファイル: UsersMGMT.cs プロジェクト: VulpesSARL/Fox-SDC
 public RESTStatus GetUser(SQLLib sql, object Dummy, NetworkConnectionInfo ni)
 {
     CurrentUser          = new UserInfo();
     CurrentUser.Username = ni.Username;
     CurrentUser.Name     = ni.Name;
     return(RESTStatus.Success);
 }
コード例 #14
0
ファイル: Status.cs プロジェクト: VulpesSARL/Fox-SDC
 public RESTStatus GetWebsocketURL(SQLLib sql, object foo, NetworkConnectionInfo ni)
 {
     WSURL = new NetString()
     {
         Data = Settings.Default.WSPublishURL
     };
     return(RESTStatus.Success);
 }
コード例 #15
0
        public RESTStatus ReportUsersList(SQLLib sql, UsersList users, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (users == null)
            {
                ni.Error   = "Invalid Items";
                ni.ErrorID = ErrorFlags.InvalidValue;
                return(RESTStatus.Fail);
            }

            users.MachineID = ni.Username;

            lock (ni.sqllock)
            {
                if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM ComputerAccounts WHERE MachineID=@m",
                                                      new SQLParam("@m", users.MachineID))) == 0)
                {
                    ni.Error   = "Invalid MachineID";
                    ni.ErrorID = ErrorFlags.InvalidValue;
                    return(RESTStatus.NotFound);
                }
            }

            lock (ni.sqllock)
            {
                sql.ExecSQL("DELETE FROM UsersList WHERE MachineID=@id", new SQLParam("@id", users.MachineID));
            }

            if (users.Users == null)
            {
                users.Users = new Dictionary <string, string>();
            }

            foreach (KeyValuePair <string, string> kvp in users.Users)
            {
                if (string.IsNullOrWhiteSpace(kvp.Key) == true || string.IsNullOrWhiteSpace(kvp.Value) == true)
                {
                    continue;
                }

                lock (ni.sqllock)
                {
                    sql.InsertMultiData("UsersList",
                                        new SQLData("MachineID", users.MachineID),
                                        new SQLData("SID", kvp.Key),
                                        new SQLData("Username", kvp.Value));
                }
            }

            return(RESTStatus.Success);
        }
コード例 #16
0
 static bool FileExistsCompleted(SQLLib sql, Int64 id)
 {
     if (Convert.ToInt32(sql.ExecSQLScalar("Select count(*) FROM FileTransfers WHERE ID=@id AND Size=ProgressSize",
                                           new SQLParam("@id", id))) == 0)
     {
         return(false);
     }
     return(true);
 }
コード例 #17
0
        public RESTStatus TestFn(SQLLib sql, HttpListenerRequest request, HttpListenerResponse response, object dummy, NetworkConnectionInfo ni)
        {
            TestTxt = "Beim nächsten Toun ass et " + DateTime.Now.ToString("HH:mm") + " - Biip";
            byte[] buffer = Encoding.UTF8.GetBytes(TestTxt);

            response.AddHeader("Content-Type", "text/plain; charset=UTF-8");
            response.OutputStream.Write(buffer, 0, buffer.Length);

            return(RESTStatus.Success);
        }
コード例 #18
0
ファイル: RenderReport.cs プロジェクト: VulpesSARL/Fox-SDC
        //Telerik Supported output formats: https://docs.telerik.com/reporting/configuring-rendering-extensions

        public static byte[] GetReportPaperData(SQLLib sql, string Paper, byte[] Default)
        {
            object d = sql.ExecSQLScalar("select [data] from ReportPapers where [ID]=@ID",
                                         new SQLParam("@id", Paper));

            if (d is DBNull || d is null)
            {
                return(Default);
            }
            return((byte[])d);
        }
コード例 #19
0
ファイル: Status.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus GetSettings(SQLLib sql, object foo, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            Settingss = SettingsManager.Settings;
            return(RESTStatus.Success);
        }
コード例 #20
0
 void InsertSupplData(SQLLib sql, string MachineID, int IfIndex, int Type, List <string> lst)
 {
     for (int i = 0; i < lst.Count; i++)
     {
         sql.InsertMultiData("NetworkConfigSuppl",
                             new SQLData("MachineID", MachineID),
                             new SQLData("InterfaceIndex", IfIndex),
                             new SQLData("Type", Type),
                             new SQLData("Order", i),
                             new SQLData("Data", lst[i] == null ? "" : lst[i].Trim()));
     }
 }
コード例 #21
0
        public RESTStatus GetContractInfos(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            CI       = new ContractInfosList();
            CI.Items = new List <ContractInfos>();

            if (Settings.Default.UseContract == false)
            {
                return(RESTStatus.Success);
            }
            lock (ni.sqllock)
            {
                SqlDataReader dr = sql.ExecSQLReader("select * from contracts order by ContractID");
                while (dr.Read())
                {
                    ContractInfos i = new ContractInfos();
                    i.IncludedComputers = new List <ComputerData>();
                    sql.LoadIntoClass(dr, i);
                    CI.Items.Add(i);
                }
                dr.Close();
            }

            foreach (ContractInfos i in CI.Items)
            {
                List <string> Machines = new List <string>();
                lock (ni.sqllock)
                {
                    SqlDataReader dr = sql.ExecSQLReader("select MachineID from ComputerAccounts where ContractID=@c",
                                                         new SQLParam("@c", i.ContractID));
                    while (dr.Read())
                    {
                        Machines.Add(Convert.ToString(dr["MachineID"]));
                    }
                    dr.Close();
                }

                foreach (string M in Machines)
                {
                    ComputerData c = Computers.GetComputerDetail(sql, M);
                    i.IncludedComputers.Add(c);
                }
            }

            return(RESTStatus.Success);
        }
コード例 #22
0
ファイル: RenderReport.cs プロジェクト: VulpesSARL/Fox-SDC
        public static byte[] RenderMachineReport(SQLLib sql, string MachineID, DateTime?From, DateTime?To, ReportingFlagsPaper ReportingPaper, string Output = "PDF")
        {
            byte[] ReportFile = GetReportPaperData(sql, "COMPUTERREPORT", Resources.Computer_Report);

            Dictionary <string, object> Params = new Dictionary <string, object>();

            Params.Add("MachineID", MachineID);
            Params.Add("From", From);
            Params.Add("To", To);
            Params.Add("ReportingPaper", (int)ReportingPaper);

            return(RenderReportData(ReportFile, Params, Output));
        }
コード例 #23
0
ファイル: Status.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus GetClientSettings(SQLLib sql, object foo, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            ClientSettings = new ClientSettings();
            ClientSettings.AdministratorName = SettingsManager.Settings.AdministratorName;
            ClientSettings.MessageDisclaimer = SettingsManager.Settings.MessageDisclaimer;
            return(RESTStatus.Success);
        }
コード例 #24
0
        public RESTStatus GetPaperList(SQLLib sql, object dummy, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            RetListPaper       = new NetStringList();
            RetListPaper.Items = SupportedNames;

            return(RESTStatus.Success);
        }
コード例 #25
0
        public RESTStatus GetPaperTemplate(SQLLib sql, object dummy, NetworkConnectionInfo ni, string Paper)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (string.IsNullOrWhiteSpace(Paper) == true)
            {
                ni.Error   = "Invalid data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            Paper = Paper.ToUpper().Trim();

            if (SupportedNames.Contains(Paper) == false)
            {
                ni.Error   = "Invalid data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            RetPaper      = new NetByte();
            RetPaper.Data = null;

            lock (ni.sqllock)
            {
                object o = sql.ExecSQLScalar("SELECT [data] from ReportPapers WHERE ID=@id",
                                             new SQLParam("@id", Paper));
                if (o is DBNull || o is null)
                {
                    switch (Paper)
                    {
                    case "COMPUTERREPORT":
                        RetPaper.Data = Resources.Computer_Report;
                        break;
                    }
                }
                else
                {
                    RetPaper.Data = (byte[])o;
                }
            }

            return(RESTStatus.Success);
        }
コード例 #26
0
        public RESTStatus CancelUploadAgentToServer(SQLLib sql, object dummy, NetworkConnectionInfo ni, Int64 ID)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            lock (ni.sqllock)
            {
                if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM FileTransfers WHERE ID=@id AND MachineID=@mid AND Direction in (0,1)",
                                                      new SQLParam("@mid", ni.Username),
                                                      new SQLParam("@id", ID))) == 0)
                {
                    ni.Error   = "Invalid ID";
                    ni.ErrorID = ErrorFlags.InvalidData;
                    return(RESTStatus.Fail);
                }
            }

            string Filename = null;

            lock (ni.sqllock)
            {
                Filename = Settings.Default.DataPath + Convert.ToString(sql.ExecSQLScalar("SELECT ServerFile FROM FileTransfers WHERE ID=@id AND MachineID=@mid",
                                                                                          new SQLParam("@mid", ni.Username),
                                                                                          new SQLParam("@id", ID)));
            }

            if (File.Exists(Filename) == true)
            {
                try
                {
                    CommonUtilities.SpecialDeleteFile(Filename);
                }
                catch
                { }
            }

            lock (ni.sqllock)
            {
                sql.ExecSQLScalar("DELETE FROM FileTransfers WHERE ID=@id AND MachineID=@mid",
                                  new SQLParam("@mid", ni.Username),
                                  new SQLParam("@id", ID));
            }

            return(RESTStatus.Success);
        }
コード例 #27
0
        public RESTStatus CloseWSServerMappingPort(SQLLib sql, NetString GUID, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            RemoteNetworkConnectionWSCrosser.CloseSession(ni.Username, GUID.Data);

            Res        = new PushConnectNetworkResult();
            Res.Result = 0;
            return(RESTStatus.Success);
        }
コード例 #28
0
ファイル: StdIO.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus PopSTDIOData(SQLLib sql, NetString StdIOSession, NetworkConnectionInfo ni, string MachineID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            if (StdIOSession == null)
            {
                ni.Error   = "Missing Session Data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            if (string.IsNullOrWhiteSpace(StdIOSession.Data) == true)
            {
                ni.Error   = "Missing Session Data";
                ni.ErrorID = ErrorFlags.InvalidData;
                return(RESTStatus.Fail);
            }

            string           sess = "stdio-" + StdIOSession.Data;
            PushDataResponse resp = PushServiceHelper.PopResponse(MachineID, 0, sess, true);

            if (resp == null)
            {
                res           = new Push_Stdio_StdOut();
                res.SessionID = StdIOSession.Data;
                res.State     = PushStdoutState.Timeout;
                return(RESTStatus.NoContent);
            }

            try
            {
                res = JsonConvert.DeserializeObject <Push_Stdio_StdOut>(resp.Data.ToString());
            }
            catch
            {
                res           = new Push_Stdio_StdOut();
                res.SessionID = StdIOSession.Data;
                res.State     = PushStdoutState.InternalError;
                return(RESTStatus.NoContent);
            }

            return(RESTStatus.Success);
        }
コード例 #29
0
ファイル: UsersMGMT.cs プロジェクト: VulpesSARL/Fox-SDC
        public RESTStatus ChangeUser(SQLLib sql, UserDetailsPassword User, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Fail);
            }

            if (Convert.ToInt32(sql.ExecSQLScalar("SELECT COUNT(*) FROM Users WHERE Username=@u",
                                                  new SQLParam("@u", User.Username))) == 0)
            {
                ni.Error   = "Invalid User";
                ni.ErrorID = ErrorFlags.InvalidID;
                return(RESTStatus.Fail);
            }

            if (string.IsNullOrWhiteSpace(User.NewPassword) == false)
            {
                if (MeetPasswordPolicy(User.NewPassword) == false)
                {
                    ni.Error   = "Password policy not met";
                    ni.ErrorID = ErrorFlags.PWPolicyNotMet;
                    return(RESTStatus.Fail);
                }
                string PWMD5REQ = Convert.ToBase64String(Encoding.Unicode.GetBytes(User.NewPassword));
                sql.ExecSQL("UPDATE Users SET Password=@p WHERE Username=@u",
                            new SQLParam("@u", User.Username),
                            new SQLParam("@p", PWMD5REQ));
            }

            if (User.Username.ToLower().Trim() == "root")
            {
                User.Permissions = SQLTest.AllPermissions;
            }

            sql.ExecSQL("UPDATE Users SET Name=@n, Permissions=@p, MustChangePassword=@mchg,EMail=@email,UseLDAP=@UseLDAP,LDAPUsername=@LDAPUsername WHERE Username=@u",
                        new SQLParam("@u", User.Username),
                        new SQLParam("@n", User.Name),
                        new SQLParam("@p", User.Permissions),
                        new SQLParam("@mchg", User.MustChangePassword),
                        new SQLParam("@email", User.EMail),
                        new SQLParam("@useldap", User.UseLDAP),
                        new SQLParam("@LDAPUsername", User.LDAPUsername));

            return(RESTStatus.Success);
        }
コード例 #30
0
        public RESTStatus PushNetworkDataCreateConnection(SQLLib sql, PushConnectNetwork data, NetworkConnectionInfo ni, string MachineID)
        {
            if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

            string SessionConnectionGUID = RemoteNetworkConnectionWSCrosser.CreateSession(ni.Username, MachineID);

            data.SessionID = SessionConnectionGUID;

            string sess = Guid.NewGuid().ToString();

            PushData p = new PushData();

            p.Action          = "netcreatedata2";
            p.ReplyID         = sess;
            p.AdditionalData1 = JsonConvert.SerializeObject(data);

            PushServiceHelper.SendPushService(MachineID, p, 1);
            PushDataResponse resp = PushServiceHelper.PopResponse(MachineID, 1, sess);

            if (resp == null)
            {
                ni.Error   = "No response";
                ni.ErrorID = ErrorFlags.NoData;
                RemoteNetworkConnectionWSCrosser.CloseSession(SessionConnectionGUID);
                return(RESTStatus.NoContent);
            }

            try
            {
                res1 = JsonConvert.DeserializeObject <PushConnectNetworkResult>(resp.Data.ToString());
            }
            catch
            {
                ni.Error   = "Faulty data";
                ni.ErrorID = ErrorFlags.NoData;
                RemoteNetworkConnectionWSCrosser.CloseSession(SessionConnectionGUID);
                return(RESTStatus.NoContent);
            }

            return(RESTStatus.Success);
        }
コード例 #31
0
ファイル: frmTest.cs プロジェクト: michaelwechter/BE-ESUBMIT
        private void button3_Click( object sender, EventArgs e )
        {
            try
                {
                SqlLib.SQLLib sql = new SQLLib();

                ////read in customer
                //System.Data.DataSet dscust = new DataSet();
                //if (sql.ExecRsNB ("Select * from Customer",CommandType.Text ,ref dscust,null,"dbMSSql",false) == false)
                //    {
                //    int asdf = 0;
                //    }
                ////write customer to mysql
                //try
                //    {
                //    StringBuilder ssql = new StringBuilder();
                //    ssql.Append( "Insert into Customer (eSubmitId,CustName,CustAddress,CustCity,CustState,CustZip) Values " );
                //    for (int rec = 0; rec < dscust.Tables[0].Rows.Count; rec++)
                //        {
                //        if (rec > 0) { ssql.Append( "," ); } //add comma between multiple insert row
                //        ssql.Append( "(" ); // + dscust.Tables[0].Rows[rec]["CustomerId"] + "," );
                //        ssql.Append("'"+ dscust.Tables[0].Rows[rec]["CertnaId"] + "'," );
                //        ssql.Append( "'" + dscust.Tables[0].Rows[rec]["CustName"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'"+dscust.Tables[0].Rows[rec]["CustAddress"].ToString().Replace("'","") + "'," );
                //        ssql.Append( "'"+dscust.Tables[0].Rows[rec]["CustCity"] + "'," );
                //        ssql.Append("'"+ dscust.Tables[0].Rows[rec]["CustState"] + "'," );
                //        ssql.Append("'"+ dscust.Tables[0].Rows[rec]["CustZip"] +"'");
                //       // ssql.Append( dscust.Tables[0].Rows[rec]["BillingCode"] + "," );
                //       // ssql.Append( dscust.Tables[0].Rows[rec]["SecondaryValue"] );
                //        ssql.Append( ")" );
                //        }
                //    string sinsert = ssql.ToString();
                //    string ready = "";
                //    sql.ExecA( ssql.ToString(), CommandType.Text, "dbMySql", false );
                //    }
                //catch (Exception ex)
                //    {
                //    int zz = 0;
                //    }

                //read in recorder fee

                //insert into mysql recorder fee
                //System.Data.DataSet dsfees = new DataSet();
                //if (sql.ExecRsNB( "Select * from RecordingFees", CommandType.Text, ref dsfees, null, "dbMSSql", false ) == false)
                //    {
                //    int asdf = 0;
                //    }
                ////write customer to mysql
                //try
                //    {
                //    StringBuilder ssql = new StringBuilder();
                //    ssql.Append( "Insert into RecordingFees (DocRecId,UniqueOrderId,FeeDescription,FeeAmount) Values " );
                //    for (int rec = 0; rec < dsfees.Tables[0].Rows.Count; rec++)
                //        {
                //        if (rec > 0) { ssql.Append( "," ); } //add comma between multiple insert row
                //        ssql.Append( "(" ); // + dscust.Tables[0].Rows[rec]["CustomerId"] + "," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["DocRecId"] + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["UniqueOrderId"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["FeeDescription"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( dsfees.Tables[0].Rows[rec]["FeeAmount"] );
                //        ssql.Append( ")" );
                //        }
                //    string sinsert = ssql.ToString();
                //    string ready = "";
                //    sql.ExecA( ssql.ToString(), CommandType.Text, "dbMySql", false );
                //    }
                //catch (Exception ex)
                //    {
                //    int zz = 0;
                //    }

                //read in rejected codes
                // insert in rejected codes
                //System.Data.DataSet dsfees = new DataSet();
                //if (sql.ExecRsNB( "Select * from RejectedErrors", CommandType.Text, ref dsfees, null, "dbMSSql", false ) == false)
                //    {
                //    int asdf = 0;
                //    }
                ////write customer to mysql
                //try
                //    {
                //    StringBuilder ssql = new StringBuilder();
                //    ssql.Append( "Insert into RejectedErrors (DocRecId,UniqueOrderId,ErrorDescription) Values " );
                //    for (int rec = 0; rec < dsfees.Tables[0].Rows.Count; rec++)
                //        {
                //        if (rec > 0) { ssql.Append( "," ); } //add comma between multiple insert row
                //        ssql.Append( "(" ); // + dscust.Tables[0].Rows[rec]["CustomerId"] + "," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["DocRecId"] + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["UniqueOrderId"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["ErrorDescription"].ToString().Replace( "'", "" ) + "'" );
                //        ssql.Append( ")" );
                //        }
                //    string sinsert = ssql.ToString();
                //    string ready = "";
                //    sql.ExecA( ssql.ToString(), CommandType.Text, "dbMySql", false );
                //    }
                //catch (Exception ex)
                //    {
                //    int zz = 0;
                //    }

                //read fips_codes
                ////insert fips_codes
                //System.Data.DataSet dsfees = new DataSet();
                //if (sql.ExecRsNB( "Select * from Fips_codes", CommandType.Text, ref dsfees, null, "dbMSSql", false ) == false)
                //    {
                //    int asdf = 0;
                //    }
                ////write customer to mysql
                //try
                //    {
                //    StringBuilder ssql = new StringBuilder();
                //    ssql.Append( "Insert into FIPS_CODES (St_abbr,St_name,St_fips,County_name,County_FIPS) Values " );
                //    for (int rec = 0; rec < dsfees.Tables[0].Rows.Count; rec++)
                //        {
                //        if (rec > 0) { ssql.Append( "," ); } //add comma between multiple insert row
                //        ssql.Append( "(" ); // + dscust.Tables[0].Rows[rec]["CustomerId"] + "," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["ST_ABBR"] + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["State_name"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["State_FIPS"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["County_name"].ToString().Replace( "'", "" ) + "'," );
                //        ssql.Append( "'" + dsfees.Tables[0].Rows[rec]["County_FIPS"].ToString().Replace( "'", "" ) + "'" );
                //        ssql.Append( ")" );
                //        }
                //    string sinsert = ssql.ToString();
                //    string ready = "";
                //    sql.ExecA( ssql.ToString(), CommandType.Text, "dbMySql", false );
                //    }
                //catch (Exception ex)
                //    {
                //    int zz = 0;
                //    }

                }
            catch (Exception ex)
                {
                int xx = 0;
                }
        }