Activities of "liangshiwei"

Am I doing something incorrect while creating projects via ABP Suite?

The docs have two modules: Volo.Docs.Admin and Volo.Docs

But Volo.Docs.Admin is not available in the ABP suite, It seems a problem, we will fix it.

Hi,

For point 1, it has created another issue, please see below screenshot:

Please update the Default.cshtml

@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.SideMenu.MainMenu
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.Common.MobileGeneralSettings
@using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonX.Themes.LeptonX.Components.SideMenu.MobileNavbar
@using Volo.Abp.LeptonX.Shared.Localization
@using Microsoft.Extensions.Localization
@using Volo.Abp.Users

@model MobileNavbarViewModel
@inject ICurrentUser CurrentUser
@inject IStringLocalizer<LeptonXResource> L

<div class="lpx-mobile-navbar-container">
	<div class="lpx-mobile-navbar">
		<ul class="lpx-mobile-nav-tabs">

			@foreach (var viewModel in Model.SelectedMenuItems)
			{
				var url = string.IsNullOrEmpty(viewModel.MenuItem.Url) ? "#" : Url.IsLocalUrl(viewModel.MenuItem.Url) ? Url.Content(viewModel.MenuItem.Url.EnsureStartsWith('~')) : viewModel.MenuItem.Url;

				<li class="lpx-mobile-nav-tab">
					<a id="@viewModel.MenuItem.ElementId" href="@url" target="@viewModel.MenuItem.Target" class="lpx-mobile-nav-item @viewModel.MenuItem.CssClass">
						<i class="menu-item-icon @viewModel.MenuItem.Icon" aria-hidden="true"></i>
						<span class="mobile-item-text"> @viewModel.MenuItem.DisplayName </span>
					</a>
				</li>
			}

			<li class="lpx-mobile-nav-tab menu-toggle">
				<a href="javascript:void(0)" class="lpx-mobile-hamburger" data-lpx-mobile-menu-toggle="routes">
					<span class="hamburger-icon" aria-hidden="true">
						<span class="icon-part"></span>
						<span class="icon-part"></span>
						<span class="icon-part"></span>
						<span class="icon-part"></span>
						<span class="icon-part"></span>
						<span class="icon-part"></span>
					</span>
				</a>
			</li>

			<li class="lpx-mobile-nav-tab">
				<a class="lpx-mobile-nav-item" data-lpx-mobile-menu-toggle="settings">
					<i class="menu-item-icon bi bi-gear-wide-connected" aria-hidden="true"></i>
					<span class="mobile-item-text">Settings</span>
				</a>
			</li>
			<li class="lpx-mobile-nav-tab">
				@if (CurrentUser.IsAuthenticated)
				{
				  <a class="lpx-mobile-nav-item" data-lpx-mobile-menu-toggle="user">
				  <div class="lpx-avatar">
					   <img class="lpx-avatar-img" src="@Model.ProfileImageUrl" alt="admin avatar">
					</div>

				    <span class="mobile-item-text">@CurrentUser.UserName</span>
				  </a>
				}
				else
				{
				  <a href="~/account/login" class="lpx-mobile-nav-item">
				    <i class="menu-item-icon bi bi-person-fill" aria-hidden="true"></i>
				    <span class="mobile-item-text">@L["Login"]</span>
				  </a>
				}
			</li>
		</ul>
	</div>

	<div class="lpx-mobile-menu hidden">
		<div class="lpx-logo-container">
			<a href="/">
				<div class="lpx-brand-logo"></div>
			</a>
		</div>
		<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="routes">
			@await Component.InvokeAsync(typeof(MainMenuViewComponent))
		</ul>

		<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="settings">
			@await Component.InvokeAsync(typeof(MobileGeneralSettingsViewComponent))
		</ul>

		<ul class="lpx-nav-menu d-none" data-lpx-mobile-menu="user">
			<div class="d-flex ps-3 pe-3">
				<div class="lpx-avatar me-2">
					<a class="lpx-mobile-nav-item"><img class="lpx-avatar-img" src="@Model.ProfileImageUrl" alt=""></a>
				</div>

				<div class="d-flex flex-column" style="line-height: normal">
					<span class="fs-12">@L["Welcome"] <span class="color-active-text"> @CurrentUser.UserName </span> </span>
					<span class="color-active-text">@CurrentUser.Name @CurrentUser.SurName</span>
					<span class="fs-12">@CurrentUser.Email</span>
				</div>
			</div>

			@if (Model.UserMenu != null)
			{
				foreach (var menuItem in Model.UserMenu.Items)
				{
					var url = string.IsNullOrEmpty(menuItem.Url) ? "#" : Url.IsLocalUrl(menuItem.Url) ? Url.Content(menuItem.Url.EnsureStartsWith('~')) : menuItem.Url;

					<li class="outer-menu-item">
						<a class="lpx-menu-item-link lpx-menu-item @menuItem.CssClass" href="@url" target="@menuItem.Target" id="@menuItem.ElementId">
							<span class="lpx-menu-item-icon"><i class="lpx-icon bi @menuItem.Icon" aria-hidden="true"></i></span>

							<span class="lpx-menu-item-text hidden-in-hover-trigger">@menuItem.DisplayName</span>
						</a>
					</li>
				}
			}
		</ul>
	</div>
