| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Где взять роли пользователей ?
			 
			
			Подскажите пожалуйста -  с какой таблицы взять в какие группы входит пользователь ?
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Moderator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			В смысле, в какие группы?  Рабочие группы, группы безопасности? 
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну вернее у меня есть GUID пользователя, мне нужно проверить является ли он РУКОВОДИТЕЛЕМ СБЫТА (помоему роль безопасности - таблица SystemUserRoles). Вот, а как эти роли привязаны к SystemUser я никак непойму
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Все спасибо, нашел -  SystemUserRoles - связывает роли и пользователей
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Вроде так! =)
			 
			
			//определяем сервис необходимый для работы с обьектами CRM  
		
		
		
		
		
		
		
	CrmService service = newCrmService(); service.Credentials = System.Net.CredentialCache.DefaultCredentials; //определяем текущего пользователя WhoAmIRequest userRequest = newWhoAmIRequest(); WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest); // QueryExpression RoleQuery = newQueryExpression(); RoleQuery.ColumnSet = newAllColumns(); RoleQuery.EntityName = "role"; ConditionExpression RoleCondition = newConditionExpression(); RoleCondition.AttributeName = "systemuserid"; RoleCondition.Operator = ConditionOperator.Equal; RoleCondition.Values = newobject[] { user.UserId }; LinkEntity le = newLinkEntity(); le.LinkFromEntityName = "role"; le.LinkFromAttributeName = "roleid"; le.LinkToEntityName = "systemuserroles"; le.LinkToAttributeName = "roleid"; LinkEntity le2 = newLinkEntity(); le2.LinkFromEntityName = "systemuserroles"; le2.LinkFromAttributeName = "systemuserid"; le2.LinkToEntityName = "systemuser"; le2.LinkToAttributeName = "systemuserid"; le2.LinkCriteria = newFilterExpression(); le2.LinkCriteria.Conditions = newConditionExpression[] { RoleCondition }; le.LinkEntities = newLinkEntity[] { le2 }; RoleQuery.LinkEntities = newLinkEntity[] { le }; BusinessEntityCollection roleCollection = service.RetrieveMultiple(RoleQuery); bool ManagerRole = false; bool AdminRole = false; foreach (BusinessEntity rol in roleCollection.BusinessEntities) { if (((role)rol).name == 'Менеджер') { ManagerRole = true; } if (((role)rol).name == 'Системный администратор') { AdminRole = true; } } этот код тащит все роли, а потом в цикле определяется какие роли у юзера есть из интересующих(это удобно когда надо определить узверга на причастиность к нескольким ролям), а если надо проверить на причастность к одной роли, то просто надо дописать ещё один Condition и проверять возврашаемую ретрайвом коллекцию на не пустоту! В SDK есть пример, я от туда брал в своё время!  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: tatra (1). | |
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. Даже лучше чем я задумал!
		 
		
		
		
		
		
		
		
	 | 
| 
	
 |