hi
That's strange, Can you share a test project to reproduce?
Thanks
liming.ma@volosoft.com
Can we have a shared session?
The version 7 'Saas' menu is shown at the same level as 'Administration', however, with Abp 8.2.3 blank template, the UI looks like this:

If I downgrade the Abp to 8.1.3, "@volo/abp.ng.text-template-management": "~8.1.3", "@volosoft/abp.ng.theme.lepton-x": "3.1.1",
Then the "Saas menu appears again at the root level
hi
Can you check the permissions(in the permission modal of user or role) of the current user? Does he have saas permissions?
And what's your project info?
- UI Type: Angular / MVC / Blazor WASM / Blazor Server
- Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..) / MongoDB
- Tiered (for MVC) or Auth Server Separated (for Angular): yes/no
Micro Services UI: Angular Db: MongoDB
After login to the app with host admin, with Insomnia copy the access token to request, and get data from the Url: https://localhost:44325/api/abp/application-configuration?IncludeLocalizationResources=False&api-version=1.0
{ "localization": { "values": {}, "resources": {}, "languages": [ { "cultureName": "en", "uiCultureName": "en", "displayName": "English", "twoLetterISOLanguageName": "en" } ], "currentCulture": { "displayName": "English", "englishName": "English", "threeLetterIsoLanguageName": "eng", "twoLetterIsoLanguageName": "en", "isRightToLeft": false, "cultureName": "en", "name": "en", "nativeName": "English", "dateTimeFormat": { "calendarAlgorithmType": "SolarCalendar", "dateTimeFormatLong": "dddd, MMMM d, yyyy", "shortDatePattern": "M/d/yyyy", "fullDateTimePattern": "dddd, MMMM d, yyyy h:mm:ss tt", "dateSeparator": "/", "shortTimePattern": "h:mm tt", "longTimePattern": "h:mm:ss tt" } }, "defaultResourceName": "Ess", "languagesMap": { //Omit... }, "languageFilesMap": { //Omit... }, "auth": { "grantedPolicies": { "AbpIdentity.Roles": true, "AbpIdentity.Roles.Create": true, "AbpIdentity.Roles.Update": true, "AbpIdentity.Roles.Delete": true, "AbpIdentity.Roles.ManagePermissions": true, "AuditLogging.ViewChangeHistory:Volo.Abp.Identity.IdentityRole": true, "AbpIdentity.Users": true, "AbpIdentity.Users.Create": true, "AbpIdentity.Users.Update": true, "AbpIdentity.Users.Update.ManageRoles": true, "AbpIdentity.Users.Update.ManageOU": true, "AbpIdentity.Users.Delete": true, "AbpIdentity.Users.ManagePermissions": true, "AuditLogging.ViewChangeHistory:Volo.Abp.Identity.IdentityUser": true, "AbpIdentity.Users.Impersonation": true, "AbpIdentity.Users.Import": true, "AbpIdentity.Users.Export": true, "AbpIdentity.Users.ViewDetails": true, "AbpIdentity.OrganizationUnits": true, "AbpIdentity.OrganizationUnits.ManageOU": true, "AbpIdentity.OrganizationUnits.ManageRoles": true, "AbpIdentity.OrganizationUnits.ManageMembers": true, "AbpIdentity.ClaimTypes": true, "AbpIdentity.ClaimTypes.Create": true, "AbpIdentity.ClaimTypes.Update": true, "AbpIdentity.ClaimTypes.Delete": true, "AbpIdentity.SettingManagement": true, "AbpIdentity.SecurityLogs": true, "AbpIdentity.Sessions": true, "AbpAccount.SettingManagement": true, "FeatureManagement.ManageHostFeatures": true, "SettingManagement.Emailing": true, "SettingManagement.Emailing.Test": true, "SettingManagement.TimeZone": true, "AuditLogging.AuditLogs": true, "LanguageManagement.LanguageTexts": true, "LanguageManagement.LanguageTexts.Edit": true, "LanguageManagement.Languages": true, "LanguageManagement.Languages.Create": true, "LanguageManagement.Languages.Edit": true, "LanguageManagement.Languages.ChangeDefault": true, "LanguageManagement.Languages.Delete": true, "TextTemplateManagement.TextTemplates": true, "TextTemplateManagement.TextTemplates.EditContents": true, "OpenIddictPro.Application": true, "OpenIddictPro.Application.Update": true, "OpenIddictPro.Application.Delete": true, "OpenIddictPro.Application.Create": true, "OpenIddictPro.Application.ManagePermissions": true, "AuditLogging.ViewChangeHistory:Volo.Abp.OpenIddict.Pro.Applications.Application": true, "OpenIddictPro.Scope": true, "OpenIddictPro.Scope.Update": true, "OpenIddictPro.Scope.Delete": true, "OpenIddictPro.Scope.Create": true, "AuditLogging.ViewChangeHistory:Volo.Abp.OpenIddict.Pro.Scopes.Scope": true, "Saas.Tenants": true, "Saas.Tenants.Create": true, "Saas.Tenants.Update": true, "Saas.Tenants.Delete": true, "Saas.Tenants.ManageFeatures": true, "Saas.Tenants.ManageConnectionStrings": true, "Saas.Tenants.SetPassword": true, "AuditLogging.ViewChangeHistory:Volo.Saas.Tenant": true, "Saas.Tenants.Impersonation": true, "Saas.Editions": true, "Saas.Editions.Create": true, "Saas.Editions.Update": true, "Saas.Editions.Delete": true, "Saas.Editions.ManageFeatures": true, "AuditLogging.ViewChangeHistory:Volo.Saas.Edition": true, "Payment.Plans": true, "Payment.Plans.Create": true, "Payment.Plans.Update": true, "Payment.Plans.Delete": true, "Payment.Plans.GatewayPlans": true, "Payment.Plans.GatewayPlans.Create": true, "Payment.Plans.GatewayPlans.Update": true, "Payment.Plans.GatewayPlans.Delete": true, "Payment.PaymentRequests": true } }, "setting": { "values": { ...//omit } }, "currentUser": { "isAuthenticated": true, "id": "62313e42-ceb3-a848-084e-3a13001ca858", "tenantId": null, "impersonatorUserId": null, "impersonatorTenantId": null, "impersonatorUserName": null, "impersonatorTenantName": null, "userName": "admin", "name": "admin", "surName": null, "email": "admin@abp.io", "emailVerified": false, "phoneNumber": null, "phoneNumberVerified": false, "roles": [ "admin" ], "sessionId": "a1548e95-1015-4455-8dbb-6e4929686da7" }, "features": { "values": { "Identity.TwoFactor": "Optional", "Identity.MaxUserCount": "0", "Account.EnableLdapLogin": "False", "Identity.EnableOAuthLogin": "False", "SettingManagement.Enable": "true", "SettingManagement.AllowChangingEmailSettings": "false", "LanguageManagement.Enable": "true", "TextManagement.Enable": "true", "AuditLogging.Enable": "true", "AuditLogging.SettingManagement": "false" } }, "globalFeatures": { "enabledFeatures": [] }, "multiTenancy": { "isEnabled": true }, "currentTenant": { "id": null, "name": null, "isAvailable": false }, "timing": { "timeZone": { "iana": { "timeZoneName": "Etc/UTC" }, "windows": { "timeZoneId": "UTC" } } }, "clock": { "kind": "Utc" }, "objectExtensions": { "modules": {}, "enums": {} }, "extraProperties": {} }
I guess the Account folder files copied from Account module web project. I copied over login.js, then this issue is resolved. So the pending question is about where to copy over Theme source code to the project.
Can we book a session to share screen?
NuGet package the latest version is 3.2.0 which is the version used in the solution. Angular side use latest version 3.2.1 When I upgrade the solution I use command line to upgrade the solution. ..Theme.LeptonX has no 3.2.1 in Nuget. Also, if I browser NuGet package, I couldn't find Theme.Lepton package but only Theme.LeptionXLite
I haven't read the migration guide, however for backend I compared the solution template generated by AbpSuite project by project. I kind of know the reason above reason, it's because we download account module to angular local and customize it.
After download source code between 7 and 8, I found that module has significant code changes. It seems I have to copy over Angular code of ABP 8 latest code and add on our custom code.
I checked the Swagger UI for identity service. There is no new method. Plus, we have a separate app service: public class CustomIdentityAppService : ApplicationService, ICustomIdentityAppService { }
So in Identity Service, there are two controllers, the second controller doesn't show in swagger at all. Even I exclude first controller from project, the User APIs has no new method exposed. How could you make swagger can access the new method? If swagger APIs are all from ABP's build-in ones, when generate proxy, the new methods wouldn't be available.
[Dependency(ReplaceServices = true)] [ExposeServices(typeof(IdentityUserController))] public class AbcIdentityUserController : IdentityUserController { }
[Area("identity")] [RemoteService(true, Name = "AbpIdentity")] [Route("api/identity/custom")] [Authorize] public class BdoCustomIdentityUserController : AbpControllerBase, ICustomIdentityAppService { }
In Saas Service, we have additional controllers, those controllers APIs was shown on swagger though.