</div>

For Point 2, It is already referred in the project, please see screenshot:

You also need to install admin.application , admin.application.contract, admin.httpapi etc... packages.

The swagger UI missing some resources, does 7.0.3 has bugs?, please see attached screenshots:

You can move the DocsWebModule to the WebPublic project.

Hi,

You can check this:

https://support.abp.io/QA/Questions/4791/Publish-single-project-app-Net-Core-ABP-701-to-shared-hosting-get-50030-error

Hi,

You can check this: https://github.com/abpframework/abp/blob/rel-5.2/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs#L39

https://github.com/abpframework/abp/blob/rel-5.2/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json#L10

The route has a property invisible, you can check the permissions manually.

Hi,

You can check this: https://docs.abp.io/en/abp/latest/Multi-Tenancy#custom-tenant-resolvers

Pseudo code:

public class DocumentTenantResolverContributor : HttpTenantResolveContributorBase
{
    public override string Name { get; }
    protected override Task<string> GetTenantIdOrNameFromHttpContextOrNullAsync(ITenantResolveContext context, HttpContext httpContext)
    {
        if(httpContext.Request.GetDisplayUrl().Contains("/..."))
        {
            context.Handled = true;
        }
        
        return Task.FromResult<string>(null);
    }
}

Configure<AbpTenantResolveOptions>(options =>
{
    options.TenantResolvers.Insert(0, .);
});

The TenantResolverContributor needs add to as the first contributor

Hi,

How we can add multiple policies. is it comma seperated and will it consider "and" or "or" condition for permissions?

Unfortunately not.

Hi,

Do you want to switch to host when navigating the document page, right?

Hi,

See: https://docs.abp.io/en/abp/latest/Object-Extensions#getproperty

var identity = context.ClaimsPrincipal.Identities.FirstOrDefault();
var userId = identity?.FindUserId();
if (userId.HasValue)
{
    var userManager = context.ServiceProvider.GetRequiredService<IdentityUserManager>();
    var user = await userManager.GetByIdAsync(userId.Value);
    var licienceId = user.GetProperty<string>("LicienceId");
    ......
}

Hi,

Sorry, I just realized you are using angular UI.

You can check the document to patch a menu: https://docs.abp.io/en/abp/4.2/UI/Angular/Modifying-the-Menu#how-to-patch-or-remove-a-navigation-element

const newIdentityUserRouteConfig: Partial<ABP.Route> = {
  parentName: eIdentityRouteNames.IdentityManagement,
  requiredPolicy: 'permission key here',
};

this.routes.patch(eIdentityRouteNames.Users, newIdentityUserRouteConfig);
Showing 4201 to 4210 of 6693 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