Пример #1
0
        public static DMAuthorizationType GetDMAuthorizationType(NWPlayer player)
        {
            if (!player.IsPlayer && !player.IsDM)
            {
                return(DMAuthorizationType.None);
            }

            string cdKey = GetPCPublicCDKey(player);

            AuthorizedDM entity = DataService.AuthorizedDM.GetByCDKeyAndActiveOrDefault(cdKey);

            if (entity == null)
            {
                return(DMAuthorizationType.None);
            }

            if (entity.DMRole == 1)
            {
                return(DMAuthorizationType.DM);
            }
            else if (entity.DMRole == 2)
            {
                return(DMAuthorizationType.Admin);
            }

            return(DMAuthorizationType.None);
        }
Пример #2
0
        public void DoAction(NWPlayer user, NWObject target, NWLocation targetLocation, params string[] args)
        {
            string name  = args[0];
            string cdKey = args[1].ToUpper();

            var record = DataService.AuthorizedDM.GetByCDKeyAndActiveOrDefault(cdKey);
            var method = DatabaseActionType.Update;

            if (record == null)
            {
                method = DatabaseActionType.Insert;
                int id = DataService.AuthorizedDM.GetAll().Max(x => x.ID) + 1;
                record = new AuthorizedDM
                {
                    ID    = id,
                    CDKey = cdKey
                };
            }

            record.Name     = name;
            record.DMRole   = 1;
            record.IsActive = true;

            DataService.SubmitDataChange(record, method);

            user.SendMessage("DM '" + name + "' has been added successfully.");
        }
Пример #3
0
        public static DMAuthorizationType GetDMAuthorizationType(NWPlayer player)
        {
            if (!player.IsPlayer && !player.IsDM)
            {
                return(DMAuthorizationType.None);
            }

            string cdKey             = GetPCPublicCDKey(player);
            var    adminCDKeySetting = Environment.GetEnvironmentVariable("SWLOR_ADMIN_CD_KEY") ?? string.Empty;

            if (adminCDKeySetting.ToUpper() == cdKey.ToUpper())
            {
                LogDMAuthorization(player, true);
                return(DMAuthorizationType.Admin);
            }

            AuthorizedDM entity = DataService.AuthorizedDM.GetByCDKeyAndActiveOrDefault(cdKey);

            if (entity == null)
            {
                return(DMAuthorizationType.None);
            }

            if (entity.DMRole == 1)
            {
                return(DMAuthorizationType.DM);
            }
            else if (entity.DMRole == 2)
            {
                return(DMAuthorizationType.Admin);
            }

            return(DMAuthorizationType.None);
        }
Пример #4
0
        public void GetByID_OneItem_ReturnsAuthorizedDM()
        {
            // Arrange
            AuthorizedDM entity = new AuthorizedDM {
                ID = 1
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity));

            // Assert
            Assert.AreNotSame(entity, _cache.GetByID(1));
        }
Пример #5
0
        public bool IsPCRegisteredAsDM(NWPlayer player)
        {
            if (player.IsDM)
            {
                return(true);
            }
            if (!player.IsPlayer)
            {
                return(false);
            }

            string cdKey = _.GetPCPublicCDKey(player.Object);

            AuthorizedDM entity = _data.SingleOrDefault <AuthorizedDM>(x => x.CDKey == cdKey && x.IsActive);

            return(entity != null);
        }
Пример #6
0
        public static bool IsPCRegisteredAsDM(NWPlayer player)
        {
            if (player.IsDM)
            {
                return(true);
            }
            if (!player.IsPlayer)
            {
                return(false);
            }

            string cdKey = _.GetPCPublicCDKey(player.Object);

            AuthorizedDM entity = DataService.AuthorizedDM.GetByCDKeyAndActiveOrDefault(cdKey);

            return(entity != null);
        }
Пример #7
0
        public void GetByID_TwoItems_ReturnsCorrectObject()
        {
            // Arrange
            AuthorizedDM entity1 = new AuthorizedDM {
                ID = 1
            };
            AuthorizedDM entity2 = new AuthorizedDM {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity2));

            // Assert
            Assert.AreNotSame(entity1, _cache.GetByID(1));
            Assert.AreNotSame(entity2, _cache.GetByID(2));
        }
Пример #8
0
        public void GetByID_RemovedItem_ReturnsCorrectObject()
        {
            // Arrange
            AuthorizedDM entity1 = new AuthorizedDM {
                ID = 1
            };
            AuthorizedDM entity2 = new AuthorizedDM {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity2));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <AuthorizedDM>(entity1));

            // Assert
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); });
            Assert.AreNotSame(entity2, _cache.GetByID(2));
        }
Пример #9
0
        public void GetByID_NoItems_ThrowsKeyNotFoundException()
        {
            // Arrange
            AuthorizedDM entity1 = new AuthorizedDM {
                ID = 1
            };
            AuthorizedDM entity2 = new AuthorizedDM {
                ID = 2
            };

            // Act
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectSet <AuthorizedDM>(entity2));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <AuthorizedDM>(entity1));
            MessageHub.Instance.Publish(new OnCacheObjectDeleted <AuthorizedDM>(entity2));

            // Assert
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); });
            Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(2); });
        }