Beispiel #1
0
        public void ClientSecurityService_PermissionsModified_NewPermissionsReceived_ShouldReplaceCurrentPermissions()
        {
            //------------Setup for test--------------------------
            var             connection     = new Mock <IEnvironmentConnection>();
            IEventPublisher eventPublisher = new EventPublisher();

            connection.Setup(c => c.ServerEvents).Returns(eventPublisher);
            var clientSecurityService = new TestClientSecurityService(connection.Object);
            var currentPermissions    = new List <WindowsGroupPermission>();
            var resourceID            = Guid.NewGuid();

            var resourcePermission = new WindowsGroupPermission();

            resourcePermission.ResourceID  = resourceID;
            resourcePermission.Permissions = Permissions.View & Permissions.Execute;

            var serverPermission = new WindowsGroupPermission();

            serverPermission.ResourceID  = Guid.Empty;
            serverPermission.Permissions = Permissions.DeployFrom & Permissions.DeployTo;
            serverPermission.IsServer    = true;

            currentPermissions.Add(serverPermission);
            currentPermissions.Add(resourcePermission);
            clientSecurityService.SetCurrentPermissions(currentPermissions);
            clientSecurityService.ReadAsync().Wait();

            var changedPermissions = new List <WindowsGroupPermission>();

            var changedResourcePermission = new WindowsGroupPermission();

            changedResourcePermission.ResourceID  = resourceID;
            changedResourcePermission.Permissions = Permissions.Contribute;

            var changedServerPermission = new WindowsGroupPermission();

            changedServerPermission.ResourceID  = Guid.Empty;
            changedServerPermission.Permissions = Permissions.Administrator;
            changedServerPermission.IsServer    = true;

            changedPermissions.Add(changedServerPermission);
            changedPermissions.Add(changedResourcePermission);

            var permissionsModifiedMemo = new PermissionsModifiedMemo();

            permissionsModifiedMemo.ModifiedPermissions = changedPermissions;
            //------------Execute Test---------------------------
            connection.Raise(environmentConnection => environmentConnection.PermissionsModified += null, null, changedPermissions);
            eventPublisher.Publish(permissionsModifiedMemo);
            //------------Assert Results-------------------------
            var updateResourcePermission = clientSecurityService.Permissions.FirstOrDefault(permission => permission.ResourceID == resourceID);
            var updateServerPermission   = clientSecurityService.Permissions.FirstOrDefault(permission => permission.ResourceID == Guid.Empty);

            Assert.IsNotNull(updateResourcePermission);
            Assert.IsNotNull(updateServerPermission);
            Assert.AreEqual(Permissions.Contribute, updateResourcePermission.Permissions);
            Assert.AreEqual(Permissions.Administrator, updateServerPermission.Permissions);
        }
        public void PermissionsModifiedMemo_Constructor_Initializes_Properties()
        {
            //------------Setup for test--------------------------

            //------------Execute Test---------------------------
            var permissionsModifiedMemo = new PermissionsModifiedMemo();

            //------------Assert Results-------------------------
            Assert.IsNotNull(permissionsModifiedMemo.ModifiedPermissions);
        }
Beispiel #3
0
        void PermissionsHaveBeenModified(object sender, PermissionsModifiedEventArgs permissionsModifiedEventArgs)
        {
            var user            = Context.User;
            var permissionsMemo = new PermissionsModifiedMemo
            {
                ModifiedPermissions = ServerAuthorizationService.Instance.GetPermissions(user),
                ServerID            = HostSecurityProvider.Instance.ServerID
            };
            var serializedMemo = _serializer.Serialize(permissionsMemo);

            Clients.Caller.SendPermissionsMemo(serializedMemo);
        }
 public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
 {
     try
     {
         Dev2Logger.Info("Find Server User Name", GlobalConstants.WarewolfInfo);
         var user            = Thread.CurrentPrincipal;
         var permissionsMemo = new PermissionsModifiedMemo
         {
             ModifiedPermissions = ServerAuthorizationService.Instance.GetPermissions(user),
             ServerID            = HostSecurityProvider.Instance.ServerID
         };
         var serializer = new Dev2JsonSerializer();
         return(serializer.SerializeToBuilder(permissionsMemo));
     }
     catch (Exception err)
     {
         Dev2Logger.Error(err, GlobalConstants.WarewolfError);
         throw;
     }
 }
Beispiel #5
0
        public void EnvironmentTreeViewModel_PermissionsChanged_MemoIDEqualsEnvironmentServerId_UserPermissionChangesNonLocalHost()
        {
            //------------Setup for test--------------------------


            var resourceID = Guid.NewGuid();
            //var connectionServerId = Guid.NewGuid();
            var memoServerID = Guid.NewGuid();

            var pubMemo = new PermissionsModifiedMemo {
                ServerID = memoServerID
            };

            pubMemo.ModifiedPermissions.Add(new WindowsGroupPermission {
                ResourceID = resourceID, Permissions = Permissions.Execute
            });
            pubMemo.ModifiedPermissions.Add(new WindowsGroupPermission {
                ResourceID = resourceID, Permissions = Permissions.DeployTo
            });

            var eventPublisher = new EventPublisher();
            var connection     = new Mock <IEnvironmentConnection>();

            connection.Setup(e => e.ServerEvents).Returns(eventPublisher);
            connection.SetupGet(c => c.ServerID).Returns(memoServerID);

            var srepo = new Mock <IStudioResourceRepository>();
            var repo  = new Mock <IResourceRepository>();

#pragma warning disable 168
            var environment = new EnvironmentModel(Guid.NewGuid(), connection.Object, repo.Object, srepo.Object)
            {
                Name = "localhost"
            };
            connection.Raise(environmentConnection => environmentConnection.NetworkStateChanged += null, new NetworkStateEventArgs(NetworkState.Offline, NetworkState.Online));
#pragma warning restore 168
            connection.Setup(a => a.DisplayName).Returns("bob");
            //------------Execute Test---------------------------
            eventPublisher.Publish(pubMemo);
            srepo.Verify(a => a.UpdateRootAndFoldersPermissions(It.IsAny <Permissions>(), It.IsAny <Guid>(), true), Times.Never());
        }
Beispiel #6
0
        void PermissionsHaveBeenModified(object sender, PermissionsModifiedEventArgs permissionsModifiedEventArgs)
        {
            if (Context == null)
            {
                return;
            }

            try
            {
                var user            = Context.User;
                var permissionsMemo = new PermissionsModifiedMemo
                {
                    ModifiedPermissions = ServerAuthorizationService.Instance.GetPermissions(user),
                    ServerID            = HostSecurityProvider.Instance.ServerID
                };
                var serializedMemo = _serializer.Serialize(permissionsMemo);
                Clients.Caller.SendPermissionsMemo(serializedMemo);
            }
            catch (Exception e)
            {
                Dev2Logger.Warn($"unable to notify remote client with PermissionsMemo, error: {e.Message}", GlobalConstants.WarewolfWarn);
            }
        }