Beispiel #1
0
		public void DeleteGroup(GroupDto groupDto)
		{
			ActionHelper.Execute (delegate() {
				var serverDto = SnapInContext.Instance.AuthTokenManager.GetAuthToken (_serverDto.ServerName);
				var success = SnapInContext.Instance.ServiceGateway.Group.Delete (_serverDto, _tenantName, groupDto, serverDto.Token);
				if (success) {
					UIErrorHelper.ShowAlert ("Group " + groupDto.GroupName + " deleted successfully", "Information");
				} else {

					UIErrorHelper.ShowAlert ("Failed to delete Group " + groupDto.GroupName, "Information");
				}
				Refresh (this, EventArgs.Empty);
			});
		}
		public bool Delete(ServerDto serverDto, string tenant, GroupDto groupDto, Token token)
		{
			var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain);
			tenant = Uri.EscapeDataString(tenant);
			var url = string.Format(ServiceConfigManager.GroupEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName);
			ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
			var requestConfig = new RequestSettings
			{
				Method = HttpMethod.Delete,
			};
			var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType);
			var json = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower();
			var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, json);
			return string.IsNullOrEmpty(response);
		}
		public void OnClickAddButton (object sender, EventArgs e)
		{
			if (string.IsNullOrEmpty (TxtGroupName.StringValue)) {
				UIErrorHelper.ShowAlert ("Please enter valid group name", "Alert");
			} else if (string.IsNullOrEmpty (TxtDescription.StringValue)) {
				UIErrorHelper.ShowAlert ("Please enter valid Description", "Alert");
			} else {
				
				GroupDto = new GroupDto () {
					GroupName = TxtGroupName.StringValue,
					GroupDetails =  new GroupDetailsDto { Description = TxtDescription.StringValue }
				};
				this.Close ();
				NSApplication.SharedApplication.StopModalWithCode (1);
			}
		}
		public GroupDto Update(ServerDto serverDto, string tenant, GroupDto groupDto, Token token)
		{
			var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain);
			tenant = Uri.EscapeDataString(tenant);
			var url = string.Format(ServiceConfigManager.GroupEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName);
			var g = new GroupDto() { GroupDetails = new GroupDetailsDto { Description = groupDto.GroupDetails.Description } };
			var json = JsonConvert.Serialize(g);
			ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
			var requestConfig = new RequestSettings
			{
				Method = HttpMethod.Put,
			};
			var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType);
			json = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower() + "&" + json;
			var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, json);
			return JsonConvert.Deserialize<GroupDto>(response);
		}
		private void UpdateUserRole()
		{
			ActionHelper.Execute (delegate() {
				var result = true;
				var dto = UserDto;
				var users = new List<UserDto> { dto };
				var name = string.Empty;
				GroupDto group;
				var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(ServerDto.ServerName);
				if (result && dto.Role != UserDtoOriginal.Role)
				{
					// Remove group membership
					if (UserDtoOriginal.Role != UserRole.GuestUser)
					{
						name = (UserDtoOriginal.Role == UserRole.Administrator ? "Administrators" : "Users");
						group = new GroupDto { GroupName = name, GroupDomain = UserDtoOriginal.Domain };
						result = SnapInContext.Instance.ServiceGateway.Group.RemoveUsers(ServerDto, TenantName, group, users, auth.Token);
					}
					if (result && dto.Role != UserRole.GuestUser)
					{
						// Add group membership
						name = (dto.Role == UserRole.Administrator ? "Administrators" : "Users");
						group = new GroupDto { GroupName = name, GroupDomain = dto.Domain };
						result = SnapInContext.Instance.ServiceGateway.Group.AddUsers(ServerDto, TenantName, group, users, auth.Token);
					}
				}

				if (result && dto.ActAsUsers != UserDtoOriginal.ActAsUsers)
				{
					name = "ActAsUsers";
					group = new GroupDto { GroupName = name, GroupDomain = dto.Domain };
					result = (dto.ActAsUsers)
						? SnapInContext.Instance.ServiceGateway.Group.AddUsers(ServerDto, TenantName, group, users, auth.Token)
						: SnapInContext.Instance.ServiceGateway.Group.RemoveUsers(ServerDto, TenantName, group, users, auth.Token);
				}

				if (result && dto.IsIdpAdmin != UserDtoOriginal.IsIdpAdmin)
				{
					name = "IdpProvisioningAdmin";
					group = new GroupDto { GroupName = name, GroupDomain = dto.Domain };
					result = (dto.IsIdpAdmin)
						? SnapInContext.Instance.ServiceGateway.Group.AddUsers(ServerDto, TenantName, group, users, auth.Token)
						: SnapInContext.Instance.ServiceGateway.Group.RemoveUsers(ServerDto, TenantName, group, users, auth.Token);
				}
			});
		}
		public bool AddUsers(ServerDto serverDto, string tenant, GroupDto groupDto, IList<UserDto> users, Token token)
		{
			var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain);
			tenant = Uri.EscapeDataString(tenant);
			var queryString = users.Select(x => "members=" + Uri.EscapeDataString(x.Name + "@" + x.Domain)).Aggregate((x, y) => string.Format("{0}&{1}", x, y));
			var url = string.Format(ServiceConfigManager.MembersOfGroupEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName, queryString, GroupMemberType.USER);
			ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
			var requestConfig = new RequestSettings
			{
				Method = HttpMethod.Put,
			};
			var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType);
			var json = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower();
			var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, json);
			return response != null;
		}
		public GroupMembershipDto GetMembers(ServerDto serverDto, string tenant, GroupDto groupDto, GroupMemberType type, Token token)
		{
			var principalName = Uri.EscapeDataString(groupDto.GroupName + "@" + groupDto.GroupDomain);
			tenant = Uri.EscapeDataString(tenant);
			var url = string.Format(ServiceConfigManager.GetAllMembersOfGroupPostEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant, principalName, type);
			ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
			var requestConfig = new RequestSettings
			{
				Method = HttpMethod.Post,
			};
			var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType);
			var postData = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower();
			var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, postData);
			return JsonConvert.Deserialize<GroupMembershipDto>(response);
		}
