Activities of "sumeyye.kurtulus"

Hello, and thank you for bringing this to our attention. This issue has been identified and will be addressed in the upcoming release.

In the meantime, you can work around the problem by overriding the relevant service as follows:

// custom-route.service.ts
...
import { RoutesService } from '@volo/ngx-lepton-x.core';
...

@Injectable({
  providedIn: 'root',
})
export class CustomRouteService extends RoutesService {
  location = inject(Location);
  constructor() {
    super();
  }

  override currentNavigation: Signal<string> = toSignal(
    this.router.events.pipe(
      filter(e => e instanceof NavigationEnd),
      map(
        () => this.router.url
        // You can also use this if you prefer using `useHash: true` option
        // () => this.location.path(true)
      )
    ),
    // { initialValue: this.location.path(true) }
    { initialValue: this.router.url }
  );
}
@NgModule({
  providers: [
    { provide: RoutesService, useClass: CustomRouteService },
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}

Please let us know if you need further assistance or if the issue persists after applying the workaround.

Hello,

This issue seems to be related to a third-party integration with Perfect Scrollbar. However, Perfect Scrollbar has been removed from the templates in the latest release.

Could you verify if this behavior still occurs in an application generated with version 9.1? If the issue persists, we can investigate further to identify a possible solution.

I’m glad to hear your issue has been resolved. Typically, generated-proxy.json is read and overridden each time proxies are generated. However, in cases where it persists, it may be helpful to verify the generation process within ABP Suite to ensure expected behavior.

Thank you for sending the project over. After reviewing it, I noticed an issue with the generated-proxy.json files. Specifically, the module name being used is incorrect. The system expects the module name to be orderquery, but it currently reads as orderQueryService.

Could you also confirm whether you used Suite to generate the code for the Orders entity? If so, I have observed an inconsistency between the Suite and Schematics command that needs to be addressed.

This issue will be resolved in the next release, but in the meantime, I recommend the following steps to resolve the problem:

  1. Delete the existing generated-proxy.json file.

  2. Run the same following command to regenerate the proxy with the correct module name:

abp generate-proxy -t ng -m orderquery -u http://localhost:44305 --target order-query-service

Once completed, the issue should be resolved. Please feel free to reach out if you need any further assistance or clarification.

Thank you for sharing these details. Based on your description, it appears that the issue stems from the impersonation process after migration. To address this, we recommend overriding the existing impersonation logic by implementing a dedicated service, such as CustomImpersonationService.

To proceed:

  1. Create a new service (CustomImpersonationService) to handle impersonation logic.
// custom-impersonation.service.ts
import { PermissionService } from '@abp/ng.core';
import { inject, Injectable } from '@angular/core';
import { ImpersonationService } from '@volo/abp.commercial.ng.ui/config';
import { tap, switchMap, from } from 'rxjs';

@Injectable({
  providedIn: 'root',
})
export class CustomImpersonationService extends ImpersonationService {
  protected permissionService = inject(PermissionService);

  constructor() {
    super();
  }

  override impersonate({
    tenantId,
    userId,
    tenantUserName,
  }: Partial<{
    tenantId: string;
    userId: string;
    tenantUserName: string;
  }>): import('rxjs').Observable<import('@abp/ng.core').AbpAuthResponse> {
    const params = {};

    if (tenantId) {
      params['TenantId'] = tenantId;
    }

    if (userId) {
      params['UserId'] = userId;
    }

    if (tenantUserName) {
      params['TenantUserName'] = tenantUserName;
    }

    return this.environment.getEnvironment$().pipe(
      tap(({ oAuthConfig: { responseType } }) => {
        if (responseType === 'code') {
          this.authService.oidc = false;
        }
      }),
      switchMap(() => {
        const promiseOfLogin = this.authService.loginUsingGrant('Impersonation', params);
        return from(promiseOfLogin).pipe(
          tap(() => {
            location.href = this.environment.getEnvironment().application?.baseUrl || '/';
          })
        );
      })
    );
  }
}
  1. Register this service in the providers array within app.module.ts.
// app.module.ts
@NgModule({
  ...
  providers: [
    { provide: ImpersonationService, useClass: CustomImpersonationService },
  ],
  ...
})

Please note that this fix is applicable only to the latest version, as we can only publish updates for that release. Let us know if you need any further guidance—we appreciate your cooperation!

Hi,

I've generated a new solution with Abp studio. The problem persist. I can share with you. Just let know how.

Cheers,

Can you share the project via this email please sumeyye.kurtulus@volosoft.com

Hello, I cannot produce the same problem on my end. If you could provide the steps for creating these services or share a minimal reproducible example, I can assist you further on that.

Hello,

Thank you for providing detailed steps on the issue. Based on your description, I attempted to replicate the problem but was unable to reproduce it in my environment. Here is the configuration I used for testing:

const oAuthConfig = {
  ...
  impersonation: {
    tenantImpersonation: true,
    userImpersonation: true,
  },
};

Could you please confirm that this configuration has been applied in your environment as well? Additionally, are there any custom configurations in your routing that impose extra permission checks?

After using the temporary solution, there is no error output.

It's great to hear that the temporary solution has resolved the initial issue.

But I found this issue

Regarding the multiple log outputs in isImpersonatorVisible(), this behavior is expected. The function is likely being called multiple times because it is used in the component's template, which triggers change detection cycles. Angular re-evaluates the function whenever a change occurs in the component, ensuring that the UI reflects the latest state.

Hello @smansuri,

Thank you for your patience. I apologize for the delayed response. The task has now been successfully completed and will be included in the upcoming studio release. We appreciate your cooperation and will keep you informed of any further updates.

Showing 221 to 230 of 465 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on November 04, 2025, 06:41