Beispiel #1
0
        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);
        }
Beispiel #2
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);
        }
Beispiel #3
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()));
     }
 }
Beispiel #4
0
        public RESTStatus ReportNetadapterConfig(SQLLib sql, ListNetworkAdapterConfiguration netadapters, NetworkConnectionInfo ni)
        {
            if (ni.HasAcl(ACLFlags.ComputerLogin) == false)
            {
                ni.Error   = "Access denied";
                ni.ErrorID = ErrorFlags.AccessDenied;
                return(RESTStatus.Denied);
            }

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

            netadapters.MachineID = ni.Username;

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

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

            if (netadapters.Items == null)
            {
                netadapters.Items = new List <NetworkAdapterConfiguration>();
            }

            List <int> IFIndex = new List <int>();

            foreach (NetworkAdapterConfiguration ncfg in netadapters.Items)
            {
                if (IFIndex.Contains(ncfg.InterfaceIndex) == true)
                {
                    continue;
                }
                IFIndex.Add(ncfg.InterfaceIndex);

                lock (ni.sqllock)
                {
                    sql.InsertMultiData("NetworkConfig",
                                        new SQLData("MachineID", netadapters.MachineID),
                                        new SQLData("InterfaceIndex", ncfg.InterfaceIndex),
                                        new SQLData("IPEnabled", ncfg.IPEnabled),
                                        new SQLData("MACAddress", ncfg.MACAddress == null ? "" : ncfg.MACAddress.Trim()),
                                        new SQLData("ServiceName", ncfg.ServiceName == null ? "" : ncfg.ServiceName.Trim()),
                                        new SQLData("SettingsID", ncfg.SettingsID == null ? "" : ncfg.SettingsID.Trim()),
                                        new SQLData("Description", ncfg.Description == null ? "" : ncfg.Description.Trim()),
                                        new SQLData("DHCPEnabled", ncfg.DHCPEnabled),
                                        new SQLData("DHCPServer", ncfg.DHCPServer == null ? "" : ncfg.DHCPServer.Trim()),
                                        new SQLData("DNSDomain", ncfg.DNSDomain == null ? "" : ncfg.DNSDomain.Trim()),
                                        new SQLData("DNSHostName", ncfg.DNSHostName == null ? "" : ncfg.DNSHostName.Trim()),
                                        new SQLData("Caption", ncfg.Caption == null ? "" : ncfg.Caption.Trim()),
                                        new SQLData("DHCPLeaseExpires", ncfg.DHCPLeaseExpires),
                                        new SQLData("DHCPLeaseObtained", ncfg.DHCPLeaseObtained),
                                        new SQLData("WINSEnableLMHostsLookup", ncfg.WINSEnableLMHostsLookup),
                                        new SQLData("WINSHostLookupFile", ncfg.WINSHostLookupFile == null ? "" : ncfg.WINSHostLookupFile.Trim()),
                                        new SQLData("WINSPrimaryServer", ncfg.WINSPrimaryServer == null ? "" : ncfg.WINSPrimaryServer.Trim()),
                                        new SQLData("WINSSecondaryServer", ncfg.WINSSecondaryServer == null ? "" : ncfg.WINSSecondaryServer.Trim()),
                                        new SQLData("WINSScopeID", ncfg.WINSScopeID == null ? "" : ncfg.WINSScopeID.Trim()));
                }

                if (ncfg.IPAddress == null)
                {
                    ncfg.IPAddress = new List <string>();
                }
                if (ncfg.IPSubnet == null)
                {
                    ncfg.IPSubnet = new List <string>();
                }
                if (ncfg.DefaultIPGateway == null)
                {
                    ncfg.DefaultIPGateway = new List <string>();
                }
                if (ncfg.DNSDomainSuffixSearchOrder == null)
                {
                    ncfg.DNSDomainSuffixSearchOrder = new List <string>();
                }
                if (ncfg.DNSServerSearchOrder == null)
                {
                    ncfg.DNSServerSearchOrder = new List <string>();
                }

                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 1, ncfg.IPAddress);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 2, ncfg.IPSubnet);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 3, ncfg.DefaultIPGateway);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 4, ncfg.DNSDomainSuffixSearchOrder);
                lock (ni.sqllock)
                    InsertSupplData(sql, netadapters.MachineID, ncfg.InterfaceIndex, 5, ncfg.DNSServerSearchOrder);
            }


            return(RESTStatus.Success);
        }