Beispiel #8
0
		private GroupDto AddNewGroup (GroupDto userDto)
		{
			userDto.GroupDomain = _domainName;
			var serverDto = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto.ServerName);
			return SnapInContext.Instance.ServiceGateway.Group.Create(_serverDto, _tenantName, userDto, serverDto.Token);
		}
		public override void AwakeFromNib ()
		{
			base.AwakeFromNib ();
			GroupDto = new GroupDto {
				GroupName = GroupDtoOriginal.GroupName,
				GroupDomain = GroupDtoOriginal.GroupDomain,
				GroupDetails = new GroupDetailsDto { Description = GroupDtoOriginal.GroupDetails.Description }
			};
			TxtGroupName.StringValue = GroupDto.GroupName == null ? string.Empty : GroupDto.GroupName;
			TxtGroupDescription.StringValue = GroupDto.GroupDetails.Description == null ? string.Empty : GroupDto.GroupDetails.Description;
			GroupMembersTableView.Delegate = new TableDelegate ();
			GroupMembershipDto = new GroupMembershipDto {
				Users = (GroupsMembershipDtoOriginal.Users == null ? new List<UserDto> () : new List<UserDto> (GroupsMembershipDtoOriginal.Users)),
				SolutionUsers = (GroupsMembershipDtoOriginal.SolutionUsers == null ? new List<SolutionUserDto> () : new List<SolutionUserDto> (GroupsMembershipDtoOriginal.SolutionUsers)),
				Groups = (GroupsMembershipDtoOriginal.Groups == null ? new List<GroupDto> () : new List<GroupDto> (GroupsMembershipDtoOriginal.Groups))
			};
			SetGroupDataSource (GroupMembershipDto);

			BtnSave.Hidden = !IsSystemDomain;

			this.BtnSave.Activated += OnClickSaveButton;
			this.BtnAddMember.Activated += OnClickAddMember;
			this.BtnRemoveMember.Activated += OnClickRemoveMember;
			BtnAddMember.Enabled = IsSystemDomain;
			BtnRemoveMember.Enabled = IsSystemDomain;
		}