public void AssignSharedSpaceAdminRoleToUserTest() { //FIND shared space admin role LogicalQueryPhrase roleLogicalName = new LogicalQueryPhrase(Role.LOGICAL_NAME_FIELD, "role.shared.space.admin"); CrossQueryPhrase byRole = new CrossQueryPhrase(WorkspaceRole.ROLE_FIELD, roleLogicalName); List<QueryPhrase> queries = new List<QueryPhrase>(); queries.Add(byRole); EntityListResult<WorkspaceRole> roles = entityService.Get<WorkspaceRole>(sharedSpaceContext, queries, null); Assert.AreEqual<int>(1, roles.total_count.Value); WorkspaceRole sharedSpaceAdminRole = roles.data[0]; //CREATE USER SharedspaceUser createdUser = CreateUser(); //UPDATE USER by adding shared space admin role SharedspaceUser userForUpdate = new SharedspaceUser(createdUser.Id); userForUpdate.WorkspaceRoles = createdUser.WorkspaceRoles; userForUpdate.WorkspaceRoles.data.Add(sharedSpaceAdminRole); entityService.Update<SharedspaceUser>(sharedSpaceContext, userForUpdate); //READ USER List<String> fields = new List<string> { SharedspaceUser.NAME_FIELD, SharedspaceUser.WORKSPACE_ROLES_FIELD }; SharedspaceUser updatedUser = EntityService.GetInstance().GetById<SharedspaceUser>(sharedSpaceContext, createdUser.Id, fields); List<long> assignedWorkspaceRoles = updatedUser.WorkspaceRoles.data.Select(p => p.Id).ToList<long>(); Assert.IsTrue(assignedWorkspaceRoles.Contains(sharedSpaceAdminRole.Id)); }
private static String BuildPhraseString(QueryPhrase phrase) { String output = null; if (phrase is LogicalQueryPhrase) { LogicalQueryPhrase logicalPhrase = (LogicalQueryPhrase)phrase; List <String> expStrings = new List <string>(); foreach (QueryExpression exp in logicalPhrase.Expressions) { String comparisonOperator = GetComparisonOperatorString(exp.Operator); String valueStr = GetExpressionValueString(exp.Value); String expStr = String.Format("{0}{1}{2}", logicalPhrase.FieldName, comparisonOperator, valueStr); expStrings.Add(expStr); } output = String.Join("||", expStrings); if (expStrings.Count > 1) { output = "(" + output + ")"; } if (logicalPhrase.NegativeCondition) { output = "!" + output; } } else if (phrase is CrossQueryPhrase) { //release={id=5002} CrossQueryPhrase crossPhrase = (CrossQueryPhrase)phrase; String expStr = String.Format("{0}={{{1}}}", crossPhrase.FieldName, BuildPhraseString(crossPhrase.QueryPhrase)); output = expStr; } else { throw new NotImplementedException(); } return(output); }
public void GetWorkspaceRoleForWorkspaceTest() { LogicalQueryPhrase workspaceId = new LogicalQueryPhrase(Workspace.ID_FIELD, workspaceContext.WorkspaceId); CrossQueryPhrase byWorkpace = new CrossQueryPhrase(WorkspaceRole.WORKSPACE_FIELD, workspaceId); List<QueryPhrase> queries = new List<QueryPhrase>(); queries.Add(byWorkpace); EntityListResult<WorkspaceRole> roles = entityService.Get<WorkspaceRole>(sharedSpaceContext, queries, null); }