private IList <QueryPhrase> BuildCommentsCriteria(WorkspaceUser user)
 {
     return(new List <QueryPhrase>
     {
         new CrossQueryPhrase("mention_user", new LogicalQueryPhrase("id", user.Id))
     });
 }
Ejemplo n.º 2
0
        public bool CheckIfUserIsAdminOrOwner(string UserId, int workspaceId)
        {
            try
            {
                WorkspaceUser workspaceUser = _context.WorkspaceUsers
                                              .FirstOrDefault(wu => wu.UserId == UserId && wu.WorkspaceId == workspaceId);

                if (workspaceUser == null)
                {
                    return(false);
                }

                if (workspaceUser.RoleId == (int)WorkspaceRoleEnum.Admin ||
                    workspaceUser.RoleId == (int)WorkspaceRoleEnum.Owner)
                {
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }
Ejemplo n.º 3
0
        public void AddPowerBIWorkspaceUserIndividualScope_IdParameterSet()
        {
            // Arrange
            var workspaceId = Guid.NewGuid();
            var user        = new WorkspaceUser {
                UserPrincipalName = "*****@*****.**", AccessRight = WorkspaceUserAccessRight.Member.ToString()
            };
            var expectedResponse = new object();
            var client           = new Mock <IPowerBIApiClient>();

            client.Setup(x => x.Workspaces
                         .AddWorkspaceUser(workspaceId, It.Is <WorkspaceUser>(u => u.UserPrincipalName == user.UserPrincipalName && u.AccessRight == user.AccessRight)))
            .Returns(expectedResponse);
            var initFactory = new TestPowerBICmdletInitFactory(client.Object);
            var cmdlet      = new AddPowerBIWorkspaceUser(initFactory)
            {
                Scope             = PowerBIUserScope.Individual,
                Id                = workspaceId,
                UserPrincipalName = user.UserPrincipalName,
                AccessRight       = WorkspaceUserAccessRight.Member,
                ParameterSet      = "UserEmailWithId",
            };

            // Act
            cmdlet.InvokePowerBICmdlet();

            // Assert
            TestUtilities.AssertExpectedUnitTestResults(expectedResponse, client, initFactory);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// associates a newly-created user with the built in "default" workspace so that
        /// we can demo tenant-specific features without additional registration steps
        /// </summary>
        private async Task CreateDefaultWorkspaceUserAsync(IdentityUser user)
        {
            const string defaultWsName = "default";

            using (var cn = new SqlConnection(_connectionString))
            {
                var ws = await cn.GetWhereAsync <Workspace>(new { name = defaultWsName });

                var userId = await cn.QuerySingleAsync <int>("SELECT [UserId] FROM [dbo].[AspNetUsers] WHERE [UserName]=@userName", new { user.UserName });

                // all new users will be enabled in the "default" workspace
                var wsUser = new WorkspaceUser()
                {
                    WorkspaceId = ws.Id,
                    UserId      = userId,
                    Status      = UserStatus.Enabled,
                    CreatedBy   = "system",
                    DateCreated = DateTime.UtcNow
                };
                await cn.SaveAsync(wsUser);

                // and we need to update the user row with the correct workspace Id
                await new SqlServerCmd("dbo.AspNetUsers", "UserId")
                {
                    ["WorkspaceId"] = ws.Id
                }.UpdateAsync(cn, userId);
            }
        }
Ejemplo n.º 5
0
        public override void ExecuteCmdlet()
        {
            var  workspaceId        = (this.ParameterSet.Equals(UserEmailWithIdParameterSetName) || this.ParameterSet.Equals(PrincipalTypeWithIdParameterSetName)) ? this.Id : this.Workspace.Id;
            bool usingPrincipalType = this.ParameterSet.Equals(PrincipalTypeWithIdParameterSetName) || this.ParameterSet.Equals(PrincipalTypeWithWorkspaceParameterSetName);

            WorkspaceUser userAccessRight;

            if (usingPrincipalType)
            {
                userAccessRight = new WorkspaceUser {
                    AccessRight = this.AccessRight.ToString(), Identifier = this.Identifier, PrincipalType = this.PrincipalType
                };
            }
            else
            {
                userAccessRight = new WorkspaceUser {
                    AccessRight = this.AccessRight.ToString(), UserPrincipalName = this.UserPrincipalName
                };
            }

            using (var client = this.CreateClient())
            {
                var result = this.Scope.Equals(PowerBIUserScope.Individual) ?
                             client.Workspaces.AddWorkspaceUser(workspaceId, userAccessRight) :
                             client.Workspaces.AddWorkspaceUserAsAdmin(workspaceId, userAccessRight);
                this.Logger.WriteObject(result, true);
            }
        }
Ejemplo n.º 6
0
        public void AddPowerBIWorkspaceUser_PrincipalTypeGroup_WithId()
        {
            // Arrange
            var workspaceId = Guid.NewGuid();
            var groupId     = Guid.NewGuid();
            var user        = new WorkspaceUser {
                Identifier = groupId.ToString(), AccessRight = WorkspaceUserAccessRight.Viewer.ToString(), PrincipalType = WorkspaceUserPrincipalType.Group
            };
            var expectedResponse = new object();
            var client           = new Mock <IPowerBIApiClient>();

            client.Setup(x => x.Workspaces
                         .AddWorkspaceUser(workspaceId, It.Is <WorkspaceUser>(u => u.Identifier == user.Identifier && u.AccessRight == user.AccessRight && u.PrincipalType == user.PrincipalType)))
            .Returns(expectedResponse);
            var initFactory = new TestPowerBICmdletInitFactory(client.Object);
            var cmdlet      = new AddPowerBIWorkspaceUser(initFactory)
            {
                Id            = workspaceId,
                Identifier    = user.Identifier,
                AccessRight   = WorkspaceUserAccessRight.Viewer,
                PrincipalType = WorkspaceUserPrincipalType.Group,
                ParameterSet  = "PrincipalTypeWithId",
            };

            // Act
            cmdlet.InvokePowerBICmdlet();

            // Assert
            TestUtilities.AssertExpectedUnitTestResults(expectedResponse, client, initFactory);
        }
 public async Task <WorkspaceUser> GetCurrentUser()
 {
     if (currentUser == null)
     {
         currentUser = await GetWorkspaceUser();
     }
     return(currentUser);
 }
        private IList <QueryPhrase> BuildUserItemCriteria(WorkspaceUser user)
        {
            List <QueryPhrase> queries = new List <QueryPhrase>
            {
                new CrossQueryPhrase("user", new LogicalQueryPhrase("id", user.Id)),
            };

            return(queries);
        }
Ejemplo n.º 9
0
        public static void AssemblyInitialize(TestContext context)
        {
            // Check if .runsettings is configured properly
            EnsurePropertiesSet(context.Properties,
                                "ignoreServerCertificateValidation",
                                "webAppUrl",
                                "userName",
                                "password",
                                "sharedSpaceId",
                                "workspaceId");

            var ignoreServerCertificateValidation = context.Properties["ignoreServerCertificateValidation"].ToString();

            if (ignoreServerCertificateValidation != null && ignoreServerCertificateValidation.ToLower().Equals("true"))
            {
                NetworkSettings.IgnoreServerCertificateValidation();
            }
            NetworkSettings.EnableAllSecurityProtocols();

            OctaneConfiguration.Url      = context.Properties["webAppUrl"].ToString();
            OctaneConfiguration.Username = context.Properties["userName"].ToString();
            OctaneConfiguration.Password = context.Properties["password"].ToString();

            var connectionInfo = new UserPassConnectionInfo(OctaneConfiguration.Username, OctaneConfiguration.Password);

            RestConnector.Connect(OctaneConfiguration.Url, connectionInfo);

            var sharedSpaceId = int.Parse(context.Properties["sharedSpaceId"].ToString());
            var workspaceId   = int.Parse(context.Properties["workspaceId"].ToString());

            WorkspaceContext = new WorkspaceContext(sharedSpaceId, workspaceId);
            OctaneConfiguration.WorkSpaceId = WorkspaceContext.WorkspaceId;

            var sharedSpaceContext = new SharedSpaceContext(sharedSpaceId);

            OctaneConfiguration.SharedSpaceId = sharedSpaceContext.SharedSpaceId;

            OctaneConfiguration.SsoLogin        = bool.Parse(context.Properties["ssoLogin"].ToString());
            OctaneConfiguration.CredentialLogin = bool.Parse(context.Properties["credentialLogin"].ToString());

            User = GetWorkspaceUser();

            CurrentRelease = ReleaseUtilities.CreateRelease();

            // create the octaneservices object to be used by the tests
            OctaneServices.Create(OctaneConfiguration.Url,
                                  OctaneConfiguration.SharedSpaceId,
                                  OctaneConfiguration.WorkSpaceId);

            OctaneServices.GetInstance().Connect();
        }
Ejemplo n.º 10
0
        public void GetWorkspacesAllOrphanedWithGroup()
        {
            // Arrange
            var user1 = new WorkspaceUser {
                UserPrincipalName = "*****@*****.**", AccessRight = WorkspaceUserAccessRight.Member.ToString()
            };
            var user2 = new WorkspaceUser {
                UserPrincipalName = "*****@*****.**", AccessRight = WorkspaceUserAccessRight.Contributor.ToString()
            };
            var expectedOrphanedWorkspaceOne = new Workspace {
                Id = Guid.NewGuid(), Name = "TestOrphanedWorkspace", Type = WorkspaceType.Workspace, State = WorkspaceState.Active, Users = new List <WorkspaceUser> {
                    user1, user2
                }
            };
            var expectedOrphanedWorkspaceTwo = new Workspace {
                Id = Guid.NewGuid(), Name = "TestDeletedWorkspace", Type = WorkspaceType.Group, State = WorkspaceState.Active, Users = new List <WorkspaceUser> {
                    user1
                }
            };

            var user = new WorkspaceUser {
                UserPrincipalName = "*****@*****.**", AccessRight = WorkspaceUserAccessRight.Admin.ToString()
            };
            var allWorkspaces = new List <Workspace> {
                new Workspace {
                    Id = Guid.NewGuid(), Name = "TestWorkspace", Type = WorkspaceType.Workspace, State = WorkspaceState.Active, Users = new List <WorkspaceUser> {
                        user
                    }
                }, expectedOrphanedWorkspaceOne, expectedOrphanedWorkspaceTwo
            };

            var client = new Mock <IPowerBIApiClient>();

            client.Setup(x => x.Workspaces.GetWorkspacesAsAdmin("users", null, It.IsAny <int>(), It.IsAny <int>())).Returns(allWorkspaces);
            var initFactory = new TestPowerBICmdletInitFactory(client.Object);
            var cmdlet      = new GetPowerBIWorkspace(initFactory)
            {
                Scope    = PowerBIUserScope.Organization,
                All      = true,
                Orphaned = true
            };

            // Act
            cmdlet.InvokePowerBICmdlet();

            // Assert
            AssertExpectedUnitTestResults(new List <Workspace> {
                expectedOrphanedWorkspaceOne
            }, initFactory);
        }
Ejemplo n.º 11
0
        public override void ExecuteCmdlet()
        {
            var workspaceId     = this.ParameterSet.Equals(IdParameterSetName) ? this.Id : this.Workspace.Id;
            var userAccessRight = new WorkspaceUser {
                AccessRight = this.AccessRight.ToString(), UserPrincipalName = this.UserPrincipalName
            };

            using (var client = this.CreateClient())
            {
                var result = this.Scope.Equals(PowerBIUserScope.Individual) ?
                             client.Workspaces.AddWorkspaceUser(workspaceId, userAccessRight) :
                             client.Workspaces.AddWorkspaceUserAsAdmin(workspaceId, userAccessRight);
                this.Logger.WriteObject(result, true);
            }
        }
Ejemplo n.º 12
0
        public bool CreateWorkspace(string Name, string userId)
        {
            try
            {
                Workspace newWorkspace = new Workspace()
                {
                    Name        = Name,
                    CreatedDate = DateTime.Now,
                    OwnerId     = userId
                };

                _context.Workspaces.Add(newWorkspace);
                _context.SaveChanges();

                Channel channel = new Channel()
                {
                    Name          = "General",
                    WorkspaceId   = newWorkspace.WorkspaceId,
                    ChannelTypeId = (int)ChannelTypeEnum.Public
                };

                _context.Channels.Add(channel);
                _context.SaveChanges();

                WorkspaceUser workspaceUser = new WorkspaceUser()
                {
                    WorkspaceId = newWorkspace.WorkspaceId,
                    UserId      = userId,
                    RoleId      = (int)WorkspaceRoleEnum.Owner
                };

                _context.WorkspaceUsers.Add(workspaceUser);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }
Ejemplo n.º 13
0
        private async static Task <UserItem> CreateNewUserItem(BaseEntity wrappedBaseEntity)
        {
            UserItem newUserItem = new UserItem();

            newUserItem.SetLongValue("origin", 1L);
            // dummy value in order to be able to serialise the useritem object
            newUserItem.Id = "0";
            newUserItem.SetValue("is_new", true);
            newUserItem.SetValue("reason", null);
            newUserItem.SetValue("entity_type", wrappedBaseEntity.TypeName);

            WorkspaceUser workspaceUser = await OctaneServices.GetInstance().GetCurrentUser();

            newUserItem.SetValue(UserItem.USER_FIELD, workspaceUser);

            String followField = "my_follow_items_" + wrappedBaseEntity.TypeName;

            newUserItem.SetValue(followField, wrappedBaseEntity);

            return(newUserItem);
        }
Ejemplo n.º 14
0
        public bool AddMemberToWorkspace(string userId, int workspaceId, int roleId)
        {
            try
            {
                WorkspaceUser workspaceUser = new WorkspaceUser()
                {
                    WorkspaceId = workspaceId,
                    UserId      = userId,
                    RoleId      = roleId
                };

                _context.WorkspaceUsers.Add(workspaceUser);
                _context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                return(false);
            }
        }
        public async Task <string> GetWorkspaceUser()
        {
            if (octaneUserValue != null && !octaneUserValue.Equals(""))
            {
                return(octaneUserValue);
            }

            try
            {
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(host + "/api/current_user/");

                httpWebRequest.Method      = RestConnector.METHOD_GET;
                httpWebRequest.ContentType = RestConnector.CONTENT_TYPE_JSON;

                PrepareRequest(httpWebRequest);

                httpWebRequest.Headers.Add("HPECLIENTTYPE", "HPE_CI_CLIENT");

                ResponseWrapper responseWrapper = new ResponseWrapper();

                using (var httpResponse = await httpWebRequest.GetResponseAsync().ConfigureAwait(RestConnector.AwaitContinueOnCapturedContext))
                {
                    using (var reader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        responseWrapper.Data = reader.ReadToEnd();
                    }
                }
                WorkspaceUser result = jSerialiser.Deserialize <WorkspaceUser>(responseWrapper.Data);
                octaneUserValue = result.Name;
                return(result.Name);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Add new user to workspace.
 /// </summary>
 /// <param name="workspace">Required parameter to add new user to specific workspace.</param>
 /// <param name="workspaceUser">Required parameter to add new user profile.</param>
 public static void AddUser(this Workspace workspace, WorkspaceUser workspaceUser)
 {
     AddUser(workspace, workspaceUser.Email, workspaceUser.Role);
 }
 /// <summary>
 /// Add new user to workspace collection.
 /// </summary>
 /// <param name="workspaces"></param>
 /// <param name="workspaceUser"></param>
 public static void AddUser(this IEnumerable <Workspace> workspaces, WorkspaceUser workspaceUser)
 {
     AddUser(workspaces, workspaceUser.Email, workspaceUser.Role);
 }