Exemplo n.º 1
0
        /// <summary>
        /// Updates an OrganizationUserPermission with passed fields
        /// </summary>
        /// <param name="command">contains ID and fields</param>
        /// <returns></returns>
        public EmptyResult UpdateOrganizationUserPermission(UpdateOrganizationUserPermissionCommand command)
        {
            if (!command.OrganizationUserId.HasValue)
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidUpdateOrganizationNameError(nameof(command.OrganizationUserId))));
            }

            if (string.IsNullOrEmpty(command.UserId))
            {
                return(new EmptyResult(AuthorizationServiceErrors.InvalidExternalUserId()));
            }

            if (!organizationUserPermissionRepository.ExistsOrganizationUserPermission(command.OrganizationUserId.Value, command.UserId))
            {
                organizationUserPermissionRepository.CreateOrganizationUserPermission(
                    command.OrganizationUserId.Value,
                    command.UserId,
                    command.Permissions);
            }
            else
            {
                organizationUserPermissionRepository.UpdateOrganizationUserPermission(command);
            }

            return(new EmptyResult());
        }
Exemplo n.º 2
0
        public Result <OrganizationUserAndRolePermissionsListView> QueryOrganizationUserAndRolePermission(QueryOrganizationUserAndRolePermissionCriteria criteria)
        {
            if (string.IsNullOrEmpty(criteria.UserId))
            {
                return(new Result <OrganizationUserAndRolePermissionsListView>(AuthorizationServiceErrors.InvalidExternalUserId()));
            }

            if (!criteria.OrganizationId.HasValue)
            {
                return(new Result <OrganizationUserAndRolePermissionsListView>(AuthorizationServiceErrors.InvalidOrganizationIdError()));
            }
            var userPermissions = organizationUserPermissionRepository.QueryAllOrganizationUserPermission(criteria.OrganizationId.Value, criteria.UserId);
            var rolePermissions = rolePermissionRepository.QueryRolePermissionByExternalUserId(criteria.OrganizationId.Value,
                                                                                               criteria.UserId);
            var result = new OrganizationUserAndRolePermissionsListView
            {
                OrganizationId     = criteria.OrganizationId,
                OrganizationUserId = rolePermissions.FirstOrDefault(rp => rp.OrganizationUserId.HasValue)
                                     ?.OrganizationUserId ??
                                     userPermissions.FirstOrDefault(up => up.OrganizationUserId.HasValue)
                                     ?.OrganizationUserId,
                UserId      = criteria.UserId,
                Permissions = new List <string>()
            };

            if (userPermissions != null && userPermissions.Any())
            {
                result.Permissions.AddRange(userPermissions.Select(up => up.Permissions));
            }
            if (rolePermissions != null && rolePermissions.Any())
            {
                result.Permissions.AddRange(rolePermissions.Select(up => up.Permissions));
            }

            return(new Result <OrganizationUserAndRolePermissionsListView>(result));
        }