Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
how administrator access is handled (e.g. provisioning, principle of least privilege, deprovisioning, etc.)
1 statusCode) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable
1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)
at Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.2022-06-03 00:00:15.691 +00:00 [ERR] Connection ID "16645304224371966669", Request ID "800002de-0000-e700-b63f-84710c7967bb": An unhandled exception was thrown by the application.
Volo.Abp.AbpException: No theme registered! Use AbpThemingOptions to register themes.
at Volo.Abp.AspNetCore.Mvc.UI.Theming.DefaultThemeSelector.GetCurrentThemeInfo()
at Volo.Abp.AspNetCore.Mvc.UI.Theming.DefaultThemeManager.GetCurrentTheme()
at AspNetCore.Views__ViewStart.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderViewStartsAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable1 statusCode) at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable
1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ActionContext actionContext, IView view, ViewDataDictionary viewData, ITempDataDictionary tempData, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewResultExecutor.ExecuteAsync(ActionContext context, ViewResult result)
at Microsoft.AspNetCore.Mvc.ViewResult.ExecuteResultAsync(ActionContext context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultAsync>g__Logged|21_0(ResourceInvoker invoker, IActionResult result)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
Hi team, suddently i am getting 1 issue. In swagger custom modules are not loading. Swagger is showing only defualt ABP modules.
How we can give multiple Authorize attribute having "or" condition like. this will allow method call if any of the permission provided
[Authorize(MyProject.test.Default)] or [Authorize(MyProject.test2.Edit)] public virtual async Task SearchUserAsync(GetUserInput input) {
}
Some users (ex. students) should not have the ability to search for other users to start a chat from CC. Only specified users (ex. nurse) should have the ability to message any user. Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
Can we have Role/User based access control for enabling/disabling search feature in chat.
We are not able to display longer menu text or if we have multi-level menu structure. What is the best way to show the full menu text. please find below 1 such example:
We have to share Url with the client so that 1- identity page is the landing page 2- client need not to select tenant i.e. tenant is already selected based on query parameter 3- after identity verification user will redirect to angular app
How i can achieve this.
2 Problems: 1- Run ABP Suite. Below error occures. As yes we have valid license. 2- When Using CRUD Page Generator Angular UI is not getting generated even C# code is getting generated.
i have 1 scenario where api method receive request. for ex:
Question: how i can achieve this scenario. Please share document and sample code.
i am creating new api endpoint which allowes google auth token to be passed as input paramenter. my api method do all business check as per below code to check the token and register the user. Now question is how i can send idenitty auth token back to user so that it can be used with other api calls.
public async Task<string> RegisterExternalUserAsync(string LoginProvider, string token)
{
//ClaimsPrincipal claimsPrincipal = new();
IRestResponse restResponse = new RestResponse();
if (LoginProvider == "Google")
{
var client = new RestClient("https://www.googleapis.com/oauth2/v2/userinfo");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "application/json");
client.AddDefaultHeader("Authorization", string.Format("Bearer {0}", token));
restResponse = client.Execute(request);
}
if(restResponse == null)
{
return "Invalid Token";
}
CustomUserData data = JsonConvert.DeserializeObject<CustomUserData>(restResponse.Content);
var result = await _signInManager.ExternalLoginSignInAsync(
LoginProvider,
data.id,
isPersistent: true,
bypassTwoFactor: true
);
if (!result.Succeeded)
{
var user = new Volo.Abp.Identity.IdentityUser(GuidGenerator.Create(), data.email, data.email, CurrentTenant.Id);
await _userManager.CreateAsync(user);
await _userManager.AddDefaultRolesAsync(user);
if (!user.EmailConfirmed)
{
var clientUrl = _configuration["App:ClientUrl"];
SendEmailConfirmationTokenDto emailConfirmationTokenDto = new()
{
AppName = "MVC",
Email = data.email,
ReturnUrl = clientUrl
};
await _accountAppService.SendEmailConfirmationTokenAsync(emailConfirmationTokenDto);
}
var userLoginAlreadyExists = user.Logins.Any(x =>
x.TenantId == user.TenantId &&
x.LoginProvider == LoginProvider &&
x.ProviderKey == data.id);
if (!userLoginAlreadyExists)
{
user.AddLogin(new Microsoft.AspNetCore.Identity.UserLoginInfo(
LoginProvider,
data.id,
LoginProvider
)
);
await _userManager.UpdateAsync(user);
}
await _signInManager.SignInAsync(user,true,null);
//TODO: return identity token back to user
}
else
{
var identityUser = await _userManager.FindByEmailAsync(data.email);
await _signInManager.SignInAsync(identityUser, true,null);
//TODO: return identity token back to user
}
return string.Empty;
}