Activities of "maliming"

hi

I have changed the PermissionAppService service, now, there is only one SQL query.

What is your GitHub username? I will invite you to join.

https://github.com/maliming/PortalApi-main/commit/4e479470d6076e3971a05053950cbf93b20b602c

[INF] Request starting HTTP/2 GET api/permission-management/permissions?providerName=R&providerKey=admin

[INF] Executed DbCommand (6ms) [Parameters=[@__names_0='["FeatureManagement.ManageHostFeatures",.......]'
(Size = -1), @__providerName_1='R' 
(Size = 64), @__providerKey_2='admin' (Size = 64)], CommandType='"Text"', CommandTimeout='30']

SELECT [a].[Id], [a].[Name], [a].[ProviderKey], [a].[ProviderName], [a].[TenantId]
FROM [AbpPermissionGrants] AS [a]
WHERE [a].[TenantId] IS NULL AND [a].[Name] IN (
    SELECT [n].[value]
    FROM OPENJSON(@__names_0) WITH ([value] nvarchar(128) '$') AS [n]
) AND [a].[ProviderName] = @__providerName_1 AND [a].[ProviderKey] = @__providerKey_2

[INF] Request finished HTTP/2 GET /api/permission-management/permissions?providerName=R&providerKey=admin - 412.39ms

hi

: )

hi

<PackageReference Include="Serilog.Expressions" Version="3.4.0" />

add .Filter.ByExcluding("RequestPath = '/.well-known/openid-configuration'")

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information()
    .Filter.ByExcluding("RequestPath = '/.well-known/openid-configuration'")
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
    .Enrich.FromLogContext()
    .WriteTo.Async(c => c.File("Logs/logs.txt"))
    .WriteTo.Async(c => c.Console())
    .CreateLogger();

hi

I didn’t receive your project, Can you check again?

hi

Can you share a project to reproduce the problem?

I will download and check it.

Thanks.

liming.ma@volosoft.com

hi

The 9.0.6 has fixed this problem.

Here is a workaround if you can't update it now.

  1. Create a new Pages/Account/Components/ProfileManagementGroup/ProfilePicture/Default.js file in your project(that contain the account module)
  2. Update it as code below

The key changes are:

