Activities of "sumeyye.kurtulus"

Thank you for sharing the details. We’ve successfully reproduced the same issue on our side and confirmed that it stems from an inconsistency in the code generation process when using ABP Suite alongside proxy generation.

We’re currently working on a fix, which will be included in the upcoming release. In the meantime, I can share the updated file that resolves the issue directly with you via drive. https://drive.google.com/drive/folders/1MHQSeIa6rOw4rAcXAnq11U2XLfFYjTc5?usp=drive_link. If you replace the .suite folder under your angular app directory, you will be able to work around the issue.

We appreciate your patience and cooperation as we work to improve the experience. Let us know if you have any further questions!

Hello, this problem will be solved within the next release as we have mentioned in this answer: https://abp.io/qa/questions/9043/3a18ea20-92a2-5df8-caf1-981e1f1c0fb1

Thank you for your cooperation.

This problem occurs where this permission guard is used. That is why, some routes are affected while others are not.

Does the module need to refer to permission.guard.ts separately in the next version?

The solution I offered is a temporary one, so you will not need it once it is fixed on our side. Also, I cannot produce the sidebar problem on my end. Can you confirm that this happens after adding the new guard?

Hello, thank you for your patience, and we sincerely apologize for the delayed response. We appreciate you reporting this issue. The problem will be addressed in our upcoming release. In the meantime, you can work around it by overriding the related guard as follows:

// new-permission.guard.ts
import {
  RoutesService,
  AuthService,
  PermissionService,
  HttpErrorReporterService,
  findRoute,
  getRoutePath,
  ConfigStateService,
} from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
import { inject } from '@angular/core';
import {
  CanActivateFn,
  ActivatedRouteSnapshot,
  RouterStateSnapshot,
  Router,
} from '@angular/router';
import { of, switchMap, take, tap, distinctUntilChanged, filter, map } from 'rxjs';

export const newPermissionGuard: CanActivateFn = (
  route: ActivatedRouteSnapshot,
  state: RouterStateSnapshot
) => {
  const router = inject(Router);
  const routesService = inject(RoutesService);
  const authService = inject(AuthService);
  const permissionService = inject(PermissionService);
  const configState = inject(ConfigStateService);
  const httpErrorReporter = inject(HttpErrorReporterService);

  let { requiredPolicy } = route.data || {};

  if (!requiredPolicy) {
    const routeFound = findRoute(routesService, getRoutePath(router, state.url));
    requiredPolicy = routeFound?.requiredPolicy;
  }

  if (!requiredPolicy) {
    return of(true);
  }

  return configState.getAll$().pipe(
    map(config => config.auth?.grantedPolicies),
    distinctUntilChanged(),
    filter(Boolean),
    take(1),
    switchMap(() => permissionService.getGrantedPolicy$(requiredPolicy)),
    tap(access => {
      if (!access && authService.isAuthenticated) {
        httpErrorReporter.reportError({ status: 403 } as HttpErrorResponse);
      }
    })
  );
};

Inside the app-routing.module

const routes: Routes = [
...
  {
    path: 'openiddict',
    loadChildren: () =>
      import('@volo/abp.ng.openiddictpro').then(m => m.OpeniddictproModule.forLazy()),
    canActivate: [newPermissionGuard],
  },
...
];

Additionally, we will be processing a refund for your ticket. Please don't hesitate to reach out if you need any further assistance.

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

Showing 181 to 190 of 429 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 16, 2025, 10:35