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:
Delete the existing generated-proxy.json file.
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:
// 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 || '/';
})
);
})
);
}
}
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.
The issue you raised regarding the ability to modify the icons displayed in the mobile navbar has been addressed and will be included in the next release. You can track the updates here: ABP Releases.
Additionally, we acknowledge your suggestions for further customization options, such as controlling the visibility of languages, appearance settings, and theme behavior. These enhancements have been noted for future development to improve flexibility and user experience.
As requested, we have processed a refund for this ticket.
My question is: How can I update the ABP CLI to version 9.1 the right way? To try again.
You can use abp cli update command to update your cli. You can also check documentation for more options: https://abp.io/docs/latest/cli#cli
If you want to update your solution, you can check this part of the documentation: https://abp.io/docs/latest/cli#update