(function ($) {

    $(function () {
        var l = abp.localization.getResource('AbpAccount');

        var _accountService = volo.abp.account.account;

        var UPPY_UPLOAD_ENDPOINT = $("#uploadEndpoint").val();

        function getUppyHeaders() {
          var headers = {};
          headers[abp.security.antiForgery.tokenHeaderName] = abp.security.antiForgery.getToken();

          return headers;
        }

        var UPPY_OPTIONS = {
            endpoint: UPPY_UPLOAD_ENDPOINT,
            formData: true,
            fieldName: "ImageContent",
            method: "post",
            headers: getUppyHeaders(),
            getResponseData: function (responseText) {
                return {
                    url: ""
                };
            }
        };

        var UPPY = new Uppy.Uppy().use(Uppy.XHRUpload, UPPY_OPTIONS);

        var UPPY_FILE_ID = "uppy-upload-file";

        var fileInput = $("#ChangeProfilePictureForm").find("#Picture");

        var imageContainer = document.getElementById("image");
        imageContainer.addEventListener("ready", putSampleImages);
        imageContainer.addEventListener("cropmove", putSampleImages);
        imageContainer.addEventListener("zoom", putSampleImages);

        var cropper = null;
        var saveProfilePictureBtn = $("#SaveProfilePicture");
        var imageProcessSection = $("div.image-process-section");

        var ppTypeRadio = $(".pp-type-selector");
        var uploadFileContainer = $("div#UploadPPContainer");

        function getSelectedPPTypeValue() {
            return $("input[name=pptype]:checked", "#ChangeProfilePictureForm").val();
        }

        ppTypeRadio.change(function () {
            var selectedValue = getSelectedPPTypeValue();

            if (selectedValue === "use-picture") {
                uploadFileContainer.removeClass("hidden-section");
            } else {
                uploadFileContainer.addClass("hidden-section");

                if (cropper) {
                    $("ul.sample-images li").html("");
                    cropper.destroy();
                    imageContainer.src = "";
                    fileInput.val("");
                }
            }
        });

        var fr = new FileReader();
        fr.onload = function (e) {
            imageContainer.src = this.result;

            cropper = new Cropper(imageContainer, {
                aspectRatio: 1 / 1,
                viewMode: 1,
            });

            putSampleImages();
        };

        fileInput.change(function () {
            if (cropper) {
                cropper.destroy();
                cropper = null;
            }

            var cursorInfo = $('#CursorInfo');
            cursorInfo.removeClass('hidden-section');
            cursorInfo.addClass('cursor-info');

            fr.readAsDataURL($(this).prop("files")[0]);
            imageProcessSection.css("display", "initial");
        });

        function putSampleImages() {
            var places = [
                ["big", 250],
                ["medium", 150],
                ["small", 75],
            ];

            for (let i = 0; i < places.length; i++) {
                var place = places[i];
                var selector = "ul.sample-images li." + place[0];

                $(selector).html(
                    cropper.getCroppedCanvas({ width: place[1], height: place[1] })
                );
            }
        }

        saveProfilePictureBtn.click(function (e) {
            e.preventDefault();

            var $this = $(this);

            var message = null;
            var callBack = null;

            var selectedType = getSelectedPPTypeValue();

            if (selectedType === "use-gravatar") {
                // Use Gravatar

                message = l("UseGravatarConfirm");
                callBack = function (isConfirmed) {
                    if (!isConfirmed) {
                        return;
                    }

                    $this.buttonBusy();
                    _accountService
                        .setProfilePicture({ type: 1 })
                        .then(function (result) {
                            window.location.reload();
                        });
                };
            } else if (selectedType === "use-default") {
                message = l("NoProfilePictureConfirm");

                callBack = function (isConfirmed) {
                    if (!isConfirmed) {
                        return;
                    }

                    $this.buttonBusy();
                    _accountService
                        .setProfilePicture({ type: 0 })
                        .then(function (result) {
                            window.location.reload();
                        });
                };
            } else {
                if (!cropper) {
                    abp.message.warn(l("PleaseSelectImage"));
                    return;
                }

                var canvas = null;

                try {
                    canvas = cropper.getCroppedCanvas();
                } catch (e) {}

                if (canvas === null) {
                    abp.message.warn(l("PleaseSelectImage"));
                    return;
                }

                message = l("PPUploadConfirm");
                callBack = function (isConfirmed) {
                    if (!isConfirmed) {
                        return;
                    }
                    
                    $this.buttonBusy();

                    canvas.toBlob(function (blob) {
                        UPPY.cancelAll();

                        UPPY.addFile({
                            id: UPPY_FILE_ID,
                            name: fileInput[0].files[0].name, // file name
                            type: 2, // file type
                            data: blob, // file blob
                        });

                        UPPY.upload().then((result) => {
                            if (result.failed.length > 0) {
                                $this.buttonBusy(false);
                                abp.message.error(l("UploadFailedMessage"));
                            } else {
                                abp.notify.success(l('SavedSuccessfully'));
                                window.location.reload();
                            }
                        });
                    }, "image/jpeg", 0.95);
                };
            }
            abp.message.confirm(message, l("AreYouSure")).then(callBack);
        });
    });

})(jQuery);
  • ABP Framework version: 9.0
  • UI Type: MVC

hi

We dont have SAML to test this feature.

If you can provide the SAML login info, I can add it as a new login provider

Thanks.

hi

this error start when it is published to azure dev environment.

Ensure your wwwroot/libs folder is up to date in Azure.

It has to be the same as your local. You can check it.

Thanks

Showing 1591 to 1600 of 10669 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 15, 2025, 14:41