diff --git a/.gitignore b/.gitignore index 3161f04ef2..3f8d0ff6cb 100644 --- a/.gitignore +++ b/.gitignore @@ -301,7 +301,7 @@ samples/MicroserviceDemo/microservices/TenantManagementService.Host/Logs/logs.tx /npm/packs/bootstrap/package-lock.json /templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package-lock.json /templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package-lock.json -/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package-lock.json +/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package-lock.json modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Logs/ /templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package-lock.json diff --git a/Directory.Build.props b/Directory.Build.props index 568d00f5c3..03538ef037 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,14 +1,20 @@ - + + + 6.0.5 + + + 6.0.5 + 6.0.0 - 16.11.0 + 17.2.0 - 4.2.2 + 4.3.0 4.0.3 @@ -20,20 +26,26 @@ 2.4.1 - 2.4.3 + 2.4.5 3.1.3 - 4.0.1 + 4.2.0 + + + 1.20.0 + + + 7.2.3 true - + all runtime; build; native; contentfiles; analyzers diff --git a/README.md b/README.md index c8526a9daa..332cf2adc5 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ [![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds) [![NuGet Download](https://img.shields.io/nuget/dt/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) +[![ABP Discord server](https://img.shields.io/discord/951497912645476422?label=Discord)](https://discord.gg/abp) + ABP Framework is a complete **infrastructure** based on the **ASP.NET Core** to create **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**. Check out https://abp.io ## Getting Started @@ -65,7 +67,7 @@ ABP is a modular framework and the Application Modules provide **pre-built appli - [**Account**](https://docs.abp.io/en/abp/latest/Modules/Account): Provides UI for the account management and allows user to login/register to the application. - **[Identity](https://docs.abp.io/en/abp/latest/Modules/Identity)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library. -- [**IdentityServer**](https://docs.abp.io/en/abp/latest/Modules/IdentityServer): Integrates to IdentityServer4. +- [**OpenIddict**](https://docs.abp.io/en/abp/latest/Modules/OpenIddict): Integrates to OpenIddict. - [**Tenant Management**](https://docs.abp.io/en/abp/latest/Modules/Tenant-Management): Manages tenants for a [multi-tenant](https://docs.abp.io/en/abp/latest/Multi-Tenancy) (SaaS) application. See the [Application Modules](https://docs.abp.io/en/abp/latest/Modules/Index) document for all pre-built modules. diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 1dc0d7c1f7..9569a08657 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -393,6 +393,7 @@ "StartTime": "Start Time", "EndTime": "End Time", "CreateABookDiscount": "Create a book discount", - "BookDiscountDeletionConfirmationMessage": "Are you sure you want to delete this book discount?" + "BookDiscountDeletionConfirmationMessage": "Are you sure you want to delete this book discount?", + "CustomPaymentFlexSwitchDescription": "With license" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index e898619b64..382d31dd5d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -26,6 +26,8 @@ "Volo.AbpIo.Domain:030009": "User not found!", "Volo.AbpIo.Domain:030010": "To purchase the trial license, you first need to activate your trial license!", "Volo.AbpIo.Domain:030011": "You cannot delete a trial license when it is purchased!", + "Volo.AbpIo.Domain:070000": "The organization name can only contain latin letters, numbers, dots and hyphens!", + "Volo.AbpIo.Domain:070001": "The company name can only contain latin letters, numbers, dots, space and hyphens!", "WantToLearn?": "Want to learn?", "ReadyToGetStarted?": "Ready to get started?", "JoinOurCommunity": "Join our community", @@ -125,6 +127,40 @@ "Volo.AbpIo.Domain:080001": "Start Time can not be greater than End Time", "Enum:BookType:0": "Mastering ABP Framework", "Enum:PurchasePlatform:0": "Amazon", - "Enum:PurchasePlatform:1": "Packt" + "Enum:PurchasePlatform:1": "Packt", + "Copied": "Copied!", + "CouldNotCopy": "Could not copy!", + "CopyNotSupportByYourBrowser": "This feature does not work in the browser you are using.", + "City": "City", + "ZipCode": "Zip Code", + "Address": "Address", + "Homepage": "Homepage", + "Year": "Year", + "Copyright": "Copyright © {1}", + "DomainDrivenDesign": "Domain Driven Design", + "CrossCuttingConcerns": "Cross Cutting Concerns", + "AbpCommunity": "ABP Community", + "Footer_GithubStarCount": "{0} Star on GitHub", + "Footer_NugetDownloadCount": "{0} Downloads on NuGet", + "AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code.", + "Layout_AbpFramework_MetaTitle": "ABP Framework - Open Source Web Application Framework", + "CommunityTalks_CountdownDays": "Days", + "CommunityTalks_CountdownHours": "Hrs", + "CommunityTalks_CountdownMinutes": "Min", + "CommunityTalks_CountdownSeconds": "Sec", + "SeePreviousEvents": "See Previous Events", + "CookieConsent_Accept": "Accept", + "CookieConsent_Explanation_1": "We use cookies to give you the best experience on our website.", + "CookieConsent_Explanation_2": "If you continue to browse, then you agree to our Privacy policy and cookie policy..", + "Error_Page_400_Title": "There was a problem serving the requested page.", + "Error_Page_400_Description_1": "Usually this means that an unexpected error happened while processing your request.", + "Error_Page_400_Description_2": "If the problem persists, contact us at info@abp.io and we'll help get you on your way.", + "GoToHomepage": "Go to Homepage", + "Error_Page_404_Title": "Page Not Found!", + "Error_Page_404_Description_1": "This is not the web page you're looking for.", + "Error_Page_500_Title": "Looks like something went wrong!", + "Error_Page_500_Description_1": "We track these errors automatically, but if the problem persists feel free to
contact us. In the meantime, try refreshing.", + "Error_Page_500_Description_2": "Contact with us at info@abp.io.", + "Books": "Books" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json index 189662ee7c..6f52556e72 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Blog/Localization/Resources/en.json @@ -1,5 +1,7 @@ { "culture": "en", "texts": { + "AbpTitle": "ABP Framework - Open Source Web Application Framework", + "AbpDescription": "ABP is an open source application framework focused on AspNet Core based web application development. Don't repeat yourself, focus on your own business code." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 5a63ea7869..f8d5de9688 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -10,7 +10,7 @@ "Unlimited": "Unlimited", "Owners": "Owners", "Owner": "Owner", - "AddMember": "Add member", + "AddMember": "Add Member", "AddNewOwner": "Add New Owner", "AddNewDeveloper": "Add New Developer", "UserName": "Username", @@ -30,7 +30,7 @@ "LicenseAddDeveloperMessage": "{0} developers added to your license", "Volo.AbpIo.Commercial:010004": "Can not find the specified user! The user must have already been registered.", "MyOrganizations": "My organizations", - "ApiKey": "API key", + "ApiKey": "API Key", "UserNameNotFound": "There is no user with the username {0}", "SuccessfullyAddedToNewsletter": "Thank you for subscribing to our newsletter!", "MyProfile": "My profile", @@ -128,6 +128,8 @@ "TellUsWhatYouNeed": "Tell us what you need.", "YourMessage": "Your Message", "YourFullName": "Your full name", + "FirstNameField": "First Name", + "LastNameField": "Last Name", "EmailField": "E-mail Address", "YourEmailAddress": "Your e-mail address", "HowMayWeHelpYou": "How may we help you?", @@ -158,6 +160,8 @@ "SearchQuestionPlaceholder": "Search in frequently asked questions", "WhatIsTheABPCommercial": "What is ABP Commercial?", "WhatAreDifferencesThanAbpFramework": "What are the differences between the open source ABP Framework and ABP Commercial?", + "AbpCommercialMetaTitle": "ABP Commercial - Complete Web Development Platform : {0} | ABP Commercial", + "AbpCommercialMetaDescription": "ABP Commercial is a set of pre-built application modules, rapid development tooling, UI themes and services built on top of the open-source ABP framework.", "ABPCommercialExplanation": "ABP Commercial is a set of premium modules, tools, themes and services that are built on top of the open source ABP framework. ABP Commercial is being developed and supported by the same team behind the ABP framework.", "WhatAreDifferencesThanABPFrameworkExplanation": "

ABP framework is a modular, themeable, micro-service compatible application development framework for ASP.NET Core. It provides a complete architecture and a strong infrastructure to let you focus on your own business code rather than repeating yourself for every new project. It is based on the best practices of software development and popular tools you already know.

ABP framework is completely free, open source and community-driven. It also provides a free theme and some pre-built modules (e.g. identity management and tenant management).

", "VisitTheFrameworkVSCommercialDocument": "Visit the following link for more information {1} ", @@ -379,13 +383,11 @@ "TaxNoValidationMessage": "TAX/VAT No is too long!", "NotesValidationMessage": "Notes field is too long!", "CheckYourBillingInfo": "You can create your invoice only once! Check your billing information before creating your invoice.", - "Volo.AbpIo.Commercial:030000": "You already used your trial period.", - "Volo.AbpIo.Commercial:030001": "This organization name already exists.", "StartYourFreeTrial": "Start your free trial", "TrialLicenseModelInvalidErrorMessage": "One of the following fields is invalid: Country Name, Company Size, Industry or Purpose Of Usage.", "Trial": "Trial", "Purchased": "Purchased", - "PurchaseLicense": "Purchase Now", + "PurchaseNow": "Purchase Now", "PurchaseTrialLicenseMessage": "Your license expiration date is {0}.
If you want to continue using the projects you created during your free trial period, you need to change the license keys in your appsettings.secrets.json files. Here is your license key:", "TrialLicenseExpireMessage": "You are using the trial license and your trial license will expire on {0}.", "TryForFree": "Try For Free", @@ -488,26 +490,239 @@ "BackOfficeApplicationExplanation": "The actual web application of your system, with multiple UI framework options. You can create any kind of business application.", "LandingWebsite": "Landing Website", "LandingWebsiteExplanation": "A generic landing/public website that can be used for several purposes, like introducing your company, selling your products, etc.", - "ABPFrameworkEBook": "E-Book: Mastering ABP Framework", + "ABPFrameworkEBook": "Mastering ABP Framework e-book", "MasteringAbpFrameworkEBookDescription": "Included within your ABP Commercial license", - "Volo.AbpIo.Domain:070000": "The organization name can only contain latin letters, numbers, dots and hyphens!", - "Volo.AbpIo.Domain:070001": "The company name can only contain latin letters, numbers, dots, space and hyphens!", "FullName": "Full Name", "LicenseTypeNotCorrect": "The license type is not correct!", "Trainings": "Trainings", - "ChoseTrainingPlaceholder": "Chose the training...", + "ChooseTrainingPlaceholder": "Choose the training...", "DoYouNeedTrainings": "Do you need one of these trainings?", "DoYouNeedTraining": "Do you need {0} training?", "GetInTouchUs": "Get in touch with us", "ForMoreInformationClickHere": "For more information, click here.", "IsGetOnboardingTraining": "Would you like to get onboarding & web application development training?", "OnboardingWebApplicationDevelopmentTrainingMessage": "To schedule your training calendar, please contact {0} after creating the organization", + "CustomPurchaseMessage": "For the next step, click {0} to contact us.", "Note": "Note", "AdditionalNote": "Additional Note", "OnboardingTrainingFaqTitle": "Do you have ABP onboarding training?", "OnboardingTrainingFaqExplanation": "Yes, we have ABP Training Services to help you get your ABP project started fast. You will learn about ABP from an ABP core team member and you will get the skills to begin your ABP project. In the onboarding training, we will explain how to set up your development environment, install the required tools, create a fully functional CRUD page. The training will be live and the Zoom application will be used, and we are open to using other online meeting platforms. The language of the training will be English. You can also ask your questions about ABP during the sessions. A convenient time and date will be planned for both parties. To get more information, contact us at info@abp.io.", "AddBasket": "Add to Basket", "SendTrainingRequest": "Send Training Request", - "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date and the English version will prevail in any dispute." + "OnlyEnglishVersionOfThisDocumentIsTheRecentAndValid": "* The English version of this document is the most up-to-date and the English version will prevail in any dispute.", + "Pricing_Page_Title": "Plans & Pricing", + "Pricing_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects.", + "Pricing_Page_HurryUp": "Hurry Up!", + "Pricing_Page_BuyLicense": "Buy a license at 2021 prices until January 16!", + "Pricing_Page_ValidForExistingCustomers": "Also valid for existing customers and license renewals.", + "Pricing_Page_Hint1": "The license price includes a certain number of developer seats. If you have more developers, you can always purchase additional seats.", + "Pricing_Page_Hint2": "You can purchase more developer licenses now or in the future. Licenses are seat based, so you can transfer a seat from a developer to another.", + "Pricing_Page_Hint3": "You can develop unlimited count of different products with your license.", + "Pricing_Page_Hint4": "ABP Suite is a tool to assist your development to improve your productivity. It supports generating CRUD pages and creating new projects.", + "Pricing_Page_Hint5": "You can use all the pre-built modules in your applications.", + "Pricing_Page_Hint6": "You can use all the pre-built themes in your applications.", + "Pricing_Page_Hint7": "A startup template is a Visual Studio solution to make you jump-start to your project. All fundamental modules are added and pre-configured for you.", + "Pricing_Page_Hint8": "Mastering ABP Framework e-book explains how to implement .NET solutions with best practices. It is sold on Amazon.com and you can download the book for free within your license.", + "Pricing_Page_Hint9": "You can download the source-code of any module. You may want to add the source code to your solution to make radical changes or just keep it for yourself for security reasons.", + "Pricing_Page_Hint10": "Licenses are for lifetime. That means you can continue to develop your application forever. Accessing to the latest version and getting support are granted within the license period (1 year unless you renew it).", + "Pricing_Page_Hint11": "No restrictions on deployment! You can deploy to as many servers as you want, including the cloud services or on-premises.", + "Pricing_Page_Hint12": "You can update the modules, themes and tools to the latest version within your active license period. After your license expires, you need to renew it, to continue to get updates for bug fixes, new features and enhancements.", + "Pricing_Page_Hint13": "You can get the premium support for one year (you can renew your license to extend it).", + "Pricing_Page_Hint14": "Team and Business licenses have incident/question count limit. If you buy additional developer licenses, your incident limit increases by {0} (for the Team License) or {1} (for the Business License) per developer.", + "Pricing_Page_Hint15": "Only Enterprise License includes private support. You can send e-mail directly to the ABP Team or ask questions on support.abp.io with private ticket option. The private tickets are not visible to the public.", + "Pricing_Page_Hint16": "You can download the source-code of all ABP themes. You may want to add the source code to your solution to make radical changes or just keep it for yourself for security reasons.", + "Pricing_Page_Testimonial_1": "ABP Commercial allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized micro-services stack via full CI/CD and pipelines into production.", + "Pricing_Page_Testimonial_2": "We are seeing the value of using ABP Commercial to reduce the overhead of custom development projects. And the team is able to unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP Commercial.", + "Pricing_Page_Testimonial_3": "We love ABP. We don't have to write everything from scratch. We start from out-of-the-box features and just focus on what we really need to write. Also, ABP is well-architected and the code is high quality with fewer bugs. If we would have to write everything we needed on our own, we might have to spend years. Once more things we like is that the new version, or issue fixing, or improvement come out very soon every other week. We don't wait too long.", + "Pricing_Page_Testimonial_4": "ABP Commercial is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump start that the framework and tooling provide any team is worth every cent. ABP Commercial was the best fit for our needs.", + "AbpBookDownloadArea_ClaimYourEBook": "Claim your Mastering ABP Framework E-Book", + "AddMemberModal_Warning_1": "If the username you are trying to add doesn't exist in the system, please ask your team member to register on {0} and share the username of his/her account with you.", + "MyOrganizations_Detail_WelcomeMessage": "Welcome to your organization, {0}", + "MyOrganizations_Detail_OrganizationManagement": "Organization Management", + "OrganizationDisplayName": "Organization Display Name", + "MyOrganizations_Detail_EditDisplayName": "Edit Display Name", + "MyOrganizations_Detail_UpgradeYourLicense": "Upgrade your license", + "MyOrganizations_Detail_LicenseStartAndExpiryDate": "License Start Date - Expiry Date", + "MyOrganizations_Detail_OwnerRightInfo": "You are using {0} of your {1} owners rights.", + "MyOrganizations_Detail_CopyApiKey": "Copy the Key", + "MyOrganizations_Detail_ApiKeyDescription": "The API Key is the token of PRO packages hosted on {1}.", + "MyOrganizations_Detail_YourPrivateNugetSource": "Your private NuGet source is {0}", + "MyOrganizations_Detail_PrivateNugetSourceWarning": "This is automatically added as a feed to your NuGet.Config in your ABP solution. Do not share your private key with unauthorized users!", + "MyOrganizations_Detail_DeveloperSeatInfo": "You are using {0} of your {1} developer seats.", + "NeedMoreSeatsForYourTeam": "Need more seats for your team?", + "MyOrganizations_Detail_PricePerYear": "{0} / per year", + "MyOrganizations_Detail_PurchaseDeveloperSeats": "Purchase Developer Seats", + "Invoices": "Invoices", + "RequestInvoice": "Request Invoice", + "OrderNumber": "Order Number", + "Date": "Date", + "Products": "Products", + "TotalPrice": "Total Price", + "ThereIsNoInvoice": "There is no invoice", + "MyOrganizations_Detail_PaymentProviderInfo": "If you have purchased your license through {0} gateway, it sends the PDF invoice to your email address, see {0} invoicing.", + "MyOrganizations_Detail_PayUInfo": "If you have purchased through the PayU gateway, click the \"Request Invoice\" button and fill in the billing information.", + "MyOrganizations_Detail_ConclusionInfo": "Your invoice request will be concluded within {0} business days.", + "ExtendYourLicense": "Extend Your {0} License", + "Continue": "Continue", + "PurchaseLicense": "Purchase {0} license", + "DownloadInvoiceModal_DownloadInvoice": "Download Invoice", + "DownloadInvoiceModal_SaveInformationOnlyOnce": "You can save your billing information only once.", + "InvoiceModal_EnterCompanyName": "Enter your legal company name...", + "InvoiceModal_EnterCompanyAddress": "Enter your legal company address...", + "InvoiceModal_EnterTaxNumber": "Enter your TAX/VAT number if available...", + "RequestInvoiceModal_EnterNotes": "Enter your extra message about your invoice...", + "PrePayment_PayWithIyzico": "You will pay with Iyzico", + "ContinueToCheckout": "Continue to Checkout", + "PrePayment_IyzicoRedirectionInfo": "You will be redirected to Iyzico Payment Gateway to complete your purchase securely.", + "PrePayment_IyzicoAcceptVisaAndMasterCard": "Iyzico accepts Visa and MasterCard.", + "Purchase": "Purchase", + "AcceptTermsAndConditions": "I have read, understand and accept the privacy policy, terms & conditions and EULA.", + "AcceptTermsAndConditionsWarningMessage": "Please accept the privacy policy and terms & conditions", + "SelectGatewayToContinue": "Please select a Gateway to continue!", + "GatewaySelection_SelectGateway": "Select a Payment Gateway", + "GatewaySelection_RedirectionMessage": "Next, you will be redirected to the selected payment gateway's website for the transaction.", + "PaymentSucceed_PaymentSuccessMessage": "Payment Successful", + "PaymentSucceed_ThanksForPurchase": "Thank you for your purchase!", + "PaymentSucceed_CreateYourOrganization": "Create your organization", + "PaymentSucceed_AddMeAsDeveloper": "I'm a developer too, add me as a a developer to my organization.", + "PaymentSucceed_CreateOrganization": "Create Organization", + "PaymentSucceed_OrganizationDescription": "An organization consists of developers and owners. The developers are users who write code on ABP project and will benefit from the {1} website. The owners are users who allocate developer seats and manage licensing.", + "PaymentSucceed_ViewOrganization": "Click here to view organization", + "Purchase_TotalAnnualPrice": "TOTAL (annual fee)", + "Purchase_TrainingPrice": "Training Price", + "Purchase_OnboardingTraining": "ABP Onboarding & Web Application Development Live Training", + "TotalDeveloperPrice": "Total Developer Price", + "Purchase_PricePerDeveloper": "{0} {1} per developer", + "Purchase_IncludedDeveloperInfo": "{0} {1} included.", + "Purchase_LicenseExtraDeveloperPurchaseMessage": "The {0} license contains {1} developer(s). You can add additional developers now or later.", + "StartupTemplates_Page_Title": "The Startup Templates", + "StartupTemplates_Page_Description": "ABP Commercial allows you to build solutions with any level of complexity. It provides two main pre-built startup solutions. You can select the one close to your requirements and build your own custom solution on top of it.", + "MicroserviceStartupSolutionForDotnet": "Microservice Startup Solution for .NET", + "MonolithSolutionForDotnet": "Monolith (modular) Solution for .NET", + "TrainingDetailsHeaderInfo_TrainingHour": "{0} hour(s)", + "Trainings_Content": "Content of Training", + "Trial_Page_StartYourFreeTrial": "Start Your Free Trial", + "Contact_Page_Title": "Contact with ABP Development Team", + "Contact_Page_Description": "Contact with ABP Development team, if you need any help or share your thoughts and opinions! ABP Support Team is ready to help.", + "Demo_Page_Title": "Create a Demo", + "Demo_Page_Description": "Create a free demo to see a sample application created using the ABP Commercial startup template. Don't repeat yourself for common application requirements.", + "Discounted_Page_Title": "Discounted pricing", + "Discounted_Page_Description": "Choose the features and functionality your business needs today. Buy an ABP Commercial license and create unlimited projects", + "Faq_Page_Title": "Frequently Asked Questions (FAQ)", + "Faq_Page_Description": "Do you have any questions? Search frequently asked questions or ask us a question using the contact form.", + "Faq_Page_SwiftCode": "SWIFT Code", + "Faq_Page_BankName": "Bank Name", + "Faq_Page_AccountName": "Account Name", + "Faq_Page_AccountNumber": "Account Number", + "Faq_Page_Currency": "Currency", + "Faq_Page_VatNumber": "VAT number", + "Faq_Page_OtherCurrenciesInfo": "For other currencies, see all accounts", + "ModuleDetail_Page_Title": "Module Detail - {0}", + "ProjectCreatedSuccess_Page_Title": "Your project created", + "ProjectCreatedSuccess_Page_Description": "Your ABP project created successfully!", + "Suite_Page_Title": "ABP Suite - Create CRUD Pages", + "Suite_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "Themes_Page_Title": "Modern and Functional UI Themes", + "Themes_Page_Description": "ABP Commercial provides multiple professional, modern UI themes. Create a free demo to have a quick view of what the UI looks like.", + "Tools_Page_Title": "Rapid Application Development Tools", + "Tools_Page_Description": "ABP Commercial provides rapid application development tooling to increase developer productivity. ABP Suite allows you to create CRUD pages easily.", + "DeveloperPrice": "Developer Price", + "AdditionalDeveloperPaymentInfoSection_AdditionalDevelopers": "{0} developers", + "AdditionalDeveloperPaymentInfoSection_RemainingYear": "for {1} years", + "ExtendPaymentInfoSection_Description": "By extending/renewing your license, you will continue to get premium support. You will also be able to get major updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use ABP Suite which speeds up your development.", + "LicenseRenewalPrice": "License renewal price", + "LicensePrice": "License Price", + "TrialLicensePaymentInfoSection_Description": "Purchase license: By purchasing a license, you will continue to get premium support. You will also be able to get major updates for modules and themes. You will be able to continue creating new projects. And you will still be able to use ABP Suite which speeds up your development.
See the license comparison table to check the differences between the license types.", + "SelectTargetLicense": "Select Target License", + "UpgradePaymentInfoSection_ExtendMyLicenseForOneYear": "Yes, extend my license expiration date for 1 year.", + "UpgradePaymentInfoSection_WantToExtendLicense": "Do you want to extend your license for {0} more year(s)?", + "UpgradePaymentInfoSection_UpgradingWillNotExtendLicense": "Upgrading will not extend your license expiration date!", + "UpgradePaymentInfoSection_LicenseUpgradeDescription": "By upgrading your license, you will promote to a higher license type which will allow you to get additional benefits. See the license comparison table to check the differences between the license types.", + "Landing_Page_CustomerStories": "Customer Stories", + "Landing_Page_OurGreatCustomers": "Our Great Customers", + "Landing_Page_WebApplicationFramework": "Web Application Framework", + "Landing_Page_WebDevelopmentPlatform": "Web Development Platform", + "Landing_Page_CompleteWebDevelopmentPlatform": "Complete Web Development Platform", + "Landing_Page_TryFreeDemo": "Try Free Demo", + "Landing_Page_StartingPointForWebApplications": "The starting point for ASP.NET Core based web applications! It is based on the ABP Framework for best web development.", + "Landing_Page_AbpProvidesSoftwareInfrastructure": "ABP Framework provides a software infrastructure to develop excellent web applications with best practices.", + "Landing_Page_MicroserviceCompatibleArchitecture": "Microservice Compatible Architecture", + "Landing_Page_PreBuiltApplicationModulesAndThemes": "Pre-Built Application Modules & Themes", + "Landing_Page_MultiTenantArchitecture": "Multi-Tenant Architecture", + "Landing_Page_MultiTenancyDescription": "SaaS applications made easy! Integrated multi-tenancy from database to UI.", + "Landing_Page_DDDIntroduction": "Designed and developed based on DDD patterns and principles. Provides a layered model for your application.", + "Landing_Page_CrossCuttingConcernsInfo": "Complete infrastructure for authorization, validation, exception handling, caching, audit logging, transaction management and more.", + "Landing_Page_PreBuiltApplicationModules": "Pre-Built Application Modules which include most common web application requirements.", + "Landing_Page_ChatModule": "Chat", + "Landing_Page_DocsModule": "Docs", + "Landing_Page_FileManagementModule": "Docs", + "Landing_Page_CustomerStory_1": "ABP Commercial allowed SC Ventures to deliver a bank-grade multi-tenant silo-database SaaS platform in 9 months to support the accounts receivable / accounts payable supply chain financing of significant value invoices from multiple integrated anchors. The modularity of ABP made it possible for the team to deliver in record time, pass all VAPT, and deploy the containerized micro-services stack via full CI/CD and pipelines into production.", + "Landing_Page_CustomerStory_2": "We are seeing the value of using ABP Commercial to reduce the overhead of custom development projects. And the team is able to unify the code pattern in different project streams. We see more potential in the framework for us to build new features faster than before. We trust we will be constantly seeing the value of leveraging ABP Commercial.", + "Landing_Page_CustomerStory_3": "We love ABP. We don't have to write everything from scratch. We start from out-of-the-box features and just focus on what we really need to write. Also, ABP is well-architected and the code is high quality with fewer bugs. If we would have to write everything we needed on our own, we might have to spend years. Once more things we like is that the new version, or issue fixing, or improvement come out very soon\n every other week. We don't wait too long.", + "Landing_Page_CustomerStory_4": "ABP Commercial is a fantastic product would recommend. Commercial products to market for our customers in a single configurable platform. The jump start that the framework and tooling provide any team is worth every cent. ABP Commercial was the best fit for our needs.", + "Landing_Page_AdditionalServices": "Custom or volume license, onboarding, live training & support, custom project development, porting existing projects and more...", + "Landing_Page_IncludedDeveloperLicenses": "Included {0} developer licenses", + "Landing_Page_SeeOnDemo": "See on Demo", + "Landing_Page_LeptonThemes": "LeptonThemes", + "Landing_Page_AccountModuleDescription_1": "This module implements the authentication system for an application;", + "Landing_Page_AccountModuleDescription_2": "Provides a login page with the username and password", + "Landing_Page_AccountModuleDescription_3": "Provides a register page to create a new account.", + "Landing_Page_AccountModuleDescription_4": "Provides a forgot password page to send a password reset link as an e-mail.", + "Landing_Page_AccountModuleDescription_5": "Provides email confirmation functionality with UI.", + "Landing_Page_AccountModuleDescription_6": "Implements two factor authentication (SMS and e-mail).", + "Landing_Page_AccountModuleDescription_7": "Implements user lockout (locks the account for the set amount of time when a certain number of failed logons occur due to invalid credentials within a certain interval of time).", + "Landing_Page_AccountModuleDescription_8": "Implements Identity Server authentication server UI and functionality.", + "Landing_Page_AccountModuleDescription_9": "Allows to switch between tenants in a multi-tenant environment.", + "Landing_Page_AccountModuleDescription_10": "Allows to change the UI language of the application.", + "Landing_Page_AuditLoggingModuleDescription_1": "This module provides the audit log reporting UI for the auditing infrastructure. Allows to search, filter and show audit log entries and entity change logs.", + "Landing_Page_AuditLoggingModuleDescription_2": "An audit log entry consists of critical data about each client request:", + "Landing_Page_AuditLoggingModuleDescription_3": "URL, Browser, IP address, client name", + "Landing_Page_AuditLoggingModuleDescription_4": "The user", + "Landing_Page_AuditLoggingModuleDescription_5": "HTTP method, HTTP return status code", + "Landing_Page_AuditLoggingModuleDescription_6": "Success/failure, exception details if available", + "Landing_Page_AuditLoggingModuleDescription_7": "Request execution duration", + "Landing_Page_AuditLoggingModuleDescription_8": "The entities have been created, deleted or updated in this request (with changed properties).", + "Landing_Page_BloggingModuleDescription_1": "This module adds a simple blog to your ABP application;", + "Landing_Page_BloggingModuleDescription_2": "Allows to create multiple blogs in a single application.", + "Landing_Page_BloggingModuleDescription_3": "Supports the Markdown format.", + "Landing_Page_BloggingModuleDescription_4": "Allows to write comment for a post.", + "Landing_Page_BloggingModuleDescription_5": "Allows to assign tags to the blog posts.", + "Landing_Page_BloggingModuleDescription_6": "See the blog.abp.io website as a live example of the blogging module.", + "Landing_Page_ChatModuleDescription_1": "This module is used for real-time messaging between users in application.", + "Landing_Page_ChatModuleDescription_2": "Real-time messaging on chat page.", + "Landing_Page_ChatModuleDescription_3": "Search users in application for new conversations.", + "Landing_Page_ChatModuleDescription_4": "Contact list for recent conversations.", + "Landing_Page_ChatModuleDescription_5": "New message notifications when user is looking at another page.", + "Landing_Page_ChatModuleDescription_6": "Total unread message count badge on menu icon.", + "Landing_Page_ChatModuleDescription_7": "Unread message count for each conversation.", + "Landing_Page_ChatModuleDescription_8": "Lazy loaded conversations.", + "Landing_Page_DocsModuleDescription_1": "This module is used to create technical documentation web sites;", + "Landing_Page_DocsModuleDescription_2": "Built-in GitHub integration: Directly write and manage documents on GitHub.", + "Landing_Page_DocsModuleDescription_3": "Versioning support directly integrated to GitHub releases.", + "Landing_Page_DocsModuleDescription_4": "Supports multi-language (with fallback support to the default language).", + "Landing_Page_DocsModuleDescription_5": "Supports the Markdown and HTML formats.", + "Landing_Page_DocsModuleDescription_6": "Provides a navigation and an outline section.", + "Landing_Page_DocsModuleDescription_7": "Allows to host multiple projects documentation in a single application.", + "Landing_Page_DocsModuleDescription_8": "Links to the file on GitHub, so anyone can easily contribute by clicking to the Edit link.", + "Landing_Page_DocsModuleDescription_9": "In addition to the GitHub source, allows to simply use a folder as the documentation source.", + "Landing_Page_FileManagementModuleDescription_1": "Upload, download and organize files in a hierarchical folder structure.", + "Landing_Page_FileManagementModuleDescription_2": "This module is used to upload, download and organize files in a hierarchical folder structure. It is also compatible to multi-tenancy and you can determine total size limit for your tenants.", + "Landing_Page_FileManagementModuleDescription_3": "This module is based on the BLOB Storing system, so it can use different storage providers to store the file contents.", + "Landing_Page_IdentityModuleDescription_1": "This module implements the User and Role system of an application;", + "Landing_Page_IdentityModuleDescription_2": "Built on the Microsoft's ASP.NET Core Identity library.", + "Landing_Page_IdentityModuleDescription_3": "Manage roles and users in the system. A user is allowed to have multiple roles.", + "Landing_Page_IdentityModuleDescription_4": "Set permissions in role and user levels.", + "Landing_Page_IdentityModuleDescription_5": "Enable/disable two factor authentication and user lockout per user.", + "Landing_Page_IdentityModuleDescription_6": "Manage basic user profile and password.", + "Landing_Page_IdentityModuleDescription_7": "Manage claim types in the system, set claims to roles and users.", + "Landing_Page_IdentityModuleDescription_8": "Setting page to manage password complexity, user sign-in, account and lockout.", + "Landing_Page_IdentityModuleDescription_9": "Supports LDAP authentication.", + "Landing_Page_IdentityModuleDescription_10": "Provides email & phone number verification.", + "Landing_Page_IdentityModuleDescription_11": "Supports social login integrations (Twitter, Facebook, GitHub etc...).", + "Landing_Page_IdentityModuleDescription_12": "Manage organization units in the system.", + "Landing_Page_PaymentModuleDescription_1": "Provides integration for different payment gateways.", + "Landing_Page_PaymentModuleDescription_2": "This module provides integration for payment gateways, so you can easily get payment from your customers.", + "Landing_Page_PaymentModuleDescription_3": "This module supports the following payment gateways", + "Welcome_Page_UseSameCredentialForCommercialWebsites": "Use the same credentials for both commercial.abp.io and support.abp.io." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index de04b36283..0ed3eda832 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -166,6 +166,24 @@ "NoPublishedEventsYet": "No published events yet.", "SubscribeYoutubeChannel": "Subscribe to the Youtube Channel", "Enum:EventType:0": "Talks", - "MemberNotPublishedPostYet": "This member hasn't published any posts yet." + "MemberNotPublishedPostYet": "This member hasn't published any posts yet.", + "TimeAgo": "{0} ago", + "Discord_Page_JoinCommunityMessage": "Join ABP Discord Community", + "Discord_Page_Announce": "We are happy to announce ABP Community Discord Server!", + "Discord_Page_Description_1": "ABP Community has been growing since day one. We wanted to take it to the next step by creating an official ABP Discord server so the ABP Community can interact with each other using the wonders of instant messaging.", + "Discord_Page_Description_2": "ABP Community Discord Server is the place where you can showcase your creations using ABP Framework, share the tips that worked for you, catch up with the latest news and announcements about ABP Framework, just chat with community members to exchange ideas, and have fun!", + "Discord_Page_Description_3": "This ABP Community Discord Server is the official one with the ABP Core Team is present on the server to monitor.", + "Discord_Page_JoinToServer": "Join ABP Discord Server", + "Events_Page_MetaTitle": "ABP Community Events", + "Events_Page_MetaDescription": "The live shows, hosted by the ABP Team, are casual sessions full of community content, demos, Q&A, and discussions around what's happening in ABP.", + "Events_Page_Title": "ABP Community Talks", + "Events_Page_WritingFromUser": "Read writing from {0} on ABP Community.", + "Post_Create_Page_MetaTitle": "New Post", + "Post_Create_Page_MetaDescription": "Create your post for sharing your experiences about ABP framework and contributing the ABP Community.", + "Post_Create_Page_CreateNewPost": "Create New Post", + "Post_Index_Page_MetaDescription": "ABP Community's purpose is to create a contribution environment for developers who use the ABP framework.", + "Layout_Title": "{0} | ABP Community", + "Layout_MetaDescription": "ABP Community is an environment where people can share posts about ABP framework and follows the projects.", + "Index_Page_CommunityIntroduction": "This is a hub for ABP Framework, .NET and software development. You can read the articles, watch the video tutorials, get informed about ABP’s development progress and ABP-related events, help other developers and share your expertise with the ABP community." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json index 189662ee7c..dbeeb1c68b 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/en.json @@ -1,5 +1,6 @@ { "culture": "en", "texts": { + "FAQ": "FAQ" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json index 2012b4c128..8104167259 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/pt-BR.json @@ -1,5 +1,6 @@ { "culture": "pt-BR", "texts": { + "FAQ": "FAQ" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ro-RO.json index c5a76c1617..55f0ad9787 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/ro-RO.json @@ -1,5 +1,6 @@ { "culture": "ro-RO", "texts": { + "FAQ": "FAQ" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sl.json index 103359cbc2..dc565e279e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/sl.json @@ -1,5 +1,6 @@ { "culture": "sl", "texts": { + "FAQ": "FAQ" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json index 5af6a13c50..fce769c8f3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/tr.json @@ -1,5 +1,6 @@ { "culture": "tr", "texts": { + "FAQ": "SSS" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json index df772fa60b..034381b5d1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hans.json @@ -1,5 +1,6 @@ { "culture": "zh-Hans", "texts": { + "FAQ": "常问问题" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hant.json index 7de3798218..70347dfd09 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Support/Localization/Resources/zh-Hant.json @@ -1,5 +1,6 @@ { "culture": "zh-Hant", "texts": { + "FAQ": "常问问题" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json index d17259241c..41eda60de6 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json @@ -325,6 +325,53 @@ "CreateYourProjectNow": "Create Your Project Now", "OrderOn": "Order on {0}", "DownloadFreeDDDBook": "Download Free DDD Book", - "WhatIsABPFramework": "What is the ABP Framework?" + "WhatIsABPFramework": "What is the ABP Framework?", + "TenantDatabase": "Tenant {0} Database", + "SharedDatabase": "Shared Database", + "ConnectionResolver": "Connection Resolver", + "TenantBasedDataFilter": "Tenant Based Data Filter", + "ApplicationCode": "Application Code", + "TenantResolution": "Tenant Resolution", + "TenantUser": "Tenant {0} User", + "CardTitle": "Card title", + "View": "View", + "Model": "Model", + "Email": "Email", + "Password": "Password", + "Address": "Address", + "Gender": "Gender", + "Male": "Male", + "Female": "Female", + "Submit": "Submit", + "Unspecified": "Unspecified", + "StaticFileMiddleware": "Static File Middleware", + "RazorViewEngine": "Razor View Engine", + "PhysicalFiles": "Physical Files (wwwroot)", + "EmbeddedFiles": "Embedded Files (DLL)", + "DynamicFiles": "Dynamic Files (Memory)", + "BuildSolutionsWithAbp": "Build maintainable .NET solutions by following software development best practices using ABP.", + "BuyOnAmazon": "Buy on Amazon", + "BuyOnPackt": "Buy on Packt", + "Discounted": "Discounted", + "MasteringAbpFramework_Book_KeyFeatures": "Key Features", + "MasteringAbpFramework_Book_Key_Features_Description_1": "Build robust, maintainable, modular, and scalable software solutions using ABP Framework.", + "MasteringAbpFramework_Book_Key_Features_Description_2": "Learn how to implement SOLID principles and domain-driven design in your web applications.", + "MasteringAbpFramework_Book_Key_Features_Description_3": "Discover how ABP Framework speeds up your development cycle by automating repetitive tasks.", + "MasteringAbpFramework_Book_Description": "Book Description", + "MasteringAbpFramework_Book_Description_Details_1": "ABP Framework is a complete infrastructure for creating modern web applications by following software \n development best practices and conventions. With ABP's high-level framework and ecosystem, you can \n implement the Don't Repeat Yourself (DRY) principle and focus on your business code.", + "MasteringAbpFramework_Book_Description_Details_2": "Written by the creator of ABP Framework, this book will help you to gain a complete understanding of the\n framework and modern web application development techniques. With step-by-step explanations of essential\n concepts and practical examples, you'll understand the requirements of a modern web solution and how ABP\n Framework makes it enjoyable to develop your own solutions. You'll discover the common requirements of\n enterprise web application development and explore the infrastructure provided by ABP. Throughout the\n book, you'll get to grips with software development best practices for building maintainable and modular\n web solutions.", + "MasteringAbpFramework_Book_Description_Details_3": "By the end of this book, you'll be able to create a complete web solution that is easy to develop,\n maintain, and test.", + "MasteringAbpFramework_Book_WhatYouWillLearn": "What you will learn", + "MasteringAbpFramework_Book_What_You_Will_Learn_1": "Set up the development environment and get started with ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_2": "Work with Entity Framework Core and MongoDB to develop your data access layer.", + "MasteringAbpFramework_Book_What_You_Will_Learn_3": "Understand cross-cutting concerns and how ABP automates repetitive tasks.", + "MasteringAbpFramework_Book_What_You_Will_Learn_4": "Get to grips with implementing domain-driven design with ABP Framework.", + "MasteringAbpFramework_Book_What_You_Will_Learn_5": "Build UI pages and components with ASP.NET Core MVC (Razor Pages) and Blazor.", + "MasteringAbpFramework_Book_What_You_Will_Learn_6": "Work with multi-tenancy to create modular web applications.", + "MasteringAbpFramework_Book_What_You_Will_Learn_7": "Understand modularity and create reusable application modules.", + "MasteringAbpFramework_Book_What_You_Will_Learn_8": "Write unit, integration, and UI tests using ABP Framework.", + "MasteringAbpFramework_Book_WhoIsThisBookFor": "Who's this book for", + "MasteringAbpFramework_Book_WhoIsThisBookFor_Description": "This book is for web developers who want to learn software architectures and best practices for building\n maintainable web-based solutions using Microsoft technologies and ABP Framework. Basic knowledge of C#\n and ASP.NET Core is necessary to get started with this book.", + "ComputersAndTechnology": "Computers & Technology" } } diff --git a/common.props b/common.props index 35dd3cfe40..e6c9c40c28 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 5.4.0 + 6.0.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ @@ -13,7 +13,7 @@ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - + all runtime; build; native; contentfiles; analyzers diff --git a/configureawait.props b/configureawait.props index b0cf9ef298..92f22f85fb 100644 --- a/configureawait.props +++ b/configureawait.props @@ -1,7 +1,7 @@ - + All runtime; build; native; contentfiles; analyzers diff --git a/docs/cs/CLI.md b/docs/cs/CLI.md index db6918384e..7782b29a91 100644 --- a/docs/cs/CLI.md +++ b/docs/cs/CLI.md @@ -45,9 +45,9 @@ abp new Acme.BookStore * `mvc`: ASP.NET Core MVC. Pro tuto šablonu jsou dostupné dodatečné možnosti: * `--tiered`: Vytvoří stupňovité řešení, kde jsou vrstvy Web a Http API fyzicky odděleny. Pokud není uvedeno, tak vytvoří vrstvené řešení, které je méně složité a vhodné pro většinu scénářů. * `angular`: Angular. Pro tuto šablonu jsou dostupné dodatečné možnosti: - * `--separate-identity-server`: Oddělí identity server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. + * `--separate-auth-server`: Oddělí identity server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. * `none`: Bez UI. Pro tuto šablonu jsou dostupné dodatečné možnosti: - * `--separate-identity-server`: Oddělí identity server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. + * `--separate-auth-server`: Oddělí identity server aplikaci od API host aplikace. Pokud není uvedeno, bude na straně serveru jediný koncový bod. * `--database-provider` nebo `-d`: Určuje poskytovatele databáze. Výchozí poskytovatel je `ef`. Dostupní poskytovatelé: * `ef`: Entity Framework Core. * `mongodb`: MongoDB. diff --git a/docs/en/API/Swagger-Integration.md b/docs/en/API/Swagger-Integration.md index f60655ccfb..56ee1de50e 100644 --- a/docs/en/API/Swagger-Integration.md +++ b/docs/en/API/Swagger-Integration.md @@ -101,7 +101,7 @@ services.AddAbpSwaggerGen( For non MVC/Tiered applications, we need to configure Swagger with OAUTH to handle authorization. -> ABP Framework uses IdentityServer by default. To get more information about IDS, check this [documentation](../Modules/IdentityServer.md). +> ABP Framework uses OpenIddict by default. To get more information about OpenIddict, check this [documentation](../Modules/OpenIddict.md). diff --git a/docs/en/Background-Workers-Hangfire.md b/docs/en/Background-Workers-Hangfire.md index 4cbaf8cc24..b076cf0395 100644 --- a/docs/en/Background-Workers-Hangfire.md +++ b/docs/en/Background-Workers-Hangfire.md @@ -95,29 +95,29 @@ public class MyLogWorker : HangfireBackgroundWorkerBase, IMyLogWorker ## Register BackgroundWorkerManager -After creating a background worker class, you should add it to the `IBackgroundWorkerManager`. The most common place is the `OnApplicationInitialization` method of your module class: +After creating a background worker class, you should add it to the `IBackgroundWorkerManager`. The most common place is the `OnApplicationInitializationAsync` method of your module class: ```` csharp [DependsOn(typeof(AbpBackgroundWorkersModule))] public class MyModule : AbpModule { - public override void OnApplicationInitialization( + public override async Task OnApplicationInitializationAsync( ApplicationInitializationContext context) { - context.AddBackgroundWorker(); + await context.AddBackgroundWorkerAsync(); //If the interface is defined - //context.AddBackgroundWorker(); + //await context.AddBackgroundWorkerAsync(); } } ```` -`context.AddBackgroundWorker(...)` is a shortcut extension method for the expression below: +`context.AddBackgroundWorkerAsync(...)` is a shortcut extension method for the expression below: ```` csharp context.ServiceProvider .GetRequiredService() - .Add( + .AddAsync( context .ServiceProvider .GetRequiredService() @@ -126,4 +126,4 @@ context.ServiceProvider So, it resolves the given background worker and adds to the `IBackgroundWorkerManager`. -While we generally add workers in OnApplicationInitialization, there are no restrictions on that. You can inject IBackgroundWorkerManager anywhere and add workers at runtime. Background worker manager will stop and release all the registered workers when your application is being shut down. +While we generally add workers in `OnApplicationInitializationAsync`, there are no restrictions on that. You can inject `IBackgroundWorkerManager` anywhere and add workers at runtime. Background worker manager will stop and release all the registered workers when your application is being shut down. diff --git a/docs/en/Background-Workers.md b/docs/en/Background-Workers.md index e1cce6ae28..286d6ab7b0 100644 --- a/docs/en/Background-Workers.md +++ b/docs/en/Background-Workers.md @@ -80,16 +80,16 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase ## Register Background Worker -After creating a background worker class, you should add it to the `IBackgroundWorkerManager`. The most common place is the `OnApplicationInitialization` method of your module class: +After creating a background worker class, you should add it to the `IBackgroundWorkerManager`. The most common place is the `OnApplicationInitializationAsync` method of your module class: ````csharp [DependsOn(typeof(AbpBackgroundWorkersModule))] public class MyModule : AbpModule { - public override Task OnApplicationInitializationAsync( + public override async Task OnApplicationInitializationAsync( ApplicationInitializationContext context) { - context.AddBackgroundWorkerAsync(); + await context.AddBackgroundWorkerAsync(); } } ```` @@ -108,7 +108,7 @@ await context.ServiceProvider So, it resolves the given background worker and adds to the `IBackgroundWorkerManager`. -While we generally add workers in `OnApplicationInitialization`, there are no restrictions on that. You can inject `IBackgroundWorkerManager` anywhere and add workers at runtime. Background worker manager will stop and release all the registered workers when your application is being shut down. +While we generally add workers in `OnApplicationInitializationAsync`, there are no restrictions on that. You can inject `IBackgroundWorkerManager` anywhere and add workers at runtime. Background worker manager will stop and release all the registered workers when your application is being shut down. ## Options diff --git a/docs/en/CLI-New-Command-Samples.md b/docs/en/CLI-New-Command-Samples.md index 430ac01064..1a7a8a551a 100644 --- a/docs/en/CLI-New-Command-Samples.md +++ b/docs/en/CLI-New-Command-Samples.md @@ -15,7 +15,7 @@ The following commands are for creating Angular UI projects: * **Entity Framework Core**, default app template, **separate Identity Server**, creates the project in a new folder: ```bash - abp new Acme.BookStore -t app -u angular -m none --separate-identity-server --database-provider ef -csf + abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider ef -csf ``` * **Entity Framework Core**, **custom connection string**, creates the project in a new folder: @@ -33,7 +33,7 @@ The following commands are for creating Angular UI projects: * **MongoDB**, default app template, no mobile app, **separate Identity Server**, creates the project in a new folder: ```bash - abp new Acme.BookStore -t app -u angular -m none --separate-identity-server --database-provider mongodb -csf + abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider mongodb -csf ``` ## MVC @@ -78,7 +78,7 @@ The following commands are for creating Blazor projects: * **Entity Framework Core**, **separate Identity Server**, mobile app included: ```bash - abp new Acme.BookStore -u blazor --separate-identity-server + abp new Acme.BookStore -u blazor --separate-auth-server ``` * **MongoDB**, no mobile app, creates the project in a new folder: @@ -116,7 +116,7 @@ In the default app template, there is always a frontend project. In this option * **Entity Framework Core**, separate Identity Server, creates the project in a new folder: ```bash - abp new Acme.BookStore -u none --separate-identity-server -csf + abp new Acme.BookStore -u none --separate-auth-server -csf ``` * **MongoDB**, no mobile app: diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 01f7a92b2f..a4e0ba9818 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -41,6 +41,7 @@ Here, is the list of all available commands before explaining their details: * **`switch-to-stable`**: Switches to the latest stable versions of the ABP related packages on a solution. * **`translate`**: Simplifies to translate localization files when you have multiple JSON [localization](Localization.md) files in a source control repository. * **`login`**: Authenticates on your computer with your [abp.io](https://abp.io/) username and password. +* **`login-info`**: Shows the current user's login information. * **`logout`**: Logouts from your computer if you've authenticated before. * **`bundle`**: Generates script and style references for an ABP Blazor project. * **`install-libs`**: Install NPM Packages for MVC / Razor Pages and Blazor Server UI types. @@ -91,15 +92,15 @@ For more samples, go to [ABP CLI Create Solution Samples](CLI-New-Command-Sample * `mvc`: ASP.NET Core MVC. There are some additional options for this template: * `--tiered`: Creates a tiered solution where Web and Http API layers are physically separated. If not specified, it creates a layered solution which is less complex and suitable for most scenarios. * `angular`: Angular UI. There are some additional options for this template: - * `--separate-identity-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. + * `--separate-auth-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. * `--pwa`: Specifies the project as Progressive Web Application. * `blazor`: Blazor UI. There are some additional options for this template: - * `--separate-identity-server`The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. + * `--separate-auth-server`The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. * `--pwa`: Specifies the project as Progressive Web Application. * `blazor-server`: Blazor Server UI. There are some additional options for this template: - * `--tiered`: The Identity Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *IdentityServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project. + * `--tiered`: The Identity Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *AuthServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project. * `none`: Without UI. No front-end layer will be created. There are some additional options for this template: - * `--separate-identity-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. + * `--separate-auth-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. * `--mobile` or `-m`: Specifies the mobile application framework. If not specified, no mobile application will be created. Available options: * `react-native`: React Native. * `--database-provider` or `-d`: Specifies the database provider. Default provider is `ef`. Available providers: @@ -137,7 +138,7 @@ See some [examples for the new command](CLI-New-Command-Samples.md) here. ### update -Updating all ABP related packages can be tedious since there are many packages of the framework and modules. This command automatically updates all ABP related NuGet and NPM packages in a solution or project to the latest versions. +Updating all ABP related packages can be tedious since there are many packages of the framework and modules. This command automatically updates all ABP related NuGet and NPM packages in a solution or project to the latest versions. You can run it in the root folder of your solutions. Usage: @@ -145,8 +146,11 @@ Usage: abp update [options] ```` -* If you run in a directory with a .sln file, it updates all ABP related packages of the all projects of the solution to the latest versions. * If you run in a directory with a .csproj file, it updates all ABP related packages of the project to the latest versions. +* If you run in a directory with a .sln file, it updates all ABP related packages of the all projects of the solution to the latest versions. +* If you run in a directory that contains multiple solutions in sub-folders, it can update all the solutions, including Angular projects. + +Note that this command can upgrade your solution from a previous version, and also can upgrade it from a preview release to the stable release of the same version. #### Options @@ -467,23 +471,21 @@ abp login -p -o # You can enter both your A new login with an already active session overwrites the previous session. -### logout +### login-info -Logs you out by removing the session token from your computer. +Shows your login information such as **Name**, **Surname**, **Username**, **Email Address** and **Organization**. -``` -abp logout +```bash +abp login-info ``` -#### Options - -* ```--working-directory``` or ```-wd```: Specifies the working directory. This option is useful when the command is executed outside of a GIT repository or when executing directory doesn't contain a .NET solution file. -* ```--build-name``` or ```-n```: Specifies a name for the build. This option is useful when same repository is used for more than one different builds. -* ```--dotnet-build-arguments``` or ```-a```: Arguments to pass ```dotnet build``` when building project files. This parameter must be passed like ```"\"{params}\""``` . -* ```--force``` or ```-f```: Forces to build projects even they are not changed from the last successful build. +### logout -For more details, see [build command documentation](CLI-BuildCommand.md). +Logs you out by removing the session token from your computer. +```bash +abp logout +``` ### bundle diff --git a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/POST.md b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/POST.md new file mode 100644 index 0000000000..e2ad154bdd --- /dev/null +++ b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/POST.md @@ -0,0 +1,243 @@ +# Consuming HTTP APIs from a .NET Client Using ABP's Client Proxy System + +In this article, I will explain how to consume HTTP APIs from a .NET application using ABP's [dynamic](https://docs.abp.io/en/abp/latest/API/Dynamic-CSharp-API-Clients) and [static](https://docs.abp.io/en/abp/latest/API/Static-CSharp-API-Clients) client-side proxy systems. I will start by creating a new project and consume the HTTP APIs from a .NET console application using dynamic client proxies. Then I will switch to static client proxies. Finally, I will glance at the differences and similarities between static and dynamic generic proxies. + +Here the main benefits of using the client-side proxy system (either dynamic or static): + +* Automatically maps C# method calls to remote server HTTP calls by considering the HTTP method, route, query string parameters, request payload and other details. +* Authenticates the HTTP Client by adding an access token to the HTTP header. +* Serializes to and deserialize from JSON. +* Handles HTTP API versioning. +* Adds correlation id, current tenant id and the current culture to the request. +* Properly handles the error messages sent by the server and throws proper exceptions. + +## Create a new ABP application with the ABP CLI +Firstly create a new solution via [ABP CLI](https://docs.abp.io/en/abp/latest/CLI): + +```shell +abp new Acme.BookStore +``` + +> See ABP's [Getting Started document](https://docs.abp.io/en/abp/latest/Getting-Started-Setup-Environment?UI=MVC&DB=EF&Tiered=No) to learn how to create and run your application, if you haven't done it before. + +## Create the application service interface +I will start by creating an application service and exposing it as an HTTP API to be consumed by remote clients. First, define an interface for the application service; Create an `IBookAppService` interface in the `Books` folder (namespace) of the `Acme.BookStore.Application.Contracts` project: + +````csharp +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Acme.BookStore.Books +{ + public interface IBookAppService : IApplicationService + { + Task> GetListAsync(); + } +} +```` + +Also add a `BookDto` class inside the same `Books` folder: + +```csharp +using System; +using Volo.Abp.Application.Dtos; + +namespace Acme.BookStore.Books +{ + public class BookDto + { + public string Name { get; set; } + public string AuthorName { get; set; } + public float Price { get; set; } + } +} +``` + +## Implement the application service +It is time to implement the `IBookAppService` interface. Create a new class named `BookAppService` in the `Books` namespace (folder) of the `Acme.BookStore.Application` project: + +```csharp +using Acme.BookStore.Permissions; +using Microsoft.AspNetCore.Authorization; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Acme.BookStore.Books +{ + public class BookAppService : ApplicationService, IBookAppService + { + public Task> GetListAsync() + { + var bookDtos = new List() + { + new BookDto(){ Name = "Hunger", AuthorName ="Knut Hamsun", Price = 50}, + new BookDto(){ Name = "Crime and Punishment", AuthorName ="Dostoevsky", Price = 60}, + new BookDto(){ Name = "For Whom the Bell Tolls", AuthorName ="Ernest Hemingway", Price = 70} + }; + return Task.FromResult(new PagedResultDto( + bookDtos.Count, + bookDtos + )); + } + } +} +``` +It simply returns a list of books. You probably want to get the books from a database, but it doesn't matter for this article. If you want it, you can fully implement [this tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF). + +## Consume the app service from the console application +The startup solution comes with an example .NET console application (`Acme.BookStore.HttpApi.Client.ConsoleTestApp`) that is fully configured to consume your HTTP APIs remotely. Change `ClientDemoService` as shown in the following `Acme.BookStore.HttpApi.Client.ConsoleTestApp` project (it is under the `test` folder). + +```csharp +using Acme.BookStore.Books; +using System; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.DependencyInjection; + +namespace Acme.BookStore.HttpApi.Client.ConsoleTestApp; + +public class ClientDemoService : ITransientDependency +{ + private readonly IBookAppService _bookAppService; + + public ClientDemoService(IBookAppService bookAppService ) + { + _bookAppService = bookAppService; + } + + public async Task RunAsync() + { + var listOfBooks = await _bookAppService.GetListAsync(new PagedAndSortedResultRequestDto()); + Console.WriteLine($"Books: {string.Join(", ", listOfBooks.Items.Select(p => p.Name).ToList())}"); + } +} +``` + +We are basically injecting the `IBookAppService` interface to consume the remote service. ABP handles all the details (performing HTTP request, deserializing the resulting JSON object, etc) for us. + +You can run the application to see the output: + +``` +Books: Hunger, Crime and Punishment, For Whom the Bell Tolls +``` + +## Convert the application to use static client proxies +The [application startup template](https://docs.abp.io/en/abp/latest/Startup-Templates/Application) comes pre-configured for the **dynamic** client proxy generation, in the `HttpApi.Client` project. If you want to switch to the **static** client proxies, you should change `context.Services.AddHttpClientProxies` to `context.Services.AddStaticHttpClientProxies` in the module class of your `HttpApi.Client` project: + +```csharp +public class BookStoreHttpApiClientModule : AbpModule +{ + public const string RemoteServiceName = "Default"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + // Other configurations... + + context.Services.AddStaticHttpClientProxies( + typeof(BookStoreApplicationContractsModule).Assembly, + RemoteServiceName + ); + } +} +``` + +The `AddStaticHttpClientProxies` method gets an assembly, finds all service interfaces in the given assembly, and prepares for static client proxy generation. + + +Now you're ready to generate the client proxy code by running the following command in the root folder of your client project **while your server-side project is running**: + +````bash +abp generate-proxy -t csharp -u http://localhost:44397/ +```` + +> The URL (`-u` parameter's value) might be different for your application. It should be the server's root URL. + +You should see the generated files under the selected folder: + +![files of the static proxy](./static-proxy.png) + +Now you can run the console client application again. You should see the same output: + +```` +Books: Hunger, Crime and Punishment, For Whom the Bell Tolls +```` + +## Add authorization +The ABP Framework provides an [authorization system](https://docs.abp.io/en/abp/latest/Authorization) based on [ASP.NET Core's authorization infrastructure](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/introduction). We can define permissions and restrict access to some of our application's functionalities, so only the allowed users/clients can use these functionalities. Here, I will define a permission to be able to get the list of books. + +### Defining a permission + +Under `Acme.BookStore.Application.Contracts` open `BookStorePermissions` and paste the below code: +```csharp +namespace Acme.BookStore.Permissions; + +public static class BookStorePermissions +{ + public const string GroupName = "BookStore"; + + public static class Books + { + public const string Default = GroupName + ".Books"; + } + +} +``` +You also need to change `BookStorePermissionDefinitionProvider` under the same folder and project as follows: +```csharp +using Acme.BookStore.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +public class BookStorePermissionDefinitionProvider : PermissionDefinitionProvider +{ + public override void Define(IPermissionDefinitionContext context) + { + var bookStoreGroup = context.AddGroup(BookStorePermissions.GroupName); + bookStoreGroup.AddPermission(BookStorePermissions.Books.Default); + } +} +``` +### Authorizing the application service + +We can now add the `[Authorize(BookStorePermissions.Books.Default)]` attribute to the `BookAppService` class: + +```csharp +[Authorize(BookStorePermissions.Books.Default)] +public class BookAppService : ApplicationService, IBookAppService +{ + ... +} +``` + +If you run the server now, then run the console client application, you will see the following error on the console application: + +``` +Unhandled exception. Volo.Abp.Http.Client.AbpRemoteCallException: Forbidden at +Volo.Abp.Http.Client.ClientProxying.ClientProxyBase`1 +.ThrowExceptionForResponseAsync(HttpResponseMessage response)... +``` + +To fix the problem, we should grant permission to the admin user. We are granting permission to the admin user because the console application is configured to use the Resource Owner Password Grant Flow. That means the client application is consuming services on behalf of the admin user. You can see the configuration in the `appsettings.json` file of the console application. + +### Granting the permission + +Once you define the permissions, you can see them on the permission management modal. + +Go to the Administration -> Identity -> Roles page, select the Permissions action for the admin role to open the permission management modal: +![persmisson](./permission.png) +Grant the permissions you want and save the modal. + +## Dynamic vs static proxies + +Static generic proxies provide **better performance** because they don't need to run on runtime, but you should **re-generate** them once you change the API endpoint definition. Dynamic generic proxies don't need to be re-generated because they work on the runtime but they have a slight performance penalty. + +## Further Reading +In this tutorial, I explained how you can create an example project and apply a static client proxy instead of a dynamic client proxy. I also summarized the differences between both approaches. If you want to get more information, you can read the following documents: + +* [Static C# API Client Proxies](https://docs.abp.io/en/abp/latest/API/Static-CSharp-API-Clients) +* [Dynamic C# API Client Proxies](https://docs.abp.io/en/abp/latest/API/Dynamic-CSharp-API-Clients) +* [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC&DB=EF) diff --git a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png new file mode 100644 index 0000000000..60e6667993 Binary files /dev/null and b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/permission.png differ diff --git a/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png new file mode 100644 index 0000000000..083c6cedfe Binary files /dev/null and b/docs/en/Community-Articles/2022-05-16-Consuming-Rest-Api-By-Using-Static-Proxy/static-proxy.png differ diff --git a/docs/en/Contribution/Index.md b/docs/en/Contribution/Index.md index 6160aa3273..8ebac70c20 100644 --- a/docs/en/Contribution/Index.md +++ b/docs/en/Contribution/Index.md @@ -74,3 +74,7 @@ If you find any bug, please [create an issue on the Github repository](https://g ## Setup Frontend Development Environment [How to contribute to abp.io as a frontend developer](How-to-Contribute-abp.io-as-a-frontend-developer.md) + +## See Also + +* [ABP Community Talks 2022.4: How can you contribute to the open source ABP Framework?](https://www.youtube.com/watch?v=Wz4Z-O-YoPg&list=PLsNclT2aHJcOsPustEkzG6DywiO8eh0lB) \ No newline at end of file diff --git a/docs/en/CurrentUser.md b/docs/en/CurrentUser.md index 5a400dc098..ac2aaa20bf 100644 --- a/docs/en/CurrentUser.md +++ b/docs/en/CurrentUser.md @@ -90,7 +90,7 @@ Beside these standard methods, there are some extension methods: For a web application, it gets the `User` property of the current `HttpContext`. For a non-web application, it returns the `Thread.CurrentPrincipal`. -> You generally don't need to this low level `ICurrentPrincipalAccessor` service and directly work with the `ICurrentUser` explained above. +> You generally don't need to use this low level `ICurrentPrincipalAccessor` service and just directly work with the `ICurrentUser` explained above. ### Basic Usage diff --git a/docs/en/Distributed-Event-Bus.md b/docs/en/Distributed-Event-Bus.md index 17dd69072a..5fe85a468d 100644 --- a/docs/en/Distributed-Event-Bus.md +++ b/docs/en/Distributed-Event-Bus.md @@ -298,9 +298,9 @@ This example; ## Transaction and Exception Handling -Distributed event bus works in-process (since default implementation is `LocalDistributedEventBus`) unless you configure an actual provider (e.g. [Kafka](Distributed-Event-Bus-Kafka-Integration.md) or [Redis](Distributed-Event-Bus-RabbitMQ-Integration.md)). In-process event bus always executes event handlers in the same [unit of work](Unit-Of-Work.md) scope that you publishes the events in. That means, if an event handler throws an exception, then the related unit of work (the database transaction) is rolled back. In this way, your application logic and event handling logic becomes transactional (atomic) and consistent. If you want to ignore errors in an event handler, you must use a `try-catch` block in your handler and shouldn't re-throw the exception. +Distributed event bus works in-process (since default implementation is `LocalDistributedEventBus`) unless you configure an actual provider (e.g. [Kafka](Distributed-Event-Bus-Kafka-Integration.md) or [RabbitMQ](Distributed-Event-Bus-RabbitMQ-Integration.md)). In-process event bus always executes event handlers in the same [unit of work](Unit-Of-Work.md) scope that you publishes the events in. That means, if an event handler throws an exception, then the related unit of work (the database transaction) is rolled back. In this way, your application logic and event handling logic becomes transactional (atomic) and consistent. If you want to ignore errors in an event handler, you must use a `try-catch` block in your handler and shouldn't re-throw the exception. -When you switch to an actual distributed event bus provider (e.g. [Kafka](Distributed-Event-Bus-Kafka-Integration.md) or [Redis](Distributed-Event-Bus-RabbitMQ-Integration.md)), then the event handlers will be executed in different processes/applications as their purpose is to create distributed systems. In this case, the only way to implement transactional event publishing is to use the outbox/inbox patterns as explained in the *Outbox / Inbox for Transactional Events* section. +When you switch to an actual distributed event bus provider (e.g. [Kafka](Distributed-Event-Bus-Kafka-Integration.md) or [RabbitMQ](Distributed-Event-Bus-RabbitMQ-Integration.md)), then the event handlers will be executed in different processes/applications as their purpose is to create distributed systems. In this case, the only way to implement transactional event publishing is to use the outbox/inbox patterns as explained in the *Outbox / Inbox for Transactional Events* section. If you don't configure outbox/inbox pattern or use the `LocalDistributedEventBus`, then events are published at the end of the unit of work by default, just before the unit of work is completed (that means throwing exception in an event handler still rollbacks the unit of work), even if you publish them in the middle of unit of work. If you want to immediately publish the event, you can set `onUnitOfWorkComplete` to `false` while using `IDistributedEventBus.PublishAsync` method. @@ -501,4 +501,4 @@ Configure(options => ## See Also -* [Local Event Bus](Local-Event-Bus.md) \ No newline at end of file +* [Local Event Bus](Local-Event-Bus.md) diff --git a/docs/en/Getting-Started-Create-Solution.md b/docs/en/Getting-Started-Create-Solution.md index d111637365..8b508ff348 100644 --- a/docs/en/Getting-Started-Create-Solution.md +++ b/docs/en/Getting-Started-Create-Solution.md @@ -20,7 +20,7 @@ We will use the ABP CLI to create a new ABP project. Use the `new` command of the ABP CLI to create a new project: ````shell -abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u blazor{{else if UI == "BlazorServer"}} -u blazor-server{{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes"}}{{if UI == "MVC" || UI == "BlazorServer"}} --tiered{{else}} --separate-identity-server{{end}}{{end}} +abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u blazor{{else if UI == "BlazorServer"}} -u blazor-server{{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes"}}{{if UI == "MVC" || UI == "BlazorServer"}} --tiered{{else}} --separate-auth-server{{end}}{{end}} ```` *You can use different level of namespaces; e.g. BookStore, Acme.BookStore or Acme.Retail.BookStore.* @@ -33,7 +33,7 @@ abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u {{ else }} -* `--separate-identity-server` argument is used to separate the identity server application from the API host application. If not specified, you will have a single endpoint on the server. +* `--separate-auth-server` argument is used to separate the identity server application from the API host application. If not specified, you will have a single endpoint on the server. {{ end }} diff --git a/docs/en/Getting-Started-React-Native.md b/docs/en/Getting-Started-React-Native.md index 9199d370dc..ac6325b5fd 100644 --- a/docs/en/Getting-Started-React-Native.md +++ b/docs/en/Getting-Started-React-Native.md @@ -65,8 +65,8 @@ A React Native application running on an Android emulator or a physical phone ** ![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) -* Open the `appsettings.json` in the `.IdentityServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address. -* Open the `launchSettings.json` in the `.IdentityServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. +* Open the `appsettings.json` in the `.AuthServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address. +* Open the `launchSettings.json` in the `.AuthServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. * Open the `appsettings.json` in the `.HttpApi.Host` folder. Replace the `localhost` address on the `Authority` property with your local IP address. * Open the `launchSettings.json` in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. @@ -85,7 +85,7 @@ Run the backend application as described in the [getting started document](Getti {{ if Tiered == "Yes" }} -> Make sure that `issuer` matches the running address of the `.IdentityServer` project, `apiUrl` matches the running address of the `.HttpApi.Host` or `.Web` project. +> Make sure that `issuer` matches the running address of the `.AuthServer` project, `apiUrl` matches the running address of the `.HttpApi.Host` or `.Web` project. {{else}} diff --git a/docs/en/Getting-Started-Running-Solution.md b/docs/en/Getting-Started-Running-Solution.md index fe1d0de246..66230c7aef 100644 --- a/docs/en/Getting-Started-Running-Solution.md +++ b/docs/en/Getting-Started-Running-Solution.md @@ -15,7 +15,7 @@ ### Connection String -Check the **connection string** in the `appsettings.json` file under the {{if Tiered == "Yes"}}`.IdentityServer` and `.HttpApi.Host` projects{{else}}{{if UI=="MVC"}}`.Web` project{{else if UI=="BlazorServer"}}`.Blazor` project{{else}}`.HttpApi.Host` project{{end}}{{end}}. +Check the **connection string** in the `appsettings.json` file under the {{if Tiered == "Yes"}}`.AuthServer` and `.HttpApi.Host` projects{{else}}{{if UI=="MVC"}}`.Web` project{{else if UI=="BlazorServer"}}`.Blazor` project{{else}}`.HttpApi.Host` project{{end}}{{end}}. {{ if DB == "EF" }} @@ -99,7 +99,7 @@ Right click to the `.DbMigrator` project and select **Set as StartUp Project** > Tiered solutions use **Redis** as the distributed cache. Ensure that it is installed and running in your local computer. If you are using a remote Redis Server, set the configuration in the `appsettings.json` files of the projects below. -1. Ensure that the `.IdentityServer` project is the startup project. Run this application that will open a **login** page in your browser. +1. Ensure that the `.AuthServer` project is the startup project. Run this application that will open a **login** page in your browser. > Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. @@ -137,7 +137,7 @@ Ensure that the {{if UI=="MVC"}}`.Web`{{else}}`.Blazor`{{end}} project is the st > Tiered solutions use Redis as the distributed cache. Ensure that it is installed and running in your local computer. If you are using a remote Redis Server, set the configuration in the `appsettings.json` files of the projects below. -Ensure that the `.IdentityServer` project is the startup project. Run the application which will open a **login** page in your browser. +Ensure that the `.AuthServer` project is the startup project. Run the application which will open a **login** page in your browser. > Use Ctrl+F5 in Visual Studio (instead of F5) to run the application without debugging. If you don't have a debug purpose, this will be faster. diff --git a/docs/en/Index.md b/docs/en/Index.md index 3f5c3dbf44..0a33c0e5a4 100644 --- a/docs/en/Index.md +++ b/docs/en/Index.md @@ -47,7 +47,7 @@ Application Modules provides pre-built application functionalities; * [**Account**](Modules/Account.md): Provides UI for the account management and allows user to login/register to the application. * **[Identity](Modules/Identity.md)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library. -* [**IdentityServer**](Modules/IdentityServer.md): Integrates to IdentityServer4. +* [**OpenIddict**](Modules/OpenIddict.md): Integrates to OpenIddict. * [**Tenant Management**](Modules/Tenant-Management.md): Manages tenants for a [multi-tenant](Multi-Tenancy.md) (SaaS) application. See the [Application Modules](Modules/Index.md) document for all pre-built modules. diff --git a/docs/en/Microservice-Architecture.md b/docs/en/Microservice-Architecture.md index 7790e26f3c..b98323908d 100644 --- a/docs/en/Microservice-Architecture.md +++ b/docs/en/Microservice-Architecture.md @@ -23,8 +23,8 @@ One common advise to start a new solution is **always to start with a monolith** However, developing such a well-modular application can be a problem since it is **hard to keep modules isolated** from each other as you would do it for microservices (see [Stefan Tilkov's article](https://martinfowler.com/articles/dont-start-monolith.html) about that). Microservice architecture naturally forces you to develop well isolated services, but in a modular monolithic application it's easy to tight couple modules to each other and design **weak module boundaries** and API contracts. -ABP can help you in that point by offerring a **microservice-compatible, strict module architecture** where your module is splitted into multiple layers/projects and developed in its own VS solution completely isolated and independent from other modules. Such a developed module is a natural microservice yet it can be easily plugged-in a monolithic application. See the [module development best practice guide](Best-Practices/Index.md) that offers a **microservice-first module design**. All [standard ABP modules](https://github.com/abpframework/abp/tree/master/modules) are developed based on this guide. So, you can use these modules by embedding into your monolithic solution or deploy them separately and use via remote APIs. They can share a single database or can have their own database based on your simple configuration. +ABP can help you in that point by offering a **microservice-compatible, strict module architecture** where your module is split into multiple layers/projects and developed in its own VS solution completely isolated and independent from other modules. Such a developed module is a natural microservice yet it can be easily plugged-in a monolithic application. See the [module development best practice guide](Best-Practices/Index.md) that offers a **microservice-first module design**. All [standard ABP modules](https://github.com/abpframework/abp/tree/master/modules) are developed based on this guide. So, you can use these modules by embedding into your monolithic solution or deploy them separately and use via remote APIs. They can share a single database or can have their own database based on your simple configuration. -## Microservice Demo Solution +## Microservice Demo Solution: eShopOnAbp -The [sample microservice solution](Samples/Microservice-Demo.md) demonstrates a complete microservice solution based on the ABP framework. +The [eShopOnAbp project](https://github.com/abpframework/eShopOnAbp) demonstrates a complete microservice solution based on the ABP framework. diff --git a/docs/en/Modules/Account.md b/docs/en/Modules/Account.md index 72f6f55c0e..7beb5b128d 100644 --- a/docs/en/Modules/Account.md +++ b/docs/en/Modules/Account.md @@ -2,7 +2,7 @@ Account module implements the basic authentication features like **login**, **register**, **forgot password** and **account management**. -This module is based on [Microsoft's Identity library](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity) and the [Identity Module](Identity.md). It has [IdentityServer](https://github.com/IdentityServer) integration (based on the [IdentityServer Module](IdentityServer.md)) to provide **single sign-on**, access control and other advanced authentication features. +This module is based on [Microsoft's Identity library](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity) and the [Identity Module](Identity.md). It has [IdentityServer](https://github.com/IdentityServer) integration (based on the [IdentityServer Module](IdentityServer.md)) and [OpenIddict](https://github.com/openiddict) integration (based on the [OpenIddict Module](OpenIddict.md)) to provide **single sign-on**, access control and other advanced authentication features. ## How to Install @@ -42,6 +42,10 @@ Social/external login buttons becomes visible if you setup it. See the *Social/E ![account-module-manage-account](../images/account-module-manage-account.png) +## OpenIddict Integration + +[Volo.Abp.Account.Web.OpenIddict](https://www.nuget.org/packages/Volo.Abp.Account.Web.OpenIddict) package provides integration for the [OpenIddict](https://github.com/openiddict). This package comes as installed with the [application startup template](../Startup-Templates/Application.md). See the [OpenIddict Module](OpenIddict.md) documentation. + ## IdentityServer Integration [Volo.Abp.Account.Web.IdentityServer](https://www.nuget.org/packages/Volo.Abp.Account.Web.IdentityServer) package provides integration for the [IdentityServer](https://github.com/IdentityServer). This package comes as installed with the [application startup template](../Startup-Templates/Application.md). See the [IdentityServer Module](IdentityServer.md) documentation. diff --git a/docs/en/Modules/Index.md b/docs/en/Modules/Index.md index 35d46dece0..d5037665f0 100644 --- a/docs/en/Modules/Index.md +++ b/docs/en/Modules/Index.md @@ -19,6 +19,7 @@ There are some **free and open source** application modules developed and mainta * [**Feature Management**](Feature-Management.md): Used to persist and manage the [features](../Features.md). * **[Identity](Identity.md)**: Manages organization units, roles, users and their permissions, based on the Microsoft Identity library. * [**IdentityServer**](IdentityServer.md): Integrates to IdentityServer4. +* [**OpenIddict**](OpenIddict.md): Integrates to OpenIddict. * [**Permission Management**](Permission-Management.md): Used to persist permissions. * **[Setting Management](Setting-Management.md)**: Used to persist and manage the [settings](../Settings.md). * [**Tenant Management**](Tenant-Management.md): Manages tenants for a [multi-tenant](../Multi-Tenancy.md) application. diff --git a/docs/en/Modules/OpenIddict.md b/docs/en/Modules/OpenIddict.md index 951a745aab..7d7e898eee 100644 --- a/docs/en/Modules/OpenIddict.md +++ b/docs/en/Modules/OpenIddict.md @@ -10,7 +10,7 @@ This module implements the domain logic and database integrations, but not provi ## Relations to Other Modules -This module is based on the [Identity Module](Identity.md) and have an [integration package](https://www.nuget.org/packages/Volo.Abp.Account.Web.IdentityServer) with the [Account Module](Account.md). +This module is based on the [Identity Module](Identity.md) and have an [integration package](https://www.nuget.org/packages/Volo.Abp.Account.Web.OpenIddict) with the [Account Module](Account.md). ## The module @@ -131,11 +131,6 @@ Configure(options => For detailed information, please refer to: [OpenIddict claim destinations](https://documentation.openiddict.com/configuration/claim-destinations.html) -#### About Validation - -The `OpenIddict.Validation.AspNetCore` and `OpenIddict.Validation` are not integrated in the module, we use the authentication component provided by Microsoft. If you are more familiar with it, you can use it in your project. - - ### EF Core module Implements the above four repository interfaces. diff --git a/docs/en/Road-Map.md b/docs/en/Road-Map.md index 55a99be8b7..d7fb13a9a8 100644 --- a/docs/en/Road-Map.md +++ b/docs/en/Road-Map.md @@ -4,18 +4,18 @@ This document provides a road map, release schedule and planned features for the ## Next Versions -### v5.4 +### v6.0 -In [5.4 milestone](https://github.com/abpframework/abp/milestone/67), we will be mostly working on the following topics: +In [6.0 milestone](https://github.com/abpframework/abp/milestone/61), we will be mostly working on the following topics: * Providing an OpenIddict integration to replace current IdentityServer4 integration. * Maturing and documenting the [eShopOnAbp](https://github.com/abpframework/eShopOnAbp) project, writing a free e-book that explains the solution. * Working on the [LeptonX](https://blog.abp.io/abp/LeptonX-Theme-for-ABP-Framework-Alpha-Release) theme and making it as the default theme for the ABP Framework UI options. * Improvements on the existing features and providing more guides. -The planned release date for v5.4 is **July, 2022**. +The planned stable release date for v6.0 is **July, 2022**. -> After the version 5.4, we will be working for 6.0 which will be released in the end of 2022 based on .NET 7.0. +> After the version 6.0, we will be working for ABP 7.0 which will be released in the end of 2022 based on .NET 7.0. ## Backlog Items diff --git a/docs/en/Samples/Index.md b/docs/en/Samples/Index.md index 58543ba380..704cdf3808 100644 --- a/docs/en/Samples/Index.md +++ b/docs/en/Samples/Index.md @@ -2,15 +2,19 @@ Here, a list of official samples built with the ABP Framework. Most of these samples are located under the [abpframework/abp-samples](https://github.com/abpframework/abp-samples) GitHub repository. -### Microservice Demo +## eShopOnAbp -A complete solution to demonstrate how to build systems based on the microservice architecture. +Reference microservice solution built with the ABP Framework and .NET. -* [The complete documentation for this sample](Microservice-Demo.md) -* [Source code](https://github.com/abpframework/abp-samples/tree/master/MicroserviceDemo) -* [Microservice architecture document](../Microservice-Architecture.md) +* [Source code](https://github.com/abpframework/eShopOnAbp) -### Book Store +## EventHub + +This is a reference application built with the ABP Framework. It implements the Domain Driven Design with multiple application layers. + +* [Source code](https://github.com/abpframework/eventhub) + +## Book Store A simple CRUD application to show basic principles of developing an application with the ABP Framework. The same sample was implemented with different technologies: @@ -28,7 +32,7 @@ A simple CRUD application to show basic principles of developing an application While there is no Razor Pages & MongoDB combination, you can check both documents to understand it since DB & UI selection don't effect each other. -### Other Samples +## Other Samples * **Event Organizer**: A sample application to create events (meetups) and allow others to register the events. Developed using EF Core and Blazor UI. * [Source code](https://github.com/abpframework/abp-samples/tree/master/EventOrganizer) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 285c2b10a0..1e2549338f 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -1,5 +1,7 @@ # Microservice Demo Solution +> This solution is no longer maintained. See [the eShopOnAbp project](https://github.com/abpframework/eShopOnAbp) for the replacement solution. + *"Microservices are a software development technique—a variant of the **service-oriented architecture** (SOA) architectural style that structures an application as a collection of **loosely coupled services**. In a microservices architecture, services are **fine-grained** and the protocols are **lightweight**. The benefit of decomposing an application into different smaller services is that it improves **modularity**. This makes the application easier to understand, develop, test, and become more resilient to architecture erosion. It **parallelizes development** by enabling small autonomous teams to **develop, deploy and scale** their respective services independently. It also allows the architecture of an individual service to emerge through **continuous refactoring**. Microservices-based architectures enable **continuous delivery and deployment**."* — [Wikipedia](https://en.wikipedia.org/wiki/Microservices) diff --git a/docs/en/Startup-Templates/Application.md b/docs/en/Startup-Templates/Application.md index 0f4372b621..028801c634 100644 --- a/docs/en/Startup-Templates/Application.md +++ b/docs/en/Startup-Templates/Application.md @@ -13,7 +13,7 @@ This document explains **the solution structure** and projects in details. If yo You can use the [ABP CLI](../CLI.md) to create a new project using this startup template. Alternatively, you can directly create & download from the [Get Started](https://abp.io/get-started) page. CLI approach is used here. -First, install the ABP CLI if you haven't installed before: +First, install the ABP CLI if you haven't installed it before: ````bash dotnet tool install -g Volo.Abp.Cli @@ -25,8 +25,8 @@ Then use the `abp new` command in an empty folder to create a new solution: abp new Acme.BookStore -t app ```` -* `Acme.BookStore` is the solution name, like *YourCompany.YourProduct*. You can use single level, two-levels or three-levels naming. -* This example specified the template name (`-t` or `--template` option). However, `app` is already the default template if you don't specify it. +* `Acme.BookStore` is the solution name, like *YourCompany.YourProduct*. You can use single-level, two-level or three-level naming. +* This example specified the template name (`-t` or `--template` option). However, `app` is already the default template if you didn't specify it. ### Specify the UI Framework @@ -36,7 +36,7 @@ This template provides multiple UI frameworks: * `blazor`: Blazor UI * `angular`: Angular UI -Use `-u` or `--ui` option to specify the UI framework: +Use the `-u` or `--ui` option to specify the UI framework: ````bash abp new Acme.BookStore -u angular @@ -61,7 +61,7 @@ This template supports the following mobile application frameworks: - `react-native`: React Native -Use `-m` (or `--mobile`) option to specify the mobile application framework: +Use the `-m` (or `--mobile`) option to specify the mobile application framework: ````bash abp new Acme.BookStore -m react-native @@ -75,7 +75,7 @@ Based on the options you've specified, you will get a slightly different solutio ### Default Structure -If you don't specify any additional option, you will have a solution like shown below: +If you don't specify any additional options, you will have a solution as shown below: ![bookstore-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-v3.png) @@ -93,7 +93,7 @@ This project contains constants, enums and other objects these are actually a pa A `BookType` enum and a `BookConsts` class (which may have some constant fields for the `Book` entity, like `MaxNameLength`) are good candidates for this project. -* This project has no dependency to other projects in the solution. All other projects depend on this directly or indirectly. +* This project has no dependency on other projects in the solution. All other projects depend on this one directly or indirectly. #### .Domain Project @@ -105,7 +105,7 @@ A `Book` entity, a `BookManager` domain service and an `IBookRepository` interfa #### .Application.Contracts Project -This project mainly contains [application service](../Application-Services.md) **interfaces** and [Data Transfer Objects](../Data-Transfer-Objects.md) (DTO) of the application layer. It does exists to separate interface & implementation of the application layer. In this way, the interface project can be shared to the clients as a contract package. +This project mainly contains [application service](../Application-Services.md) **interfaces** and [Data Transfer Objects](../Data-Transfer-Objects.md) (DTO) of the application layer. It exists to separate the interface & implementation of the application layer. In this way, the interface project can be shared to the clients as a contract package. An `IBookAppService` interface and a `BookCreationDto` class are good candidates for this project. @@ -130,7 +130,7 @@ This is the integration project for the EF Core. It defines the `DbContext` and #### .DbMigrator Project -This is a console application which simplifies to execute database migrations on development and production environments. When you run this application, it; +This is a console application that simplifies the execution of database migrations on development and production environments. When you run this application, it: * Creates the database if necessary. * Applies the pending database migrations. @@ -140,24 +140,24 @@ This is a console application which simplifies to execute database migrations on Especially, seeding initial data is important at this point. ABP has a modular data seed infrastructure. See [its documentation](../Data-Seeding.md) for more about the data seeding. -While creating database & applying migrations seems only necessary for relational databases, this projects comes even if you choose a NoSQL database provider (like MongoDB). In that case, it still seeds initial data which is necessary for the application. +While creating database & applying migrations seem only necessary for relational databases, this project comes even if you choose a NoSQL database provider (like MongoDB). In that case, it still seeds the initial data which is necessary for the application. * Depends on the `.EntityFrameworkCore` project (for EF Core) since it needs to access to the migrations. -* Depends on the `.Application.Contracts` project to be able to access permission definitions, because initial data seeder grants all permissions for the admin role by default. +* Depends on the `.Application.Contracts` project to be able to access permission definitions, because the initial data seeder grants all permissions to the admin role by default. #### .HttpApi Project This project is used to define your API Controllers. -Most of time you don't need to manually define API Controllers since ABP's [Auto API Controllers](../API/Auto-API-Controllers.md) feature creates them automagically based on your application layer. However, in case of you need to write API controllers, this is the best place to do it. +Most of the time you don't need to manually define API Controllers since ABP's [Auto API Controllers](../API/Auto-API-Controllers.md) feature creates them automagically based on your application layer. However, in case of you need to write API controllers, this is the best place to do it. * Depends on the `.Application.Contracts` project to be able to inject the application service interfaces. #### .HttpApi.Client Project -This is a project that defines C# client proxies to use the HTTP APIs of the solution. You can share this library to 3rd-party clients, so they can easily consume your HTTP APIs in their Dotnet applications (For other type of applications, they can still use your APIs, either manually or using a tool in their own platform) +This is a project that defines C# client proxies to use the HTTP APIs of the solution. You can share this library to 3rd-party clients, so they can easily consume your HTTP APIs in their Dotnet applications (For other types of applications, they can still use your APIs, either manually or using a tool in their own platform) -Most of time you don't need to manually create C# client proxies, thanks to ABP's [Dynamic C# API Clients](../API/Dynamic-CSharp-API-Clients.md) feature. +Most of the time you don't need to manually create C# client proxies, thanks to ABP's [Dynamic C# API Clients](../API/Dynamic-CSharp-API-Clients.md) feature. `.HttpApi.Client.ConsoleTestApp` project is a console application created to demonstrate the usage of the client proxies. @@ -169,17 +169,17 @@ Most of time you don't need to manually create C# client proxies, thanks to ABP' This project contains the User Interface (UI) of the application if you are using ASP.NET Core MVC UI. It contains Razor pages, JavaScript files, CSS files, images and so on... -This project contains the main `appsettings.json` file that contains the connection string and other configuration of the application. +This project contains the main `appsettings.json` file that contains the connection string and other configurations of the application. -* Depends on the `.HttpApi` since UI layer needs to use APIs and application service interfaces of the solution. +* Depends on the `.HttpApi` project since the UI layer needs to use APIs and the application service interfaces of the solution. > If you check the source code of the `.Web.csproj` file, you will see the references to the `.Application` and the `.EntityFrameworkCore` projects. > -> These references are actually not needed while coding your UI layer, because UI layer normally doesn't depend on the EF Core or the Application layer's implementation. This startup templates are ready for the tiered deployment, where API layer is hosted in a separate server than the UI layer. +> These references are actually not needed while coding your UI layer, because the UI layer normally doesn't depend on the EF Core or the Application layer's implementation. These startup templates are ready for tiered deployment, where the API layer is hosted on a separate server than the UI layer. > > However, if you don't choose the `--tiered` option, these references will be in the .Web project to be able to host the Web, API and application layers in a single application endpoint. > -> This gives you to ability to use domain entities & repositories in your presentation layer. However, this is considered as a bad practice according to the DDD. +> This gives you the ability to use domain entities & repositories in your presentation layer. However, this is considered as a bad practice according to DDD. #### Test Projects @@ -195,46 +195,46 @@ In addition, `.HttpApi.Client.ConsoleTestApp` is a console application (not an a Test projects are prepared for integration testing; -* It is fully integrated to ABP framework and all services in your application. +* It is fully integrated into the ABP framework and all services in your application. * It uses SQLite in-memory database for EF Core. For MongoDB, it uses the [Mongo2Go](https://github.com/Mongo2Go/Mongo2Go) library. * Authorization is disabled, so any application service can be easily used in tests. -You can still create unit tests for your classes which will be harder to write (because you will need to prepare mock/fake objects), but faster to run (because it only tests a single class and skips all initialization process). +You can still create unit tests for your classes which will be harder to write (because you will need to prepare mock/fake objects), but faster to run (because it only tests a single class and skips all the initialization processes). #### How to Run? -Set `.Web` as the startup project and run the application. Default username is `admin` and password is `1q2w3E*`. +Set `.Web` as the startup project and run the application. The default username is `admin` and the password is `1q2w3E*`. See [Getting Started With the ASP.NET Core MVC Template](../Getting-Started-AspNetCore-MVC-Template.md) for more information. ### Tiered Structure -If you have selected the ASP.NET Core UI and specified the `--tiered` option, the solution created will be a tiered solution. The purpose of the tiered structure is to be able to **deploy Web application and HTTP API to different servers**: +If you have selected the ASP.NET Core UI and specified the `--tiered` option, the solution created will be a tiered solution. The purpose of the tiered structure is to be able to **deploy Web applications and HTTP API to different servers**: ![bookstore-visual-studio-solution-v3](../images/tiered-solution-servers.png) * Browser runs your UI by executing HTML, CSS & JavaScript. -* Web servers hosts static UI files (CSS, JavaScript, image... etc.) & dynamic components (e.g. Razor pages). It performs HTTP requests to the API server to execute the business logic of the application. -* API Server hosts the HTTP APIs which then use application & domain layers of the application to perform the business logic. +* Web servers host static UI files (CSS, JavaScript, image... etc.) & dynamic components (e.g. Razor pages). It performs HTTP requests to the API server to execute the business logic of the application. +* The API Server hosts the HTTP APIs which then use the application & domain layers of the application to perform the business logic. * Finally, database server hosts your database. So, the resulting solution allows a 4-tiered deployment, by comparing to 3-tiered deployment of the default structure explained before. -> Unless you actually need to such a 4-tiered deployment, its suggested to go with the default structure which is simpler to develop, deploy and maintain. +> Unless you actually need such a 4-tiered deployment, it's suggested to go with the default structure which is simpler to develop, deploy and maintain. The solution structure is shown below: ![bookstore-visual-studio-solution-v3](../images/bookstore-visual-studio-solution-tiered.png) -As different from the default structure, two new projects come into play: `.IdentityServer` & `.HttpApi.Host`. +As different from the default structure, two new projects come into play: `.AuthServer` & `.HttpApi.Host`. -#### .IdentityServer Project +#### .AuthServer Project -This project is used as an authentication server for other projects. `.Web` project uses OpenId Connect Authentication to get identity and access tokens for the current user from the IdentityServer. Then uses the access token to call the HTTP API server. HTTP API server uses bearer token authentication to obtain claims from the access token to authorize the current user. +This project is used as an authentication server for other projects. `.Web` project uses OpenId Connect Authentication to get identity and access tokens for the current user from the AuthServer. Then uses the access token to call the HTTP API server. HTTP API server uses bearer token authentication to obtain claims from the access token to authorize the current user. ![tiered-solution-applications](../images/tiered-solution-applications.png) -ABP uses the open source [IdentityServer4](https://identityserver.io/) framework for the authentication between applications. See [IdentityServer4 documentation](http://docs.identityserver.io) for details about the IdentityServer4 and OpenID Connect protocol. +ABP uses the open source [OpenIddcit](https://github.com/openiddict/openiddict-core) framework for the authentication between applications. See [OpenIddcit documentation](https://documentation.openiddict.com/) for details about the OpenIddict and OpenID Connect protocol. It has its own `appsettings.json` that contains database connection and other configurations. @@ -246,17 +246,17 @@ This project is an application that hosts the API of the solution. It has its ow Just like the default structure, this project contains the User Interface (UI) of the application. It contains razor pages, JavaScript files, style files, images and so on... -This project contains an `appsettings.json` file, but this time it does not have a connection string because it never connects to the database. Instead, it mainly contains endpoint of the remote API server and the authentication server. +This project contains an `appsettings.json` file, but this time it does not have a connection string because it never connects to the database. Instead, it mainly contains the endpoint of the remote API server and the authentication server. #### Pre-requirements -* [Redis](https://redis.io/): The applications use Redis as as distributed cache. So, you need to have Redis installed & running. +* [Redis](https://redis.io/): The applications use Redis as a distributed cache. So, you need to have Redis installed & running. #### How to Run? You should run the application with the given order: -* First, run the `.IdentityServer` since other applications depends on it. +* First, run the `.AuthServer` since other applications depend on it. * Then run the `.HttpApi.Host` since it is used by the `.Web` application. * Finally, you can run the `.Web` project and login to the application (using `admin` as the username and `1q2w3E*` as the password). @@ -286,9 +286,9 @@ Angular application module structure: #### AppModule -`AppModule` is the root module of the application. Some of ABP modules and some essential modules imported to the `AppModule`. +`AppModule` is the root module of the application. Some of the ABP modules and some essential modules are imported to `AppModule`. -ABP Config modules also have imported to `AppModule`  for initially requirements of lazy-loadable ABP modules. +ABP Config modules have also been imported to `AppModule` for initial requirements of the lazy-loadable ABP modules. #### AppRoutingModule @@ -315,22 +315,22 @@ You should add `routes` property in the `data` object to add a link on the menu ``` In the above example; * If the user is not logged in, AuthGuard blocks access and redirects to the login page. -* PermissionGuard checks the user's permission with `requiredPolicy` property of the `rotues` object. If the user is not authorized to access the page, the 403 page appears. -* `name` property of `routes` is the menu link label. A localization key can be defined . -* `iconClass` property of `routes` object is the menu link icon class. -* `requiredPolicy` property of `routes` object is the required policy key to access the page. +* PermissionGuard checks the user's permission with the `requiredPolicy` property of the `routes` object. If the user is not authorized to access the page, the 403 page appears. +* The `name` property of `routes` is the menu link label. A localization key can be defined. +* The `iconClass` property of the `routes` object is the menu link icon class. +* The `requiredPolicy` property of the `routes` object is the required policy key to access the page. After the above `routes` definition, if the user is authorized, the dashboard link will appear on the menu. #### Shared Module -The modules that may be required for all modules have imported to the `SharedModule`. You should import the `SharedModule` to all modules. +The modules that may be required for all modules have been imported to the `SharedModule`. You should import `SharedModule` to all modules. See the [Sharing Modules](https://angular.io/guide/sharing-ngmodules) document. #### Environments -The files under the `src/environments` folder has the essential configuration of the application. +The files under the `src/environments` folder have the essential configuration of the application. #### Home Module @@ -338,11 +338,11 @@ Home module is an example lazy-loadable module that loads on the root address of #### Styles -The required style files added to `styles` array in the `angular.json`. `AppComponent` loads some style files lazily via `LazyLoadService` after the main bundle is loaded to shorten the first rendering time. +The required style files are added to the `styles` array in `angular.json`. `AppComponent` loads some style files lazily via `LazyLoadService` after the main bundle is loaded to shorten the first rendering time. #### Testing -You should create your tests in the same folder as the file file you want to test. +You should create your tests in the same folder as the file you want to test. See the [testing document](https://angular.io/guide/testing). @@ -356,7 +356,7 @@ See the [testing document](https://angular.io/guide/testing). ### React Native -if `-m react-native` option is spesified in new project command, the solution includes the [React Native](https://reactnative.dev/) application in the `react-native` folder. +If the `-m react-native` option is specified in the new project command, the solution includes the [React Native](https://reactnative.dev/) application in the `react-native` folder. The server-side is similar to the solution described above. `*.HttpApi.Host` project serves the API, so the React Native application consumes it. @@ -366,17 +366,17 @@ React Native application folder structure as like below: ![react-native-folder-structure](../images/react-native-folder-structure.png) -* `App.js` is bootstrap component of the application. -* `Environment.js` file has the essential configuration of the application. `prod` and `dev` configurations defined in this file. +* `App.js` is the bootstrap component of the application. +* `Environment.js` file has the essential configuration of the application. `prod` and `dev` configurations are defined in this file. * [Contexts](https://reactjs.org/docs/context.html) are created in the `src/contexts` folder. -* [Higher order components](https://reactjs.org/docs/higher-order-components.html) are created in the`src/hocs` folder. -* [Custom hooks](https://reactjs.org/docs/hooks-custom.html#extracting-a-custom-hook) are created in the`src/hooks`. +* [Higher order components](https://reactjs.org/docs/higher-order-components.html) are created in the `src/hocs` folder. +* [Custom hooks](https://reactjs.org/docs/hooks-custom.html#extracting-a-custom-hook) are created in `src/hooks`. * [Axios interceptors](https://github.com/axios/axios#interceptors) are created in the `src/interceptors` folder. * Utility functions are exported from `src/utils` folder. #### Components -Components that can be used on all screens are created in the `src/components` folder. All components have created as a function that able to use [hooks](https://reactjs.org/docs/hooks-intro.html). +Components that can be used on all screens are created in the `src/components` folder. All components have been created as a function that is able to use [hooks](https://reactjs.org/docs/hooks-intro.html). #### Screens @@ -388,13 +388,13 @@ Each screen is used in a navigator in the `src/navigators` folder. #### Navigation -[React Navigation](https://reactnavigation.org/) is used as a navigation library. Navigators are created in the `src/navigators`. A [drawer](https://reactnavigation.org/docs/drawer-based-navigation/) navigator and several [stack](https://reactnavigation.org/docs/hello-react-navigation/#installing-the-stack-navigator-library) navigators have created in this folder. See the [above diagram](#screens) for navigation structure. +[React Navigation](https://reactnavigation.org/) is used as a navigation library. Navigators are created in the `src/navigators`. A [drawer](https://reactnavigation.org/docs/drawer-based-navigation/) navigator and several [stack](https://reactnavigation.org/docs/hello-react-navigation/#installing-the-stack-navigator-library) navigators have been created in this folder. See the [above diagram](#screens) for the navigation structure. #### State Management -[Redux](https://redux.js.org/) is used as state management library. [Redux Toolkit](https://redux-toolkit.js.org/) library is used as a toolset for efficient Redux development. +[Redux](https://redux.js.org/) is used as a state management library. [Redux Toolkit](https://redux-toolkit.js.org/) library is used as a toolset for efficient Redux development. -Actions, reducers, sagas, selectors are created in the `src/store` folder. Store folder as like below: +Actions, reducers, sagas and selectors are created in the `src/store` folder. Store folder is as below: ![react-native-store-folder](../images/react-native-store-folder.png) @@ -426,11 +426,11 @@ See the [Testing Overview](https://reactjs.org/docs/testing.html) document. * [Native Base](https://nativebase.io/) is used as UI components library. * [React Navigation](https://reactnavigation.org/) is used as navigation library. -* [Axios](https://github.com/axios/axios) is used as HTTP client library. +* [Axios](https://github.com/axios/axios) is used as an HTTP client library. * [Redux](https://redux.js.org/) is used as state management library. * [Redux Toolkit](https://redux-toolkit.js.org/) library is used as a toolset for efficient Redux development. * [Redux-Saga](https://redux-saga.js.org/) is used to manage asynchronous processes. -* [Redux Persist](https://github.com/rt2zz/redux-persist) is used as state persistance. +* [Redux Persist](https://github.com/rt2zz/redux-persist) is used as state persistence. * [Reselect](https://github.com/reduxjs/reselect) is used to create memoized selectors. * [i18n-js](https://github.com/fnando/i18n-js) is used as i18n library. * [expo-font](https://docs.expo.io/versions/latest/sdk/font/) library allows loading fonts easily. diff --git a/docs/en/Startup-Templates/Module.md b/docs/en/Startup-Templates/Module.md index c9ac6ccd48..afb6496ed5 100644 --- a/docs/en/Startup-Templates/Module.md +++ b/docs/en/Startup-Templates/Module.md @@ -139,7 +139,7 @@ Set `host/YourProjectName.Web.Unified` as the startup project, run `Update-Datab In this scenario, there are three applications; -* `.IdentityServer` application is an authentication server used by other applications. It has its own `appsettings.json` that contains database connection and other configurations. +* `.AuthServer` application is an authentication server used by other applications. It has its own `appsettings.json` that contains database connection and other configurations. * `.HttpApi.Host` hosts the HTTP API of the module. It has its own `appsettings.json` that contains database connections and other configurations. * `.Web.Host` host the UI of the module. This project contains an `appsettings.json` file, but it does not have a connection string because it never connects to the database. Instead, it mainly contains endpoint of the remote API server and the authentication server. @@ -147,7 +147,7 @@ The diagram below shows the relation of the applications: ![tiered-solution-applications](../images/tiered-solution-applications.png) -`.Web.Host` project uses OpenId Connect Authentication to get identity and access tokens for the current user from the `.IdentityServer`. Then uses the access token to call the `.HttpApi.Host`. HTTP API server uses bearer token authentication to obtain claims from the access token to authorize the current user. +`.Web.Host` project uses OpenId Connect Authentication to get identity and access tokens for the current user from the `.AuthServer`. Then uses the access token to call the `.HttpApi.Host`. HTTP API server uses bearer token authentication to obtain claims from the access token to authorize the current user. ##### Pre-requirements @@ -157,7 +157,7 @@ The diagram below shows the relation of the applications: You should run the application with the given order: -- First, run the `.IdentityServer` since other applications depends on it. +- First, run the `.AuthServer` since other applications depends on it. - Then run the `.HttpApi.Host` since it is used by the `.Web.Host` application. - Finally, you can run the `.Web.Host` project and login to the application using `admin` as the username and `1q2w3E*` as the password. @@ -195,7 +195,7 @@ The module you will develop depends on two of these ABP packages: _@abp/ng.core_ Once all dependencies are installed, follow the steps below to serve your development app: -1. Make sure `.IdentityServer` and `*.HttpApi.Host` projects are up and running. +1. Make sure `.AuthServer` and `*.HttpApi.Host` projects are up and running. 2. Open your terminal at the root folder, i.e. `angular`. 3. Run `yarn start` or `npm start`. diff --git a/docs/en/Themes/LeptonXLite/angular.md b/docs/en/Themes/LeptonXLite/angular.md index 6e4cbef317..805ababd69 100644 --- a/docs/en/Themes/LeptonXLite/angular.md +++ b/docs/en/Themes/LeptonXLite/angular.md @@ -79,4 +79,4 @@ To change the logos and brand color of `LeptonX`, simply add the following CSS t ### Server Side -In order to migrate to LeptonX on your server side projects (Host and/or IdentityServer projects), please follow the [Server Side Migration](mvc.md) document. +In order to migrate to LeptonX on your server side projects (Host and/or AuthServer projects), please follow the [Server Side Migration](mvc.md) document. diff --git a/docs/en/Themes/LeptonXLite/blazor.md b/docs/en/Themes/LeptonXLite/blazor.md index 7bc374746a..f443336e7c 100644 --- a/docs/en/Themes/LeptonXLite/blazor.md +++ b/docs/en/Themes/LeptonXLite/blazor.md @@ -16,11 +16,12 @@ LeptonX Lite has implementation for the ABP Framework Blazor WebAssembly & Blazo ## Installation {{if UI == "Blazor"}} -- Complete the [MVC Razor Pages Installation](mvc.md#installation) for the **HttpApi.Host** application first. _If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as **HttpApi.Host** and if identity server is separated, install to the **IdentityServer**_. +- Complete the [MVC Razor Pages Installation](mvc.md#installation) for the **HttpApi.Host** application first. _If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as **HttpApi.Host** and if identity server is separated, install to the **OpenIddict**_. + +- Add **Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme** package to your **Blazor WebAssembly** application with the following command: -- Add **Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme** package to your **Blazor WebAssembly** application. ```bash - dotnet add package Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme + dotnet add package Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme --prerelease ``` - Remove **Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme** reference from the project since it's not necessary after switching to LeptonX Lite. @@ -51,11 +52,12 @@ builder.RootComponents.Add("#ApplicationContainer"); {{if UI == "BlazorServer"}} -- Complete the [MVC Razor Pages Installation](mvc.md#installation) first. _If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as **HttpApi.Host** and **IdentityServer**_. +- Complete the [MVC Razor Pages Installation](mvc.md#installation) first. _If the solution is tiered/micro-service, complete the MVC steps for all MVC applications such as **HttpApi.Host** and **AuthServer**_. + +- Add **Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme** package to your **Blazor server** application with the following command: -- Add **Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme** package to your **Blazor server** application. ```bash - dotnet add package Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme + dotnet add package Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme --prerelease ``` - Remove **Volo.Abp.AspNetCore.Components.Server.BasicTheme** reference from the project since it's not necessary after switching to LeptonX Lite. diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index 7b232c4873..b3e5a876df 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -96,13 +96,7 @@ Ensure that the `TodoApp.HttpApi.Host` project is the startup project, then run You can explore and test your HTTP API with this UI. If it works, we can run the Angular client application. -First, run the following command to restore the NPM packages; - -````bash -npm install -```` - -It will take some time to install all the packages. Then you can run the application using the following command: +You can run the application using the following command: ````bash npm start diff --git a/docs/en/UI/Angular/Account-Module.md b/docs/en/UI/Angular/Account-Module.md index 3670a14f73..3b2363361a 100644 --- a/docs/en/UI/Angular/Account-Module.md +++ b/docs/en/UI/Angular/Account-Module.md @@ -110,7 +110,7 @@ export const environment = { // other options removed for sake of brevity oAuthConfig: { - issuer: 'https://localhost:44305', // IdentityServer url + issuer: 'https://localhost:44305', // AuthServer url clientId: 'MyProjectName_App', dummyClientSecret: '1q2w3e*', scope: 'offline_access MyProjectName', diff --git a/docs/en/UI/Angular/GlobalFeatures.md b/docs/en/UI/Angular/GlobalFeatures.md new file mode 100644 index 0000000000..c8f9ba78df --- /dev/null +++ b/docs/en/UI/Angular/GlobalFeatures.md @@ -0,0 +1,47 @@ +# Angular: Global Features API + +The `ConfigStateService.getGlobalFeatures` API allows you to get the enabled features of the [Global Features](../../Global-Features.md) on the client side. + +> This document only explains the JavaScript API. See the [Global Features](../../Global-Features.md) document to understand the ABP Global Features system. + +## Usage + +````js + +import { ConfigStateService } from '@abp/ng.core'; +import { Component, OnInit } from '@angular/core'; + +@Component({ + /* class metadata here */ +}) +class DemoComponent implements OnInit { + constructor(private config: ConfigStateService) {} + + ngOnInit(): void { + // Gets all enabled global features. + const getGlobalFeatures = this.config.getGlobalFeatures(); + + //Example result is: `{ enabledFeatures: [ 'Shopping.Payment', 'Ecommerce.Subscription' ] }` + + // or + this.config.getGlobalFeatures$().subscribe(getGlobalFeatures => { + // use getGlobalFeatures here + }) + + // Check the global feature is enabled + this.config.getGlobalFeatureIsEnabled('Ecommerce.Subscription') + + //Example result is `true` + + this.config.getGlobalFeatureIsEnabled('My.Subscription') + + //Example result is `false` + + // or + this.config.getGlobalFeatureIsEnabled$('Ecommerce.Subscription').subscribe((isEnabled:boolean) => { + // use isEnabled here + }) + } +} + + diff --git a/docs/en/UI/Angular/Loading-Directive.md b/docs/en/UI/Angular/Loading-Directive.md new file mode 100644 index 0000000000..18ff4baaeb --- /dev/null +++ b/docs/en/UI/Angular/Loading-Directive.md @@ -0,0 +1,44 @@ +# Loading Directive + + +You may want to block a part of the UI and show a spinner for a while; the `LoadingDirective` directive makes this for you. `LoadingDirective` has been exposed by the `@abp/ng.theme.shared` package. + + +## Getting Started + +In order to use the `LoadingDirective` in an HTML template, the **`ThemeSharedModule`** should be imported into your module like this: + +```js +// ... +import { ThemeSharedModule } from '@abp/ng.theme.shared'; + +@NgModule({ + //... + imports: [..., ThemeSharedModule], +}) +export class MyFeatureModule {} +``` + + +## Usage + +The `LoadingDirective` is easy to use. The directive's selector is **`abpLoading`**. By adding the `abpLoading` attribute to an HTML element, you can activate the `LoadingDirectiveective` for the HTML element when the value is true. + +See an example usage: + +```html +
+ Lorem ipsum dolor sit, amet consectetur adipisicing elit. Laboriosam commodi quae aspernatur, + corporis velit et suscipit id consequuntur amet minima expedita cum reiciendis dolorum + cupiditate? Voluptas eaque voluptatum odio deleniti quo vel illum nemo accusamus nulla ratione + impedit dolorum expedita necessitatibus fugiat ullam beatae, optio eum cupiditate ducimus + architecto. +
+``` + + +The `abpLoading` attribute has been added to the `
` element that contains very a long text inside to activate the `LoadingDirective`. + +See the result: + +![Loading directive result](./images/abp-loading.png) diff --git a/docs/en/UI/Angular/Multi-Tenancy.md b/docs/en/UI/Angular/Multi-Tenancy.md index cded16e7d4..92f76435ca 100644 --- a/docs/en/UI/Angular/Multi-Tenancy.md +++ b/docs/en/UI/Angular/Multi-Tenancy.md @@ -119,7 +119,7 @@ After the configuration above, if your app runs on the `mytenant1.mydomain.com`, After this replacement, the app will use the following URLs: -- `https://mytenant1.ids.mydomain.com` as IdentityServer URL. +- `https://mytenant1.ids.mydomain.com` as AuthServer URL. - `https://mytenant1.api.mydomain.com` as default URL. - `https://mytenant1.identity.mydomain.com` as `AbpIdentity` remote endpoint URL. diff --git a/docs/en/UI/Angular/images/abp-loading.png b/docs/en/UI/Angular/images/abp-loading.png new file mode 100644 index 0000000000..50073f6d63 Binary files /dev/null and b/docs/en/UI/Angular/images/abp-loading.png differ diff --git a/docs/en/UI/AspNetCore/Branding.md b/docs/en/UI/AspNetCore/Branding.md index aa1500401d..3a729d28db 100644 --- a/docs/en/UI/AspNetCore/Branding.md +++ b/docs/en/UI/AspNetCore/Branding.md @@ -21,7 +21,7 @@ namespace MyProject.Web { public override string AppName => "Book Store"; - public override string LogoUrl => "logo.png"; + public override string LogoUrl => "/logo.png"; } } ```` diff --git a/docs/en/UI/AspNetCore/JavaScript-API/GlobalFeatures.md b/docs/en/UI/AspNetCore/JavaScript-API/GlobalFeatures.md new file mode 100644 index 0000000000..7b451addcd --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/GlobalFeatures.md @@ -0,0 +1,24 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript Global Features API + +`abp.globalFeatures` API allows you to get the enabled features of the [Global Features](../../../Global-Features.md) in the client side. + +> This document only explains the JavaScript API. See the [Global Features](../../../Global-Features.md) document to understand the ABP Global Features system. + +## Usage + +````js +//Gets all enabled global features. +> abp.globalFeatures.enabledFeatures + +[ 'Shopping.Payment', 'Ecommerce.Subscription' ] + + +//Check the global feature is enabled +> abp.globalFeatures.isEnabled('Ecommerce.Subscription') + +true + +> abp.globalFeatures.isEnabled('My.Subscription') + +false +```` diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Index.md b/docs/en/UI/AspNetCore/JavaScript-API/Index.md index 3473140392..21a3eeed93 100644 --- a/docs/en/UI/AspNetCore/JavaScript-API/Index.md +++ b/docs/en/UI/AspNetCore/JavaScript-API/Index.md @@ -10,6 +10,7 @@ ABP provides a set of JavaScript APIs for ASP.NET Core MVC / Razor Pages applica * [DOM](DOM.md) * [Events](Events.md) * [Features](Features.md) +* [Global Features](GlobalFeatures.md) * [Localization](Localization.md) * [Logging](Logging.md) * [ResourceLoader](ResourceLoader.md) diff --git a/docs/en/UI/AspNetCore/Theming.md b/docs/en/UI/AspNetCore/Theming.md index 6a378cd29a..fd2e7312de 100644 --- a/docs/en/UI/AspNetCore/Theming.md +++ b/docs/en/UI/AspNetCore/Theming.md @@ -122,9 +122,13 @@ The empty layout provides an empty page. It typically includes the following par ## Implementing a Theme -### The Easy Way +### The Easiest Way -The easiest way to create a new theme is to copy the [Basic Theme Source Code](https://github.com/abpframework/abp/blob/dev/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) and customize it. Once you get a copy of the theme in your solution, remove the `Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic` NuGet package and reference to the local project. +The easiest way of creating a new theme is adding [Basic Theme Source Code](https://github.com/abpframework/abp/tree/dev/modules/basic-theme) module with source codes and customizing it. + +```bash +abp add-package Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic --with-source-code --add-to-solution-file +``` ### The ITheme Interface diff --git a/docs/en/UI/Blazor/Authentication.md b/docs/en/UI/Blazor/Authentication.md index 9dc34ebce5..db784795e8 100644 --- a/docs/en/UI/Blazor/Authentication.md +++ b/docs/en/UI/Blazor/Authentication.md @@ -1,11 +1,27 @@ # Blazor UI: Authentication -The [application startup template](../../Startup-Templates/Application.md) is properly configured to use OpenId Connect to authenticate the user through the server side login form; +````json +//[doc-params] +{ + "UI": ["Blazor", "BlazorServer"] +} +```` +The [application startup template](../../Startup-Templates/Application.md) is properly configured to use OpenId Connect to authenticate the user; + +{{if UI == "BlazorServer"}} +The Blazor Server application UI is actually a hybrid application that is combined with the MVC UI, and uses the login page provided by the MVC UI. When users enter a page that requires login, they are redirected to the `/Account/Login` page. Once they complete the login process, they are returned back to the application's UI. The login page also contains features like registration, password recovery, etc. + +{{end}} + +{{if UI == "Blazor"}} * When the Blazor application needs to authenticate, it is redirected to the server side. -* Users can enter username & password to login if they already have an account. If not, they can use the register form to create a new user. They can also use forgot password and other features. The server side uses IdentityServer4 to handle the authentication. +* Users can enter username & password to login if they already have an account. If not, they can use the register form to create a new user. They can also use forgot password and other features. The server side uses OpenIddict to handle the authentication. * Finally, they are redirected back to the Blazor application to complete the login process. This is a typical and recommended approach to implement authentication in Single-Page Applications. The client side configuration is done in the startup template, so you can change it. -See the [Blazor Security document](https://docs.microsoft.com/en-us/aspnet/core/blazor/security) to understand and customize the authentication process. \ No newline at end of file + +See the [Blazor Security document](https://docs.microsoft.com/en-us/aspnet/core/blazor/security) to understand and customize the authentication process. + +{{end}} \ No newline at end of file diff --git a/docs/en/UI/Blazor/Basic-Theme.md b/docs/en/UI/Blazor/Basic-Theme.md index 2c034f258a..1d2dfb5c11 100644 --- a/docs/en/UI/Blazor/Basic-Theme.md +++ b/docs/en/UI/Blazor/Basic-Theme.md @@ -1,5 +1,12 @@ # Blazor UI: Basic Theme +````json +//[doc-params] +{ + "UI": ["Blazor", "BlazorServer"] +} +```` + The Basic Theme is a theme implementation for the Blazor UI. It is a minimalist theme that doesn't add any styling on top of the plain [Bootstrap](https://getbootstrap.com/). You can take the Basic Theme as the **base theme** and build your own theme or styling on top of it. See the *Customization* section. > If you are looking for a professional, enterprise ready theme, you can check the [Lepton Theme](https://commercial.abp.io/themes), which is a part of the [ABP Commercial](https://commercial.abp.io/). @@ -10,16 +17,46 @@ The Basic Theme is a theme implementation for the Blazor UI. It is a minimalist **This theme is already installed** when you create a new solution using the [startup templates](../../Startup-Templates/Index.md). If you need to manually install it, follow the steps below: +{{if UI == "Blazor"}} + * Install the [Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme) NuGet package to your web project. * Add `AbpAspNetCoreComponentsWebAssemblyBasicThemeModule` into the `[DependsOn(...)]` attribute for your [module class](../../Module-Development-Basics.md) in the your Blazor UI project. * Use `Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic.App` as the root component of your application in the `ConfigureServices` method of your module: -````csharp -var builder = context.Services.GetSingletonInstance(); -builder.RootComponents.Add("#ApplicationContainer"); -```` + ```csharp + var builder = context.Services.GetSingletonInstance(); + builder.RootComponents.Add("#ApplicationContainer"); + ``` + `#ApplicationContainer` is a selector (like `
Loading...
`) in the `index.html`. + +* Execute `abp bundle` command under blazor project once. + +{{end}} + +{{if UI == "BlazorServer"}} + +* Make sure [AspNetCore Basic Theme](../AspNetCore/Basic-Theme.md) installation steps are completed. + +* Install the [Volo.Abp.AspNetCore.Components.Server.BasicTheme](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Components.Server.BasicTheme) NuGet package to your web project. + +* Add `AbpAspNetCoreComponentsServerBasicThemeModule` into the `[DependsOn(...)]` attribute for your [module class](../../Module-Development-Basics.md) in the your Blazor UI project. + +* Perform following changes in `Pages/_Host.cshtml` file + * Add usings at the top of the page. + ```html + @using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling + @using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic + ``` + * Add Basic theme style bundles between `` tags. + ```html + + ``` + * Add `App` component of Basic Theme in the body section of page. + ```html + + ``` -`#ApplicationContainer` is a selector (like `
Loading...
`) in the `index.html`. +{{end}} ## The Layout @@ -52,15 +89,37 @@ See the [Customization / Overriding Components](Customization-Overriding-Compone You can run the following [ABP CLI](../../CLI.md) command in **Blazor WebAssembly** project directory to copy the source code to your solution: +{{if UI == "Blazor"}} + `abp add-package Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme --with-source-code --add-to-solution-file` Then, navigate to downloaded `Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme` project directory and run: `abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution-file` +{{end}} + +{{if UI == "BlazorServer"}} + +`abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-code --add-to-solution-file` + +Then, navigate to downloaded `Volo.Abp.AspNetCore.Components.Server.BasicTheme` project directory and run: + +`abp add-package Volo.Abp.AspNetCore.Components.Web.BasicTheme --with-source-code --add-to-solution-file` + +{{end}} + ---- -Or, you can download the [source code](https://github.com/abpframework/abp/blob/dev/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme) of the Basic Theme, manually copy the project content into your solution, re-arrange the package/module dependencies (see the Installation section above to understand how it was installed to the project) and freely customize the theme based on your application requirements. +Or, you can download the source code of the Basic Theme, manually copy the project content into your solution, re-arrange the package/module dependencies (see the Installation section above to understand how it was installed to the project) and freely customize the theme based on your application requirements. + +{{if UI == "Blazor"}} +- [Basic Theme Source Code](https://github.com/abpframework/abp/blob/dev/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme) +{{end}} + +{{if UI == "BlazorServer"}} +- [Basic Theme Source Code](https://github.com/abpframework/abp/blob/dev/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme) +{{end}} ## See Also diff --git a/docs/en/UI/Blazor/Customization-Overriding-Components.md b/docs/en/UI/Blazor/Customization-Overriding-Components.md index e62e0a0ff4..7dadc5bb82 100644 --- a/docs/en/UI/Blazor/Customization-Overriding-Components.md +++ b/docs/en/UI/Blazor/Customization-Overriding-Components.md @@ -1,5 +1,12 @@ # Blazor UI: Customization / Overriding Components +````json +//[doc-params] +{ + "UI": ["Blazor", "BlazorServer"] +} +```` + This document explains how to override the user interface of a depended [application module](../../Modules/Index.md) or [theme](Theming.md) for Blazor applications. ## Overriding a Razor Component @@ -26,9 +33,16 @@ The next step is to create a razor component, like `MyBranding.razor`, in your a The content of the `MyBranding.razor` is shown below: + ````html @using Volo.Abp.DependencyInjection +{{if UI == "BlazorServer"}} +@using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Themes.Basic +{{end}} +{{if UI == "Blazor"}} @using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic +{{end}} + @inherits Branding @attribute [ExposeServices(typeof(Branding))] @attribute [Dependency(ReplaceServices = true)] @@ -39,7 +53,7 @@ The content of the `MyBranding.razor` is shown below: Let's explain the code: -* `@inherits Branding` line inherits the Branding component defined by the [Basic Theme](Basic-Theme.md) (in the `Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic` namespace). +* `@inherits Branding` line inherits the Branding component defined by the [Basic Theme](Basic-Theme.md) (in the {{if UI == "BlazorServer"}}`Volo.Abp.AspNetCore.Components.Server.BasicTheme.Themes.Basic`{{end}} {{if UI == "Blazor"}}`Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic`{{end}} namespace). * `@attribute [ExposeServices(typeof(Branding))]` registers this service (component) to [dependency injection](../../Dependency-Injection.md) for the `Branding` service (component). * `@attribute [Dependency(ReplaceServices = true)]` replaces the `Branding` class (component) with this new `MyBranding` class (component). * The rest of the code is related the content and styling of the component. @@ -57,7 +71,12 @@ If you prefer to use code-behind file for the C# code of your component, you can **MyBlazor.razor** ````html +{{if UI == "BlazorServer"}} +@using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Themes.Basic +{{end}} +{{if UI == "Blazor"}} @using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic +{{end}} @inherits Branding @@ -67,7 +86,13 @@ If you prefer to use code-behind file for the C# code of your component, you can **MyBlazor.razor.cs** ````csharp +{{if UI == "BlazorServer"}} +using Volo.Abp.AspNetCore.Components.Server.BasicTheme.Themes.Basic; +{{end}} +{{if UI == "Blazor"}} using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic; +{{end}} + using Volo.Abp.DependencyInjection; namespace MyProject.Blazor.Components diff --git a/docs/en/UI/Blazor/Error-Handling.md b/docs/en/UI/Blazor/Error-Handling.md index 35aff041af..6582ee0c8e 100644 --- a/docs/en/UI/Blazor/Error-Handling.md +++ b/docs/en/UI/Blazor/Error-Handling.md @@ -1,5 +1,12 @@ # Blazor UI: Error Handling +````json +//[doc-params] +{ + "UI": ["Blazor", "BlazorServer"] +} +```` + Blazor, by default, shows a yellow line at the bottom of the page if any unhandled exception occurs. However, this is not useful in a real application. ABP provides an automatic error handling system for the Blazor UI. @@ -20,6 +27,8 @@ There are different type of `Exception` classes handled differently by the ABP F **Example** +{{if UI == "BlazorServer"}} + ````csharp @page "/" @using Volo.Abp @@ -28,13 +37,6 @@ There are different type of `Exception` classes handled differently by the ABP F @code { - //for Blazor WASM - private void TestException() - { - throw new UserFriendlyException("A user friendly error message!"); - } - - //for Blazor Server private async Task TestException() { try @@ -49,6 +51,26 @@ There are different type of `Exception` classes handled differently by the ABP F } ```` +{{end}} + +{{if UI == "Blazor"}} + +````csharp +@page "/" +@using Volo.Abp + + + +@code +{ + private void TestException() + { + throw new UserFriendlyException("A user friendly error message!"); + } +} +```` +{{end}} + ABP automatically handle the exception and show an error message to the user: ![blazor-user-friendly-exception](../../images/blazor-user-friendly-exception.png) diff --git a/docs/en/UI/Blazor/Theming.md b/docs/en/UI/Blazor/Theming.md index 067052e322..c7f92189de 100644 --- a/docs/en/UI/Blazor/Theming.md +++ b/docs/en/UI/Blazor/Theming.md @@ -1,5 +1,12 @@ # Blazor UI: Theming +````json +//[doc-params] +{ + "UI": ["Blazor", "BlazorServer"] +} +```` + ## Introduction ABP Framework provides a complete **UI Theming** system with the following goals: @@ -16,17 +23,28 @@ In order to accomplish these goals, ABP Framework; ### Current Themes -Currently, two themes are **officially provided**: +Currently, three themes are **officially provided**: * The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**. * The [Lepton Theme](https://commercial.abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP Commercial](https://commercial.abp.io/) license. +* The [LeptonX Theme](https://x.leptontheme.com/) is a theme that has a [commercial](https://docs.abp.io/en/commercial/latest/themes/lepton-x/commercial/blazor) and a [lite](../../Themes/LeptonXLite/blazor.md) version. ## Overall ### The Base Libraries +{{if UI == "Blazor"}} + All the themes must depend on the [Volo.Abp.AspNetCore.Components.WebAssembly.Theming](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Components.WebAssembly.Theming) NuGet package, so they are indirectly depending on the following libraries: +{{end}} + +{{if UI == "BlazorServer"}} + +All the themes must depend on the [Volo.Abp.AspNetCore.Components.Server.Theming](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Components.Server.Theming) NuGet package, so they are indirectly depending on the following libraries: + +{{end}} + * [Twitter Bootstrap](https://getbootstrap.com/) as the fundamental HTML/CSS framework. * [Blazorise](https://github.com/stsrki/Blazorise) as a component library that supports the Bootstrap and adds extra components like Data Grid and Tree. * [FontAwesome](https://fontawesome.com/) as the fundamental CSS font library. @@ -61,9 +79,21 @@ The application layout typically includes the following parts; A theme is simply a Razor Class Library. -### The Easy Way +### The Easiest Way -The easiest way to create a new theme is to copy the [Basic Theme Source Code](https://github.com/abpframework/abp/blob/dev/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme) and customize it. Once you get a copy of the theme in your solution, remove the `Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme` NuGet package and reference to the local project. +The easiest way of creating a new theme is adding [Basic Theme Source Code](https://github.com/abpframework/abp/tree/dev/modules/basic-theme) module with source codes and customizing it. + +{{if UI == "Blazor"}} +```bash +abp add-package Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme --with-source-code --add-to-solution-file +``` +{{end}} + +{{if UI == "BlazorServer"}} +```bash +abp add-package Volo.Abp.AspNetCore.Components.Server.BasicTheme --with-source-code --add-to-solution-file +``` +{{end}} ### Global Styles / Scripts @@ -165,6 +195,9 @@ Configure(options => Language Selection toolbar item is generally a dropdown that is used to switch between languages. `ILanguageProvider` is used to get the list of available languages and `CultureInfo.CurrentUICulture` is used to learn the current language. + +{{if UI == "Blazor"}} + Local Storage is used to get and set the current language with the `Abp.SelectedLanguage` key. **Example: Get the currently selected language** @@ -192,6 +225,31 @@ The theme should reload the page after changing the language: await JsRuntime.InvokeVoidAsync("location.reload"); ```` +{{end}} + +{{if UI == "BlazorServer"}} +Localization works on Server side in Blazor Server. So, regular AspNetCore localization middleware is used. + +**Example: Get the currently selected language** + +````csharp +var selectedLanguageName = CultureInfo.CurrentCulture.Name; +```` + +**Example: Set the selected language** + +````csharp +// Get current url. +var relativeUrl = NavigationManager.Uri.RemovePreFix(NavigationManager.BaseUri).EnsureStartsWith('/'); + +// Redirect to ABP language switch endpoint. +NavigationManager.NavigateTo( + $"/Abp/Languages/Switch?culture={newLanguage.CultureName}&uiCulture={newLanguage.UiCultureName}&returnUrl={relativeUrl}", + forceLoad: true +); +```` +{{end}} + ##### User Menu User menu includes links related to the user account. `IMenuManager` is used just like the Main Menu, but this time with `StandardMenus.User` parameter like shown below: diff --git a/docs/en/UI/Blazor/Toolbars.md b/docs/en/UI/Blazor/Toolbars.md index b8cca6077a..3ff1b7f135 100644 --- a/docs/en/UI/Blazor/Toolbars.md +++ b/docs/en/UI/Blazor/Toolbars.md @@ -34,23 +34,16 @@ This sample simply shows a message. In real life, you probably want to call an H Now, we can create a class implementing the `IToolbarContributor` interface: ````csharp -using System.Threading.Tasks; -using MyCompanyName.MyProjectName.Blazor.Components; -using Volo.Abp.AspNetCore.Components.WebAssembly.Theming.Toolbars; - -namespace MyCompanyName.MyProjectName.Blazor +public class MyToolbarContributor : IToolbarContributor { - public class MyToolbarContributor : IToolbarContributor + public Task ConfigureToolbarAsync(IToolbarConfigurationContext context) { - public Task ConfigureToolbarAsync(IToolbarConfigurationContext context) + if (context.Toolbar.Name == StandardToolbars.Main) { - if (context.Toolbar.Name == StandardToolbars.Main) - { - context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(Notification))); - } - - return Task.CompletedTask; + context.Toolbar.Items.Insert(0, new ToolbarItem(typeof(Notification))); } + + return Task.CompletedTask; } } ```` diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 66910b683d..186eef1e07 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -975,6 +975,10 @@ "text": "Features", "path": "UI/Angular/Features.md" }, + { + "text": "Global Features", + "path": "UI/Angular/GlobalFeatures.md" + }, { "text": "Permission Management", "path": "UI/Angular/Permission-Management.md" @@ -1028,6 +1032,10 @@ "text": "Confirmation Popup", "path": "UI/Angular/Confirmation-Service.md" }, + { + "text": "Loading Directive", + "path": "UI/Angular/Loading-Directive.md" + }, { "text": "Toast Overlay", "path": "UI/Angular/Toaster-Service.md" @@ -1320,11 +1328,32 @@ "path": "Samples/Index.md" }, { - "text": "Microservice Demo", + "text": "eShopOnAbp", + "path": "https://github.com/abpframework/eShopOnAbp" + }, + { + "text": "EventHub", + "path": "https://github.com/abpframework/eventhub" + }, + { + "text": "Microservice Demo (legacy)", "path": "Samples/Microservice-Demo.md" } ] }, + { + "text": "Books", + "items": [ + { + "text": "Mastering ABP Framework", + "path": "https://abp.io/books/mastering-abp-framework" + }, + { + "text": "Implementing Domain Driven Design", + "path": "https://abp.io/books/implementing-domain-driven-design" + } + ] + }, { "text": "Release Information", "items": [ diff --git a/docs/pt-BR/CLI.md b/docs/pt-BR/CLI.md index 4d78237e1c..87ddfc9942 100644 --- a/docs/pt-BR/CLI.md +++ b/docs/pt-BR/CLI.md @@ -45,7 +45,7 @@ abp new Acme.BookStore * `mvc`: ASP.NET Core MVC. Existem algumas opções adicionais para este modelo: * `--tiered`: Cria uma solução em camadas em que as camadas da Web e da API HTTP são fisicamente separadas. Se não especificado, ele cria uma solução em camadas que é menos complexa e adequada para a maioria dos cenários. * `angular`: Angular. Existem algumas opções adicionais para este modelo: - * `--separate-identity-server`: Separa o aplicativo do servidor de identidade do aplicativo host da API. Se não especificado, você terá um único ponto de extremidade no lado do servidor. + * `--separate-auth-server`: Separa o aplicativo do servidor de identidade do aplicativo host da API. Se não especificado, você terá um único ponto de extremidade no lado do servidor. * `--database-provider` Ou `-d`: especifica o provedor de banco de dados. O provedor padrão é `ef`. Fornecedores disponíveis: * `ef`: Entity Framework Core. * `mongodb`: MongoDB. diff --git a/docs/zh-Hans/Application-Services.md b/docs/zh-Hans/Application-Services.md index e68217a94d..6d358c3b52 100644 --- a/docs/zh-Hans/Application-Services.md +++ b/docs/zh-Hans/Application-Services.md @@ -87,7 +87,7 @@ public class CreateBookDto } ``` -有关DTO更的教程,请参见[数据传输对象文档](Entities.md) +有关DTO更多的教程,请参见[数据传输对象文档](Entities.md) ### BookAppService(实现) @@ -330,7 +330,7 @@ public class BookAppService : } ```` -`CrudAppService`实现了`ICrudAppService`接口中声明的所有方法. 然后,你可以添加自己的自定义方法或覆盖和自定义实现. +`CrudAppService`实现了`ICrudAppService`接口中声明的所有方法. 然后,你可以添加自己的自定义方法或重写和自定义实现. > `CrudAppService` 有不同数量泛型参数的版本,你可以选择适合的使用. @@ -380,4 +380,4 @@ public class DistrictKey ### 生命周期 -应用服务的生命周期是[transient](Dependency-Injection)的,它们会自动注册到依赖注入系统. \ No newline at end of file +应用服务的生命周期是[transient](Dependency-Injection)的,它们会自动注册到依赖注入系统. diff --git a/docs/zh-Hans/Background-Workers-Hangfire.md b/docs/zh-Hans/Background-Workers-Hangfire.md index 5e53928ca1..b02a793d3f 100644 --- a/docs/zh-Hans/Background-Workers-Hangfire.md +++ b/docs/zh-Hans/Background-Workers-Hangfire.md @@ -96,29 +96,29 @@ public class MyLogWorker : HangfireBackgroundWorkerBase, IMyLogWorker ## 注册到后台工作者管理器 -创建一个后台工作者后, 你应该添加到 `IBackgroundWorkerManager`, 最常用的地方是在你模块类的 `OnApplicationInitialization` 方法中: +创建一个后台工作者后, 你应该添加到 `IBackgroundWorkerManager`, 最常用的地方是在你模块类的 `OnApplicationInitializationAsync` 方法中: ```` csharp [DependsOn(typeof(AbpBackgroundWorkersModule))] public class MyModule : AbpModule { - public override void OnApplicationInitialization( + public override async Task OnApplicationInitializationAsync( ApplicationInitializationContext context) { - context.AddBackgroundWorker(); + await context.AddBackgroundWorkerAsync(); //如果定义了接口 - //context.AddBackgroundWorker(); + //await context.AddBackgroundWorkerAsync(); } } ```` -`context.AddBackgroundWorker(...)` 是一个是以下代码快捷的扩展方法: +`context.AddBackgroundWorkerAsync(...)` 是一个是以下代码快捷的扩展方法: ```` csharp context.ServiceProvider .GetRequiredService() - .Add( + .AddAsync( context .ServiceProvider .GetRequiredService() @@ -127,4 +127,4 @@ context.ServiceProvider 它解析给定的后台工作者并添加到 `IBackgroundWorkerManager`. -虽然我们通常在 `OnApplicationInitialization` 中添加后台工作者, 但对此没有限制. 你可以在任何地方注入 `IBackgroundWorkerManager` 并在运行时添加后台工作者. \ No newline at end of file +虽然我们通常在 `OnApplicationInitializationAsync` 中添加后台工作者, 但对此没有限制. 你可以在任何地方注入 `IBackgroundWorkerManager` 并在运行时添加后台工作者. \ No newline at end of file diff --git a/docs/zh-Hans/Background-Workers.md b/docs/zh-Hans/Background-Workers.md index 3f0e7fb369..da1e9f9f54 100644 --- a/docs/zh-Hans/Background-Workers.md +++ b/docs/zh-Hans/Background-Workers.md @@ -78,26 +78,26 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase ## 注册后台工作者 -创建一个后台工作者后,你应该将其添加到 `IBackgroundWorkerManager`. 最常见的地方是模块类的 `OnApplicationInitialization` 方法: +创建一个后台工作者后,你应该将其添加到 `IBackgroundWorkerManager`. 最常见的地方是模块类的 `OnApplicationInitializationAsync` 方法: ````csharp [DependsOn(typeof(AbpBackgroundWorkersModule))] public class MyModule : AbpModule { - public override void OnApplicationInitialization( + public override async Task OnApplicationInitialization( ApplicationInitializationContext context) { - context.AddBackgroundWorker(); + await context.AddBackgroundWorkerAsync(); } } ```` -`context.AddBackgroundWorker(...)` 是以下代码的简化扩展方法: +`context.AddBackgroundWorkerAsync(...)` 是以下代码的简化扩展方法: ````csharp context.ServiceProvider .GetRequiredService() - .Add( + .AddAsync( context .ServiceProvider .GetRequiredService() @@ -106,7 +106,7 @@ context.ServiceProvider 所以,它解析了给定的后台工作者并添加到 `IBackgroundWorkerManager`. -如果我们通常在 `OnApplicationInitialization` 添加工作者,但并不是强制的. 你可以在应用程序的任何地方注入 `IBackgroundWorkerManager` 并在运行时添加工作者. 在你的应用程序关闭时Background worker manager会释放所有已注册的后台工作者. +如果我们通常在 `OnApplicationInitializationAsync` 添加工作者,但并不是强制的. 你可以在应用程序的任何地方注入 `IBackgroundWorkerManager` 并在运行时添加工作者. 在你的应用程序关闭时Background worker manager会释放所有已注册的后台工作者. ## Options diff --git a/docs/zh-Hans/CLI-New-Command-Samples.md b/docs/zh-Hans/CLI-New-Command-Samples.md index 3adfa472ed..01c591a019 100644 --- a/docs/zh-Hans/CLI-New-Command-Samples.md +++ b/docs/zh-Hans/CLI-New-Command-Samples.md @@ -15,7 +15,7 @@ * 在新文件夹中创建项目, **Entity Framework Core**, 默认应用程序模板, **拆分Identity Server**: ```bash - abp new Acme.BookStore -t app -u angular -m none --separate-identity-server --database-provider ef -csf + abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider ef -csf ``` * 在新文件夹中创建项目, **Entity Framework Core**, **自定义连接字符串**: @@ -33,7 +33,7 @@ * 在新文件夹中创建项目, **MongoDB**, 默认应用程序模板, 不创建移动端应用程序, **拆分Identity Server**: ```bash - abp new Acme.BookStore -t app -u angular -m none --separate-identity-server --database-provider mongodb -csf + abp new Acme.BookStore -t app -u angular -m none --separate-auth-server --database-provider mongodb -csf ``` ## MVC @@ -78,7 +78,7 @@ * **Entity Framework Core**, **拆分Identity Server**, 包含移动端应用程序: ```bash - abp new Acme.BookStore -u blazor --separate-identity-server + abp new Acme.BookStore -u blazor --separate-auth-server ``` * 在新文件夹中创建项目, **MongoDB**, 不创建移动端应用程序: @@ -116,7 +116,7 @@ * 在新文件夹中创建项目, **Entity Framework Core**, 拆分Identity Server: ```bash - abp new Acme.BookStore -u none --separate-identity-server -csf + abp new Acme.BookStore -u none --separate-auth-server -csf ``` * **MongoDB**, 不创建移动端应用程序: diff --git a/docs/zh-Hans/CLI.md b/docs/zh-Hans/CLI.md index bef5a7220e..fea3ec781f 100644 --- a/docs/zh-Hans/CLI.md +++ b/docs/zh-Hans/CLI.md @@ -39,6 +39,7 @@ dotnet tool update -g Volo.Abp.Cli * **`switch-to-stable`**: 切换解决方案所有ABP相关包为最新的稳定版本. * **`translate`**: 当源代码控制存储库中有多个JSON[本地化](Localization.md文件时,可简化翻译本地化文件的过程. * **`login`**: 使用你在[abp.io](https://abp.io/)的用户名和密码在你的计算机上认证. +* **`login-info`**: 展示当前登录用户信息. * **`logout`**: 在你的计算机注销认证. * **`install-libs`**: 为 MVC / Razor Pages 和 Blazor Server UI 类型安装NPM包. @@ -88,11 +89,11 @@ abp new Acme.BookStore * `mvc`: ASP.NET Core MVC.此模板的其他选项: * `--tiered`: 创建分层解决方案,Web和Http Api层在物理上是分开的.如果未指定会创建一个分层的解决方案,此解决方案没有那么复杂,适合大多数场景. * `angular`: Angular. 这个模板还有一些额外的选项: - * `--separate-identity-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. + * `--separate-auth-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. * `blazor`: Blazor. 这个模板还有一些额外的选项: - * `--separate-identity-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. + * `--separate-auth-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. * `none`: 无UI. 这个模板还有一些额外的选项: - * `--separate-identity-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. + * `--separate-auth-server`: 将Identity Server应用程序与API host应用程序分开. 如果未指定,则服务器端将只有一个端点. * `--mobile` 或者 `-m`: 指定移动应用程序框架. 如果未指定,则不会创建任何移动应用程序,其他选项: * `none`: 不包含移动应用程序. * `react-native`: React Native. @@ -387,6 +388,14 @@ abp login -p -o # You can enter both your 请注意,新的登录将终止先前的会话并创建一个新的会话. +### login-info + +展示你的登录信息, 如 **名称** , **用户名** , **地址** 和 **组织**. + +```bash +abp login-info +``` + ### logout 通过从计算机中删除会话令牌来注销. diff --git a/docs/zh-Hans/Distributed-Event-Bus.md b/docs/zh-Hans/Distributed-Event-Bus.md index e59fa5e726..8c32e6294b 100644 --- a/docs/zh-Hans/Distributed-Event-Bus.md +++ b/docs/zh-Hans/Distributed-Event-Bus.md @@ -84,7 +84,7 @@ namespace AbpDemo #### 关于序列化的事件对象 -事件传输对象**必须是可序列化**的,因为将其传输到流程外时,它们将被序列化/反序列化为JSON或其他格式. +事件传输对象**必须是可序列化**的,因为将其传输到进程外时,它们将被序列化/反序列化为JSON或其他格式. 避免循环引用,多态,私有setter,并提供默认(空)构造函数,如果你有其他的构造函数.(虽然某些序列化器可能会正常工作),就像DTO一样. diff --git a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md index 1100a22b22..95bce60bfc 100644 --- a/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md +++ b/docs/zh-Hans/Domain-Driven-Design-Implementation-Guide.md @@ -32,11 +32,11 @@ 领域驱动设计(DDD)是一种将实现与**持续进化**的模型连接在一起来满足**复杂**需求的软件开发方法. -DDD适用于**复杂领域**或**较大规模**的系统,而不是简单的CRUD程序.它着重与**核心领域逻辑**,而不是基础架构.这样有助于构建一个**灵活**,模块化,**可维护**的代码库. +DDD适用于**复杂领域**或**较大规模**的系统,而不是简单的CRUD程序.它着重于**核心领域逻辑**,而不是基础架构.这样有助于构建一个**灵活**,模块化,**可维护**的代码库. ### OOP & SOLID -实现DDD高度依赖面对对象编程思想(OOP)和[SOLID](https://zh.wikipedia.org/wiki/SOLID_(%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1))原则.事实上,DDD已经**实现**并**延伸**了这些原则,因此,**深入了解**OOP和SOLID对实施DDD十分有利. +实现DDD高度依赖面向对象编程思想(OOP)和[SOLID](https://zh.wikipedia.org/wiki/SOLID_(%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1))原则.事实上,DDD已经**实现**并**延伸**了这些原则,因此,**深入了解**OOP和SOLID对实施DDD十分有利. ### DDD分层与整洁架构 @@ -154,7 +154,7 @@ ABP的启动解决方案中包含两个用于集成Entity Framework Core的项 * `Application` 依赖`Application.Contracts`项目,因为此项目需要实现应用服务的接口及接口使用的DTO.另外也依赖`Domain`项目,因为应用服务的实现必须依赖领域层中的对象. * `EntityFrameworkCore` 依赖`Domain`项目,因为此项目需要将领域对象(实体或值对象)映射到数据库的表,另外还需要实现`Domain`项目中的仓储接口. * `HttpApi` 依赖`Application.Contracts`项目,因为Controllers需要注入应用服务. -* `HttpApi.Client` 依赖`Application.Contracts`项目,因为此项目需要是使用应用服务. +* `HttpApi.Client` 依赖`Application.Contracts`项目,因为此项目需要使用应用服务. * `Web` 依赖`HttpApi`项目,因为此项目对外提供HTTP APIs.另外Pages或Components 需要使用应用服务,所以还间接依赖了`Application.Contracts`项目 #### 虚线依赖 @@ -198,7 +198,7 @@ ABP的启动解决方案中包含两个用于集成Entity Framework Core的项 ##### 关于数据库独立原则的讨论 -**原因1**会非常影响你**领域对象的建模**(特别是实体间的关系)及**应用程序的代码**.假如,开始选择了关系型数据库,并使用了[Entity Framework Core](Entity-Framework-Core.md),后面尝试切换到[MongoDB](MongoDB.md),那么 **EF Core 中一些非常用的特性**你就不能使用了,例如: +**原因1**会非常影响你**领域对象的建模**(特别是实体间的关系)及**应用程序的代码**.假如,开始选择了关系型数据库,并使用了[Entity Framework Core](Entity-Framework-Core.md),后面尝试切换到[MongoDB](MongoDB.md),那么 **EF Core 中一些非常有用的特性**你就不能使用了,例如: * 无法使用[变更追踪](https://docs.microsoft.com/zh-cn/ef/core/querying/tracking) ,因为*MongoDB provider*没有提供此功能,因此,你始终需要显式的更新已变更的实体. * 无法在不同的聚合间使用[导航属性](https://docs.microsoft.com/zh-cn/ef/core/modeling/relationships),因为文档型数据库是不支持的.有关更多信息,请参见"规则:聚合间仅通过Id关联". @@ -209,7 +209,7 @@ ABP的启动解决方案中包含两个用于集成Entity Framework Core的项 #### 展现层技术无关原则 -展现层技术(UI框架)时现代应用程序中最多变的部分之一.**领域层和应用层**应该对展现层所采用的技术或框架**一无所知**.使用ABP启动模板就非常容易实现此原则. +展现层技术(UI框架)是现代应用程序中最多变的部分之一.**领域层和应用层**应该对展现层所采用的技术或框架**一无所知**.使用ABP启动模板就非常容易实现此原则. 在某些情况下,你可能需要在应用层和展现层中写重复的逻辑,例如,参数验证和授权检查.展现层检查出于**用户体验**,应用层或领域层检查出于**数据安全性**和**数据完整性**. @@ -259,7 +259,7 @@ DDD忽略**领域对象的数据展示**,这并不意味着它们并不重要, 这样做的原因是我们需要执行业务规则来保证数据的一致性和完整性.假如有一个业务规则:"用户不能对已锁定的问题进行评论".那如何在不查询数据库的情况下,获取问题是否已被锁定?所以,只有关联的对象都被加载了的时候,我们才可以执行业务规则. -另外,使用**MongoDB**的开发人员就认为此原则很好理解.在MongoDB中,聚合对象(包含子集合)会被保存到一个`collection`中.因而,无需任何其它配置,就可以实现查询一个聚合,同时所有子对象. +另外,使用**MongoDB**的开发人员就认为此原则很好理解.在MongoDB中,聚合对象(包含子集合)会被保存到一个`collection`中.因而,无需任何其它配置,就可以实现查询一个聚合,同时包含所有子对象. ABP框架有助于你实现这一原则 @@ -293,7 +293,7 @@ public class IssueAppService : ApplicationService, IIssueAppService 最后,我们使用`_issueRepository.UpdateAsync`方法,将对象保存到数据库中. -> EF Core 具有**变更追踪**的功能,因此,不需要调用`_issueRepository.UpdateAsync`方法.ABP的工作单元会再方法结束时,自动执行`DbContext.SaveChanges()`的.如果使用MongoDB则需要显式手动调用. +> EF Core 具有**变更追踪**的功能,因此,不需要调用`_issueRepository.UpdateAsync`方法.ABP的工作单元会在方法结束时,自动执行`DbContext.SaveChanges()`的.如果使用MongoDB则需要显式手动调用. > > 因此,当需要额外编写仓储层的实现,应该在实体变化时始终调用 `UpdateAsync` 方法. @@ -375,7 +375,7 @@ MongoDB中不适合使用导航属性或集合的,原因是:当前源聚合对 并不是所有的子集合的主键都是联合主键,有些情况下,可以使用单独的`Id`作为主键. -> 联合主键实际上时关系型数据库中的概念,因为子集合对象有与之对应的数据库表,而表也要有主键.但是在非关系型数据库中,无需为子集合实体定义主键,因为它们本身就已属于一个聚合根. +> 联合主键实际上是关系型数据库中的概念,因为子集合对象有与之对应的数据库表,而表也要有主键.但是在非关系型数据库中,无需为子集合实体定义主键,因为它们本身就已属于一个聚合根. ##### 聚合根 / 实体的构造函数 @@ -1017,7 +1017,7 @@ public class IssueAppService : ApplicationService, IIssueAppService ### 领域服务 -领域服务主要来实现本领域的逻辑: +领域服务主要用来实现本领域的逻辑: * 依赖**服务和仓储**. * 需要使用多个聚合. @@ -1276,7 +1276,7 @@ public class UserChangePasswordDto 虽然编写了更多的代码,但是这样可维护性更高. -**例外情况:**该规则有一些例外的情况,例如,你想开发两个方法,它们共用相同的输入DTO(通过继承或重用),有一个报表页面有多个过滤条件,多个应用服务使用相同的输入参数返回不同的结果(如,大屏展示数据,Excel报表,csv报表).这种情况下,你是需要修改一个参数,多个应用服务都应该一起被修改. +**例外情况:** 该规则有一些例外的情况,例如,你想开发两个方法,它们共用相同的输入DTO(通过继承或重用),有一个报表页面有多个过滤条件,多个应用服务使用相同的输入参数返回不同的结果(如,大屏展示数据,Excel报表,csv报表).这种情况下,你是需要修改一个参数,多个应用服务都应该一起被修改. ##### 输入DTO中验证逻辑 @@ -1635,7 +1635,7 @@ public class IssueCreationDto 因为,应用服务可能在保存`Issue`对象之前,需要对其它对象进行修改.如果领域服务执行了保存,那么*保存*操作就是重复的. -* 会触发两次数据库会交互,这会导致性能损失. +* 会触发两次数据库交互,这会导致性能损失. * 需要额外添加显式的事务来包含这两个操作,才能保证数据一致性. * 如果因为业务规则取消了实体的创建,则应该在数据库事务中回滚事务,取消所有操作. @@ -1966,7 +1966,7 @@ public class IssueAppService * 如果没有**任何业务逻辑**,只有简单的**CRUD**操作,**请勿**创建领域服务. * **切勿**将**DTO**传递给领域服务,或从领域服务返回**DTO**. -可以在应用服务中直接注入仓储,实现查询,创建,更新及删除操作.除非在这些操作过程中需要执行某些业务逻辑,在这种情况下,请创建领域服务. +可以在应用服务中直接注入仓储,实现查询,创建,更新及删除操作.除非在这些操作过程中需要执行某些领域逻辑,在这种情况下,请创建领域服务. > 不要创建"将来可能需要"这种CRUD领域服务方法([YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)),在需要时重构它并重构现有代码. 由于应用层优雅地抽象了领域层,因此重构过程不会影响UI层和其他客户端. diff --git a/docs/zh-Hans/Domain-Services.md b/docs/zh-Hans/Domain-Services.md index a617aea645..0c61dd2330 100644 --- a/docs/zh-Hans/Domain-Services.md +++ b/docs/zh-Hans/Domain-Services.md @@ -116,7 +116,6 @@ namespace MyProject.Issues ## 应用程序服务与领域服务 -虽然应用服务和领域服务都实现了业务规则,但存在根本的逻辑和形式差异; 虽然 [应用服务](Application-Services.md) 和领域服务都实现了业务规则,但存在根本的逻辑和形式差异: * 应用程序服务实现应用程序的 **用例** (典型 Web 应用程序中的用户交互), 而领域服务实现 **核心的、用例独立的领域逻辑**. diff --git a/docs/zh-Hans/Entities.md b/docs/zh-Hans/Entities.md index 7cd96b2820..8fbf16ddd3 100644 --- a/docs/zh-Hans/Entities.md +++ b/docs/zh-Hans/Entities.md @@ -70,7 +70,7 @@ public class BookAppService : ApplicationService, IBookAppService } ```` -* `BookAppService` 注入图书实体的默认[仓库](Repositories.md),使用`InsertAsync`方法插入 `Book` 到数据库中. +* `BookAppService` 注入图书实体的默认[仓储](Repositories.md),使用`InsertAsync`方法插入 `Book` 到数据库中. * `GuidGenerator`类型是 `IGuidGenerator`,它是在`ApplicationService`基类中定义的属性. ABP将这样常用属性预注入,所以不需要手动[注入](Dependency-Injection.md). * 如果你想遵循DDD最佳实践,请参阅下面的*聚合示例*部分. @@ -373,7 +373,7 @@ public static class IdentityUserExtensions * 对于 [Entity Framework Core](Entity-Framework-Core.md),这是两种类型的配置; * 默认它以 `JSON` 字符串形式存储在 `ExtraProperties` 字段中. 序列化到 `JSON` 和反序列化到 `JSON` 由ABP使用EF Core的[值转换](https://docs.microsoft.com/zh-cn/ef/core/modeling/value-conversions)系统自动完成. - * 如果需要,你可以使用 `ObjectExtensionManager` 为所需的额外属性定义一个单独的数据库字段. 那些使用 `ObjectExtensionManager` 配置的属性继续使用单个 `JSON` 字段. 当你使用预构建的[应用模块](Modules/Index.md)并且想要[扩展模块的实体](Customizing-Application-Modules-Extending-Entities.md). 参阅[EF Core迁移文档](Entity-Framework-Core.md)了解如何使用 `ObjectExtensionManager`. + * 如果需要,你可以使用 `ObjectExtensionManager` 为所需的额外属性定义一个单独的数据库字段. 未使用 `ObjectExtensionManager` 配置的属性继续使用单个 `JSON` 字段. 当你使用预构建的[应用模块](Modules/Index.md)并且想要[扩展模块的实体](Customizing-Application-Modules-Extending-Entities.md). 参阅[EF Core迁移文档](Entity-Framework-Core.md)了解如何使用 `ObjectExtensionManager`. * 对于 [MongoDB](MongoDB.md), 它以 **常规字段** 存储, 因为 MongoDB 天生支持这种 [额外](https://mongodb.github.io/mongo-csharp-driver/1.11/serialization/#supporting-extra-elements) 系统. ### 讨论额外的属性 diff --git a/docs/zh-Hans/Getting-Started-Create-Solution.md b/docs/zh-Hans/Getting-Started-Create-Solution.md index 1ef4879a08..846f7909d1 100644 --- a/docs/zh-Hans/Getting-Started-Create-Solution.md +++ b/docs/zh-Hans/Getting-Started-Create-Solution.md @@ -20,7 +20,7 @@ 使用 ABP CLI 的 `new` 命令创建一个新项目: ````shell -abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u blazor{{else if UI == "BlazorServer"}} -u blazor-server{{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes"}}{{if UI == "MVC" || UI == "BlazorServer"}} --tiered{{else}} --separate-identity-server{{end}}{{end}} +abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u blazor{{else if UI == "BlazorServer"}} -u blazor-server{{end}}{{if DB == "Mongo"}} -d mongodb{{end}}{{if Tiered == "Yes"}}{{if UI == "MVC" || UI == "BlazorServer"}} --tiered{{else}} --separate-auth-server{{end}}{{end}} ```` *你可以使用不同级别的命名空间, 例如: BookStore、Acme.BookStore或 Acme.Retail.BookStore.* @@ -33,7 +33,7 @@ abp new Acme.BookStore{{if UI == "NG"}} -u angular{{else if UI == "Blazor"}} -u {{ else }} -* `--separate-identity-server` 参数用于将Identity Server应用程序与API主机应用程序分隔开. 如果未指定, 则服务器上将只有一个端点. +* `--separate-auth-server` 参数用于将Identity Server应用程序与API主机应用程序分隔开. 如果未指定, 则服务器上将只有一个端点. {{ end }} diff --git a/docs/zh-Hans/Getting-Started-React-Native.md b/docs/zh-Hans/Getting-Started-React-Native.md index 225a0f3a13..76581930ce 100644 --- a/docs/zh-Hans/Getting-Started-React-Native.md +++ b/docs/zh-Hans/Getting-Started-React-Native.md @@ -18,8 +18,8 @@ ABP平台提供了[React Native](https://reactnative.dev/)模板用于开发移 ![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) -* 打开 `.IdentityServer` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 属性的 `localhost` 替换为你本地的IP地址. -* 打开 `.IdentityServer/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.AuthServer` 文件夹下的 `appsettings.json` 文件. 将 `SelfUrl` 属性的 `localhost` 替换为你本地的IP地址. +* 打开 `.AuthServer/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. * 打开 `.HttpApi.Host` 文件夹下的 `appsettings.json` 文件. 将 `Authority` 属性的 `localhost` 替换为你本地的IP地址. * 打开 `.HttpApi.Host/Properties` 文件夹下的 `launchSettings.json` 文件. 将 `applicationUrl` 属性的 `localhost` 替换为你本地的IP地址. @@ -41,7 +41,7 @@ yarn {{ if Tiered == "Yes" }} -> 确保 `issuer` 与正在运行的 `.IdentityServer` 项目匹配, `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配. +> 确保 `issuer` 与正在运行的 `.AuthServer` 项目匹配, `apiUrl` 与正在运行的 `.HttpApi.Host` 项目匹配. {{else}} diff --git a/docs/zh-Hans/Getting-Started-Running-Solution.md b/docs/zh-Hans/Getting-Started-Running-Solution.md index 91ee846bc2..8ecd85ec58 100644 --- a/docs/zh-Hans/Getting-Started-Running-Solution.md +++ b/docs/zh-Hans/Getting-Started-Running-Solution.md @@ -15,7 +15,7 @@ ### 连接字符串 -检查在 {{if Tiered == "Yes"}}`.IdentityServer` 和`.HttpApi.Host` 项目{{else}}{{if UI=="MVC"}}`.Web` 项目{{else if UI=="BlazorServer"}}`.Blazor` 项目{{else}}`.HttpApi.Host` 项目{{end}}{{end}} 中 `appsettings.json` 文件里的**连接字符串**. +检查在 {{if Tiered == "Yes"}}`.AuthServer` 和`.HttpApi.Host` 项目{{else}}{{if UI=="MVC"}}`.Web` 项目{{else if UI=="BlazorServer"}}`.Blazor` 项目{{else}}`.HttpApi.Host` 项目{{end}}{{end}} 中 `appsettings.json` 文件里的**连接字符串**. {{ if DB == "EF" }} @@ -97,7 +97,7 @@ dotnet run > 分层解决方案使用 **Redis** 作为分布式缓存. 确保它已安装并在本地计算机上运行. 如果你使用的是远程 Redis 服务器, 请修改项目的 ` appsettings.json` 文件中的配置. -1. 确保 `.IdentityServer` 项目是启动项目. 运行此应用程序, 它将在浏览器中打开 **登录** 页面. +1. 确保 `.AuthServer` 项目是启动项目. 运行此应用程序, 它将在浏览器中打开 **登录** 页面. > 在 Visual Studio 中使用 Ctrl+F5(而不是F5) 在不进行调试的情况下运行应用程序. 如果你没有调试目的, 这会更快. @@ -135,7 +135,7 @@ dotnet run > 分层解决方案使用 Redis 作为分布式缓存. 确保它已安装并在本地计算机上运行. 如果你使用的是远程 Redis 服务器, 请修改项目的 `appsettings.json` 文件中的配置. -确保 `.IdentityServer` 项目是启动项目. 运行此应用程序, 它将在浏览器中打开 **登录** 页面. +确保 `.AuthServer` 项目是启动项目. 运行此应用程序, 它将在浏览器中打开 **登录** 页面. > 在 Visual Studio 中使用 Ctrl+F5(而不是F5) 在不进行调试的情况下运行应用程序. 如果你没有调试目的, 这会更快. diff --git a/docs/zh-Hans/Modules/Account.md b/docs/zh-Hans/Modules/Account.md index 2e1c838f50..336e939c37 100644 --- a/docs/zh-Hans/Modules/Account.md +++ b/docs/zh-Hans/Modules/Account.md @@ -12,7 +12,7 @@ #### 添加NuGet包 -添加[Microsoft.AspNetCore.Authentication.Facebook]包到你的项目. 基于你的架构,可能是 `.Web`,`.IdentityServer`(对于分层启动)或 `.Host` 项目. +添加[Microsoft.AspNetCore.Authentication.Facebook]包到你的项目. 基于你的架构,可能是 `.Web`,`.AuthServer`(对于分层启动)或 `.Host` 项目. #### 配置提供程序 diff --git a/docs/zh-Hans/Modules/Index.md b/docs/zh-Hans/Modules/Index.md index 656e5db96f..1df7a04413 100644 --- a/docs/zh-Hans/Modules/Index.md +++ b/docs/zh-Hans/Modules/Index.md @@ -18,6 +18,7 @@ ABP是一个 **模块化的应用程序框架** 由十多个 **NuGet & NPM packa * [**Docs**](Docs.md): 用于创建技术文档页面. ABP的[文档](https://abp.io/documents/) 就使用了此模块. * [**Feature Management**](Feature-Management.md): 用于保存和管理功能. * [**Identity**](Identity.md): 基于Microsoft Identity管理组织单元,角色,用户和他们的权限. +* [**OpenIddict**](OpenIddict.md): 集成了OpenIddict. * [**Identity Server**](IdentityServer.md): 集成了IdentityServer4. * [**Permission Management**](Permission-Management.md): 用于保存权限. * [**Setting Management**](Setting-Management.md): 用于保存设置. diff --git a/docs/zh-Hans/Startup-Templates/Application.md b/docs/zh-Hans/Startup-Templates/Application.md index b51976f75d..91d7308226 100644 --- a/docs/zh-Hans/Startup-Templates/Application.md +++ b/docs/zh-Hans/Startup-Templates/Application.md @@ -239,15 +239,15 @@ ABP有[动态 C# API 客户端](../API/Dynamic-CSharp-API-Clients.md)功能,所 ![bookstore-visual-studio-solution-tiered](../images/bookstore-visual-studio-solution-tiered.png) -与默认结构不同,我们得到了两个新项目: `.IdentityServer` 和 `.HttpApi.Host`. +与默认结构不同,我们得到了两个新项目: `.AuthServer` 和 `.HttpApi.Host`. -#### .IdentityServer 项目 +#### .AuthServer 项目 -用于其他项目的身份验证服务器. `.Web`项目使用OpenId Connect身份验证从IdentityServer获取当前用户的身份和访问令牌. 然后使用访问令牌调用HTTP API服务器. HTTP API服务器使用bearer token从访问令牌获取声明授权当前用户. +用于其他项目的身份验证服务器. `.Web`项目使用OpenId AuthServer. 然后使用访问令牌调用HTTP API服务器. HTTP API服务器使用bearer token从访问令牌获取声明授权当前用户. ![tiered-solution-applications](../images/tiered-solution-applications.png) -ABP使用开源的[IdentityServer4](https://identityserver.io/)框架做应用程序间的身份验证. 有关IdentityServer4和OpenId Connect协议的详细信息请参阅[IdentityServer4文档](http://docs.identityserver.io). +ABP使用开源的[IdentityServer4](https://identityserver.io/) 和 [OpenIddict](https://github.com/openiddict/) 框架做应用程序间的身份验证. 有关IdentityServer4,OpenIddict和OpenId Connect协议的详细信息请参阅[IdentityServer4文档](http://docs.identityserver.io) [OpenIddict文档](https://documentation.openiddict.com/). 它有自己的`appsettings.json`文件(数据库连接字符串等其他配置). @@ -269,7 +269,7 @@ ABP使用开源的[IdentityServer4](https://identityserver.io/)框架做应用 你应该按照以下顺序运行应用: -* 首先运行`.IdentityServer`,因为其他应用程序依赖它做身份验证. +* 首先运行`.AuthServer`,因为其他应用程序依赖它做身份验证. * 然后运行`.HttpApi.Host`,因为`.Web`应用程序需要访问HTTI API. * 最后运行`.Web`并登录到应用程序(用户名: `admin` 密码: `1q2w3E*`). diff --git a/docs/zh-Hans/Startup-Templates/Module.md b/docs/zh-Hans/Startup-Templates/Module.md index 67e0ad3be2..e3f259cc80 100644 --- a/docs/zh-Hans/Startup-Templates/Module.md +++ b/docs/zh-Hans/Startup-Templates/Module.md @@ -139,7 +139,7 @@ abp new Acme.IssueManagement -t module --no-ui 在这个场景中,有三个应用程序; -* `.IdentityServer` 应用程序是其他应用程序使用的身份验证服务器,它有自己的 `appsettings.json` 包含数据库连接字符串和其他配置. +* `.AuthServer` 应用程序是其他应用程序使用的身份验证服务器,它有自己的 `appsettings.json` 包含数据库连接字符串和其他配置. * `.HttpApi.Host` 托管模块的HTTP API. 它有自己的 `appsettings.json` 包含数据库连接字符串和其他配置. * `.Web.Host` 托管模块的UI. 它包含 `appsettings.json` 文件, 但是其中没有数据库连接字符串, 因为它不需要连接到数据库, 它主要调用远程API服务器和身份认证服务器. @@ -147,7 +147,7 @@ abp new Acme.IssueManagement -t module --no-ui ![tiered-solution-applications](../images/tiered-solution-applications.png) -`.Web.Host` 项目使用OpenId Connect身份认证从`.IdentityServer`获取当前用户的身份和访问令牌. 然后使用访问令牌调用 `.HttpApi.Host`. HTTP API 服务器使用bearer token验证访问令牌获取当前用户声明并授权用户. +`.Web.Host` 项目使用OpenId Connect身份认证从`.AuthServer`获取当前用户的身份和访问令牌. 然后使用访问令牌调用 `.HttpApi.Host`. HTTP API 服务器使用bearer token验证访问令牌获取当前用户声明并授权用户. ##### 前置条件 @@ -157,6 +157,6 @@ abp new Acme.IssueManagement -t module --no-ui 你需要按照以下顺序运行应用程序: -- 首先, 运行 `.IdentityServer`,因为其他应用程序依赖它做身份认证. +- 首先, 运行 `.AuthServer`,因为其他应用程序依赖它做身份认证. - 然后运行 `.HttpApi.Host`,因为`.Web.Host`应用程序使用API接口. - 最后运行 `.Web.Host` 使用用户名: `admin` 密码: `1q2w3E*` 登录到应用程序. diff --git a/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md b/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md index dd688f256c..338afe8967 100644 --- a/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md +++ b/docs/zh-Hans/UI/AspNetCore/Bundling-Minification.md @@ -48,7 +48,7 @@ namespace MyCompany.MyProject
```` -`abp-script-bundle`定义了一个带有**唯一名称**的样式包:`MyGlobalBundle`. 使用方法很容易理解. 让我们看看它是如何*工作的*: +`abp-style-bundle`定义了一个带有**唯一名称**的样式包:`MyGlobalBundle`. 使用方法很容易理解. 让我们看看它是如何*工作的*: * 当首次请求时,ABP从提供的文件中 **(延迟)lazy** 创建. 后续将从 **缓存** 中返回内容. 这意味着如果你有条件地将文件添加到包中,它只执行一次, 并且条件的任何更改都不会影响下一个请求的包. * 在`development`环境中ABP会将包文件**单独**添加到页面中, 其他环境(`staging`,`production`...)会自动捆绑和压缩. diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 94a2e79415..f92a9d336b 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -405,6 +405,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BackgroundWorkers. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Gdpr.Abstractions", "src\Volo.Abp.Gdpr.Abstractions\Volo.Abp.Gdpr.Abstractions.csproj", "{3683340D-92F5-4B14-B77B-34A163333309}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.RemoteServices", "src\Volo.Abp.RemoteServices\Volo.Abp.RemoteServices.csproj", "{EDFFDA74-090D-439C-A58D-06CCF86D4423}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1207,6 +1209,10 @@ Global {3683340D-92F5-4B14-B77B-34A163333309}.Debug|Any CPU.Build.0 = Debug|Any CPU {3683340D-92F5-4B14-B77B-34A163333309}.Release|Any CPU.ActiveCfg = Release|Any CPU {3683340D-92F5-4B14-B77B-34A163333309}.Release|Any CPU.Build.0 = Release|Any CPU + {EDFFDA74-090D-439C-A58D-06CCF86D4423}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDFFDA74-090D-439C-A58D-06CCF86D4423}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDFFDA74-090D-439C-A58D-06CCF86D4423}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDFFDA74-090D-439C-A58D-06CCF86D4423}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1411,6 +1417,7 @@ Global {C4F54FB5-C828-414D-BA03-E8E7A10C784D} = {447C8A77-E5F0-4538-8687-7383196D04EA} {E5FCE710-C5A3-4F94-B9C9-BD1E99252BFB} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {3683340D-92F5-4B14-B77B-34A163333309} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {EDFFDA74-090D-439C-A58D-06CCF86D4423} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj index 4f77858462..439bdc2c65 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs index 894ba470a8..2a2d0a712d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Microsoft/Extensions/DependencyInjection/AbpOpenIdConnectExtensions.cs @@ -3,8 +3,10 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.OAuth.Claims; using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Protocols.OpenIdConnect; +using Volo.Abp.AspNetCore.Authentication.OpenIdConnect; using Volo.Abp.AspNetCore.MultiTenancy; namespace Microsoft.Extensions.DependencyInjection; @@ -47,6 +49,20 @@ public static class AbpOpenIdConnectExtensions } return Task.CompletedTask; }; + + options.Events.OnTokenValidated = async (context) => + { + var client = context.HttpContext.RequestServices.GetRequiredService(); + try + { + await client.CreateOrUpdateAsync(context); + } + catch (Exception ex) + { + var logger = context.HttpContext.RequestServices.GetService>(); + logger?.LogException(ex); + } + }; }); } diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj index 6e6b2aa109..e7810f6e37 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj @@ -9,12 +9,13 @@ - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/AbpAspNetCoreAuthenticationOpenIdConnectModule.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/AbpAspNetCoreAuthenticationOpenIdConnectModule.cs index 8670fbea17..6b66a105d3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/AbpAspNetCoreAuthenticationOpenIdConnectModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/AbpAspNetCoreAuthenticationOpenIdConnectModule.cs @@ -1,12 +1,15 @@ using Volo.Abp.AspNetCore.Authentication.OAuth; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.RemoteServices; namespace Volo.Abp.AspNetCore.Authentication.OpenIdConnect; [DependsOn( typeof(AbpMultiTenancyModule), - typeof(AbpAspNetCoreAuthenticationOAuthModule))] + typeof(AbpAspNetCoreAuthenticationOAuthModule), + typeof(AbpRemoteServicesModule) + )] public class AbpAspNetCoreAuthenticationOpenIdConnectModule : AbpModule { diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/IOpenIdLocalUserCreationClient.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/IOpenIdLocalUserCreationClient.cs new file mode 100644 index 0000000000..5b6b8ee61d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/IOpenIdLocalUserCreationClient.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication.OpenIdConnect; + +namespace Volo.Abp.AspNetCore.Authentication.OpenIdConnect; + +public interface IOpenIdLocalUserCreationClient +{ + Task CreateOrUpdateAsync(TokenValidatedContext tokenValidatedContext); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClient.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClient.cs new file mode 100644 index 0000000000..d0d71ca6d4 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClient.cs @@ -0,0 +1,59 @@ +using System; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.Extensions.Options; +using Microsoft.Net.Http.Headers; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Http.Client; + +namespace Volo.Abp.AspNetCore.Authentication.OpenIdConnect; + +public class OpenIdLocalUserCreationClient : IOpenIdLocalUserCreationClient, ITransientDependency +{ + protected OpenIdLocalUserCreationClientOptions Options { get; } + protected IHttpClientFactory HttpClientFactory { get; } + protected IRemoteServiceConfigurationProvider RemoteServiceConfigurationProvider { get; } + + public OpenIdLocalUserCreationClient( + IOptions options, + IHttpClientFactory httpClientFactory, + IRemoteServiceConfigurationProvider remoteServiceConfigurationProvider) + { + HttpClientFactory = httpClientFactory; + RemoteServiceConfigurationProvider = remoteServiceConfigurationProvider; + Options = options.Value; + } + + public virtual async Task CreateOrUpdateAsync(TokenValidatedContext context) + { + if (!Options.IsEnabled) + { + return; + } + + using (var httpClient = HttpClientFactory.CreateClient(Options.HttpClientName)) + { + if (!Options.RemoteServiceName.IsNullOrWhiteSpace()) + { + var configuration = await RemoteServiceConfigurationProvider.GetConfigurationOrDefaultAsync(Options.RemoteServiceName); + if (configuration.BaseUrl != null) + { + httpClient.BaseAddress = new Uri(configuration.BaseUrl); + } + } + + httpClient.DefaultRequestHeaders.Add( + HeaderNames.Authorization, + "Bearer " + context.SecurityToken.RawData + ); + + var response = await httpClient.PostAsync( + Options.Url, + new StringContent(string.Empty) + ); + + response.EnsureSuccessStatusCode(); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClientOptions.cs b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClientOptions.cs new file mode 100644 index 0000000000..02bbae675a --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo/Abp/AspNetCore/Authentication/OpenIdConnect/OpenIdLocalUserCreationClientOptions.cs @@ -0,0 +1,32 @@ +using System.Net.Http; + +namespace Volo.Abp.AspNetCore.Authentication.OpenIdConnect; + +public class OpenIdLocalUserCreationClientOptions +{ + /// + /// Can be used to enable/disable request to the server to create/update local users. + /// Default value: false + /// + public bool IsEnabled { get; set; } + + /// + /// Default value: "AbpIdentity". + /// Fallbacks to the "Default" remote service configuration, if "AbpIdentity" configuration is not available. + /// Set to null if you don't want to use a remote service configuration. In this case, you can set an + /// absolute URL in the option. + /// + public string RemoteServiceName { get; set; } = "AbpIdentity"; + + /// + /// URL to make a POST request after the current user successfully authenticated through an OpenIdConnect provider. + /// + public string Url { get; set; } = "/api/identity-profile/create-or-update"; + + /// + /// Can be set to a value if you want to use a named instance + /// while creating it from . + /// Default value: "" (). + /// + public string HttpClientName { get; } = Microsoft.Extensions.Options.Options.DefaultName; +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor index c9c704b471..e6959f1d3a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor @@ -7,7 +7,7 @@ @if(Options.Value.RenderPageTitle) { -
@PageLayout.Title
+

@PageLayout.Title

} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.csproj b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.csproj index c2bff84d6d..f8f4d5702c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.Web/Volo.Abp.AspNetCore.Components.Web.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index deb83d92ab..8825a88626 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -21,8 +21,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj b/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj index 628661a184..acd1ff5408 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo.Abp.AspNetCore.Components.csproj @@ -21,7 +21,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationGlobalFeatureConfigurationDto.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationGlobalFeatureConfigurationDto.cs index e911cd911d..9854e85315 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationGlobalFeatureConfigurationDto.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/ApplicationGlobalFeatureConfigurationDto.cs @@ -8,11 +8,8 @@ public class ApplicationGlobalFeatureConfigurationDto { public HashSet EnabledFeatures { get; set; } - public Dictionary> ModuleEnabledFeatures { get; set; } - public ApplicationGlobalFeatureConfigurationDto() { EnabledFeatures = new HashSet(); - ModuleEnabledFeatures = new Dictionary>(); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/fa.json b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/fa.json new file mode 100644 index 0000000000..83e7d2423d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo/Abp/AspNetCore/Mvc/UI/MultiTenancy/Localization/fa.json @@ -0,0 +1,13 @@ +{ + "culture": "fa", + "texts": { + "GivenTenantIsNotExist": "تننت مورد نظر وجود ندارد: {0}", + "GivenTenantIsNotAvailable": "تننت مورد نظر در دسترس نمیباشد: {0}", + "Tenant": "تننت", + "Switch": "جابجایی", + "Name": "نام", + "SwitchTenantHint": "برای جابجایی به سمت میزبان، قسمت نام را خالی بگذارید.", + "SwitchTenant": "جابجایی تننت", + "NotSelected": "انتخاب نشده" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj index 27d1a47db9..0fea391a07 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj @@ -26,7 +26,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index 96dd3f826a..887843eb03 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index 56cb7b4868..9113c4529e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -28,8 +28,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs index bfa2e6a285..b80a288e81 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs @@ -295,15 +295,9 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp result.EnabledFeatures.AddIfNotContains(enabledFeatureName); } - foreach (var module in GlobalFeatureManager.Instance.Modules) - { - result.ModuleEnabledFeatures.AddIfNotContains(new KeyValuePair>(module.Key, module.Value.GetFeatures().Select(x => x.FeatureName).ToList())); - } - return Task.FromResult(result); } - protected virtual async Task GetTimingConfigAsync() { var windowsTimeZoneId = await _settingProvider.GetOrNullAsync(TimingSettingNames.TimeZone); diff --git a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj index eaf531f8b9..7e9e4f01a9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj @@ -23,7 +23,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj index 58c13a6ec5..b3a7a89ad8 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj @@ -25,7 +25,7 @@ - + diff --git a/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj b/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj index 0eebcdf77a..f0dd3e965e 100644 --- a/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj +++ b/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/fa.json b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/fa.json new file mode 100644 index 0000000000..5e8bf4d484 --- /dev/null +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Localization/fa.json @@ -0,0 +1,10 @@ +{ + "culture": "fa", + "texts": { + "Volo.Authorization:010001": "اعتبار سنجی انجام نشد! دسترسی داده نشده است.", + "Volo.Authorization:010002": "اعتبار سنجی انجام نشد! دسترسی داده نشده است: {PolicyName}", + "Volo.Authorization:010003": "اعتبار سنجی انجام نشد! دسترسی به منابع مورد نظر داده نشده است: {ResourceName}", + "Volo.Authorization:010004": "اعتبار سنجی انجام نشد! به مورد اعلامی دسترسی داده نشده است: {ResourceName}", + "Volo.Authorization:010005": "اعتبار سنجی انجام نشد! به موارد اعلامی دسترسی داده نشده است: {ResourceName}" + } +} diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index 7a103badfc..7ce82c1c9e 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj index 51cab2b9bf..3c4c82a512 100644 --- a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj +++ b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj index e75ca9f362..c594d29395 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj index 94bc8be064..c14651658d 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj index c2f1f3e44a..e582c986f4 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj index 8f81808a76..ac4025de2a 100644 --- a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj +++ b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj index a78b131962..90d58c71f8 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj index d1faed8f5c..2e36b1cef0 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj index 4022d38fee..62aebd1056 100644 --- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj +++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj index 036144e8c6..5b52e2b9e4 100644 --- a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj +++ b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj index 460f1c131e..5c83874fa0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj +++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj @@ -16,11 +16,11 @@ - + - + diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 2974e01fd4..ebad70ce76 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -112,7 +112,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien sb.AppendLine("--tiered (if supported by the template)"); sb.AppendLine("--no-ui (if supported by the template)"); sb.AppendLine("--no-random-port (Use template's default ports)"); - sb.AppendLine("--separate-identity-server (if supported by the template)"); + sb.AppendLine("--separate-auth-server (if supported by the template)"); sb.AppendLine("--local-framework-ref --abp-path (keeps local references to projects instead of replacing with NuGet package references)"); sb.AppendLine(""); sb.AppendLine("Examples:"); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 40d902fb0e..07741779b1 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -31,19 +31,19 @@ public abstract class ProjectCreationCommandBase public ILogger Logger { get; set; } public ProjectCreationCommandBase( - ConnectionStringProvider connectionStringProvider, - SolutionPackageVersionFinder solutionPackageVersionFinder, - ICmdHelper cmdHelper, + ConnectionStringProvider connectionStringProvider, + SolutionPackageVersionFinder solutionPackageVersionFinder, + ICmdHelper cmdHelper, IInstallLibsService installLibsService, AngularPwaSupportAdder angularPwaSupportAdder, - InitialMigrationCreator ınitialMigrationCreator) + InitialMigrationCreator initialMigrationCreator) { ConnectionStringProvider = connectionStringProvider; SolutionPackageVersionFinder = solutionPackageVersionFinder; CmdHelper = cmdHelper; InstallLibsService = installLibsService; AngularPwaSupportAdder = angularPwaSupportAdder; - InitialMigrationCreator = ınitialMigrationCreator; + InitialMigrationCreator = initialMigrationCreator; Logger = NullLogger.Instance; } @@ -242,7 +242,7 @@ public abstract class ProjectCreationCommandBase if (AppTemplateBase.IsAppTemplate(template)) { var isCommercial = template == AppProTemplate.TemplateName; - OpenThanksPage(projectArgs.UiFramework, projectArgs.DatabaseProvider, isTiered || commandLineArgs.Options.ContainsKey("separate-identity-server"), isCommercial); + OpenThanksPage(projectArgs.UiFramework, projectArgs.DatabaseProvider, isTiered || commandLineArgs.Options.ContainsKey("separate-identity-server") || commandLineArgs.Options.ContainsKey("separate-auth-server"), isCommercial); } else if (MicroserviceTemplateBase.IsMicroserviceTemplate(template)) { @@ -347,7 +347,7 @@ public abstract class ProjectCreationCommandBase { return; } - + var efCoreProjectPath = string.Empty; bool isLayeredTemplate; @@ -372,7 +372,7 @@ public abstract class ProjectCreationCommandBase Logger.LogWarning("Couldn't find the project to create initial migrations!"); return; } - + await InitialMigrationCreator.CreateAsync(Path.GetDirectoryName(efCoreProjectPath), isLayeredTemplate); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs index fdc9b83fcf..6df7418e9d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; @@ -56,22 +57,30 @@ public class UpdateCommand : IConsoleCommand, ITransientDependency private async Task UpdateNugetPackages(CommandLineArgs commandLineArgs, string directory, string version) { - - var solution = commandLineArgs.Options.GetOrNull(Options.SolutionName.Short, Options.SolutionName.Long); - if (solution.IsNullOrWhiteSpace()) + var solutions = new List(); + var givenSolution = commandLineArgs.Options.GetOrNull(Options.SolutionName.Short, Options.SolutionName.Long); + + if (givenSolution.IsNullOrWhiteSpace()) + { + solutions.AddRange(Directory.GetFiles(directory, "*.sln", SearchOption.AllDirectories)); + } + else { - solution = Directory.GetFiles(directory, "*.sln", SearchOption.AllDirectories).FirstOrDefault(); + solutions.Add(givenSolution); } var checkAll = commandLineArgs.Options.ContainsKey(Options.CheckAll.Long); - if (solution != null) + if (solutions.Any()) { - var solutionName = Path.GetFileName(solution).RemovePostFix(".sln"); + foreach (var solution in solutions) + { + var solutionName = Path.GetFileName(solution).RemovePostFix(".sln"); - await _nugetPackagesVersionUpdater.UpdateSolutionAsync(solution, checkAll: checkAll, version: version); + await _nugetPackagesVersionUpdater.UpdateSolutionAsync(solution, checkAll: checkAll, version: version); - Logger.LogInformation($"Volo packages are updated in {solutionName} solution."); + Logger.LogInformation($"Volo packages are updated in {solutionName} solution."); + } return; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs index 8543ffb1ac..a5085f83a9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntryExtensions.cs @@ -6,6 +6,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Files; public static class FileEntryExtensions { + private static int _maximumRecursionCount = 20; + public static FileEntry ReplaceText(this FileEntry file, string oldText, string newText) { file.NormalizeLineEndings(); @@ -20,7 +22,7 @@ public static class FileEntryExtensions public static void RemoveTemplateCodeMarkers(this FileEntry file) { - if (!file.Content.Contains("")) + if (!file.Content.Contains("") ) { return; } @@ -37,9 +39,9 @@ public static class FileEntryExtensions { //TODO: What if we use inline like: some-code //TODO: This logic skips the code in that case. Should handle it - ++i; + continue; } - + if (i < lines.Length) { newLines.Add(lines[i]); @@ -49,9 +51,9 @@ public static class FileEntryExtensions file.SetLines(newLines); } - private static void RemoveMarkedTemplateCode(this FileEntry file, List symbols) + private static void RemoveMarkedTemplateCode(this FileEntry file, List symbols, int recursionCount = 0) { - if (!file.Content.Contains("")) + if (!file.Content.Contains(" _maximumRecursionCount) { return; } @@ -97,9 +99,25 @@ public static class FileEntryExtensions continue; } - while (i < lines.Length && !lines[i].Contains("")) + var innerConditionCount = 0; + + while (i < lines.Length) { - ++i; + i++; + + if (lines[i].Contains("")) + { + if (innerConditionCount < 1) + { + break; + } + + innerConditionCount--; + } } if (lines[i+1].Contains(" steps) { if (context.BuildArgs.ExtraProperties.ContainsKey(NewCommand.Options.Tiered.Long) || - context.BuildArgs.ExtraProperties.ContainsKey("separate-identity-server")) + context.BuildArgs.ExtraProperties.ContainsKey("separate-identity-server") || + context.BuildArgs.ExtraProperties.ContainsKey("separate-auth-server")) { context.Symbols.Add("tiered"); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs index db22a6909c..58e4e62225 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateSwitchEntityFrameworkCoreToMongoDbStep.cs @@ -37,18 +37,18 @@ public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPip "/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json" ); - //MyCompanyName.MyProjectName.IdentityServer + //MyCompanyName.MyProjectName.AuthServer ChangeProjectReference( context, - "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj", + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj", _hasDbMigrations ? "EntityFrameworkCore.DbMigrations" : "EntityFrameworkCore", "MongoDB" ); ChangeNamespaceAndKeyword( context, - "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs", + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameIdentityServerModule.cs", "MyCompanyName.MyProjectName.EntityFrameworkCore", "MyCompanyName.MyProjectName.MongoDB", _hasDbMigrations ? "MyProjectNameEntityFrameworkCoreDbMigrationsModule" : "MyProjectNameEntityFrameworkCoreModule", @@ -57,7 +57,7 @@ public class AppTemplateSwitchEntityFrameworkCoreToMongoDbStep : ProjectBuildPip ChangeConnectionStringToMongoDb( context, - "/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json" + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.json" ); //MyCompanyName.MyProjectName.HttpApi.Host diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs index 712e03f839..5fc263afc3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Module/ModuleTemplateBase.cs @@ -90,7 +90,9 @@ public abstract class ModuleTemplateBase : TemplateInfo "https://localhost:44300", "https://localhost:44301", "https://localhost:44302", - "https://localhost:44303" + "https://localhost:44303", + "https://localhost:44304", + "https://localhost:44305" })); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs index 3082f59807..bb9360b550 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs @@ -5,6 +5,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; @@ -12,6 +14,12 @@ namespace Volo.Abp.Cli.ProjectModification; public class NugetPackageToLocalReferenceConverter : ITransientDependency { + public ILogger Logger { get; set; } + + public NugetPackageToLocalReferenceConverter(){ + Logger = NullLogger.Instance; + } + public async Task Convert(ModuleWithMastersInfo module, string solutionFile, string modulePrefix = "Volo.") { var nugetPackageList = GetNugetPackages(module); @@ -30,6 +38,12 @@ public class NugetPackageToLocalReferenceConverter : ITransientDependency foreach (var projectFile in projectFiles) { + if (!File.Exists(projectFile)) + { + Logger.LogWarning($"{projectFile} could not be found, skipping..."); + return; + } + var content = File.ReadAllText(projectFile); using (var stream = StreamHelper.GenerateStreamFromString(content)) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs index 8c8a6cdbd0..5f1698661e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs @@ -48,7 +48,7 @@ public class AngularServiceProxyGenerator : ServiceProxyGeneratorBase - + - - + + diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index b0dd6cd872..4e79126174 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -15,10 +15,10 @@ - + - - + + @@ -26,10 +26,10 @@ - + - - - + + + diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Check.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Check.cs index b20ef0f247..faab005376 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Check.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Check.cs @@ -162,4 +162,182 @@ public static class Check return value; } + + public static Int16 Positive( + Int16 value, + [InvokerParameterName][NotNull] string parameterName) + { + if(value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if(value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + public static Int32 Positive( + Int32 value, + [InvokerParameterName][NotNull] string parameterName) + { + if (value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if (value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + public static Int64 Positive( + Int64 value, + [InvokerParameterName][NotNull] string parameterName) + { + if (value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if (value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + public static float Positive( + float value, + [InvokerParameterName][NotNull] string parameterName) + { + if (value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if (value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + public static double Positive( + double value, + [InvokerParameterName][NotNull] string parameterName) + { + if (value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if (value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + public static decimal Positive( + decimal value, + [InvokerParameterName][NotNull] string parameterName) + { + if (value == 0) + { + throw new ArgumentException($"{parameterName} is equal to zero"); + } + else if (value < 0) + { + throw new ArgumentException($"{parameterName} is less than zero"); + } + return value; + } + + + + public static Int16 Range( + Int16 value, + [InvokerParameterName][NotNull] string parameterName, + Int16 minimumValue, + Int16 maximumValue = Int16.MaxValue) + { + if(value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + public static Int32 Range( + Int32 value, + [InvokerParameterName][NotNull] string parameterName, + Int32 minimumValue, + Int32 maximumValue = Int32.MaxValue) + { + if (value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + + public static Int64 Range( + Int64 value, + [InvokerParameterName][NotNull] string parameterName, + Int64 minimumValue, + Int64 maximumValue = Int64.MaxValue) + { + if (value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + + + public static float Range( + float value, + [InvokerParameterName][NotNull] string parameterName, + float minimumValue, + float maximumValue = float.MaxValue) + { + if (value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + + public static double Range( + double value, + [InvokerParameterName][NotNull] string parameterName, + double minimumValue, + double maximumValue = double.MaxValue) + { + if (value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + + + public static decimal Range( + decimal value, + [InvokerParameterName][NotNull] string parameterName, + decimal minimumValue, + decimal maximumValue = decimal.MaxValue) + { + if (value < minimumValue || value > maximumValue) + { + throw new ArgumentException($"{parameterName} is out of range min: {minimumValue} - max: {maximumValue}"); + } + + return value; + } + } diff --git a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj index 140379599a..63dfccb23e 100644 --- a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj +++ b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/fa.json b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/fa.json new file mode 100644 index 0000000000..f7d556fae2 --- /dev/null +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Localization/Resources/AbpDdd/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "MaxResultCountExceededExceptionMessage": "{0} نمیتواند بیشتر از {1}! باشد. مقدار {2} را افزایش دهید.{3} در سمت سرور." + } +} diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs index ff6fef3def..4c9dab3487 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Values/ValueObject.cs @@ -44,6 +44,6 @@ public abstract class ValueObject } } - return !thisValues.MoveNext() && !otherValues.MoveNext(); + return !thisMoveNext && !otherMoveNext; } } diff --git a/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj b/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj index 17ad2f02a4..fd9b992133 100644 --- a/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj +++ b/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/fa.json b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/fa.json new file mode 100644 index 0000000000..ac81810933 --- /dev/null +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Localization/fa.json @@ -0,0 +1,25 @@ +{ + "culture": "fa", + "texts": { + "DisplayName:Abp.Mailing.DefaultFromAddress": "از آدرس پیش فرض", + "DisplayName:Abp.Mailing.DefaultFromDisplayName": "از نام نمایشی پیش فرض", + "DisplayName:Abp.Mailing.Smtp.Host": "هاست", + "DisplayName:Abp.Mailing.Smtp.Port": "پورت", + "DisplayName:Abp.Mailing.Smtp.UserName": "نام کاربری", + "DisplayName:Abp.Mailing.Smtp.Password": "رمز عبور", + "DisplayName:Abp.Mailing.Smtp.Domain": "دامنه", + "DisplayName:Abp.Mailing.Smtp.EnableSsl": "فعال سازی SSL", + "DisplayName:Abp.Mailing.Smtp.UseDefaultCredentials": "از اعتبارنامه های پیش فرض استفاده کنید", + "Description:Abp.Mailing.DefaultFromAddress": "از آدرس پیش فرض", + "Description:Abp.Mailing.DefaultFromDisplayName": "از نام نمایشی پیش فرض", + "Description:Abp.Mailing.Smtp.Host": "نام یا آدرس IP میزبان مورد استفاده برای تراکنش های SMTP.", + "Description:Abp.Mailing.Smtp.Port": "پورتی که برای تراکنش های SMTP استفاده می شود.", + "Description:Abp.Mailing.Smtp.UserName": "نام کاربری مرتبط با اعتبارنامه", + "Description:Abp.Mailing.Smtp.Password": "رمز عبور کاربر مرتبط با اعتبارنامه.", + "Description:Abp.Mailing.Smtp.Domain": "نام دامنه یا رایانه ای که اعتبار را تأیید می کند.", + "Description:Abp.Mailing.Smtp.EnableSsl": "اینکه آیا SmtpClient از لایه سوکت های امن (SSL) برای رمزگذاری هنگام ارتباط استفاده می کند.", + "Description:Abp.Mailing.Smtp.UseDefaultCredentials": "اینکه آیا DefaultCredentials همراه با درخواست ها ارسال می شوند.", + "TextTemplate:StandardEmailTemplates.Layout": "الگوی طرح بندی ایمیل پیش فرض", + "TextTemplate:StandardEmailTemplates.Message": "قالب پیام ساده برای ایمیل" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj index 3bb22e24d8..16c619ffee 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj index 4e7af995e9..cdd059825f 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj index f70f40506f..70cce89a19 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj index 37632a5c7c..d4b9814879 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj index d946e0a256..38f902c578 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs index c0c655b596..7f99d03f56 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpRebusEventHandlerStep.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Rebus.Messages; @@ -14,9 +15,12 @@ public class AbpRebusEventHandlerStep : IIncomingStep var message = context.Load(); var handlerInvokers = context.Load().ToList(); - handlerInvokers.RemoveAll(x => x.Handler.GetType() == typeof(RebusDistributedEventHandlerAdapter)); - context.Save(new HandlerInvokers(message, handlerInvokers)); - + if (handlerInvokers.All(x => x.Handler is IRebusDistributedEventHandlerAdapter)) + { + handlerInvokers = new List {handlerInvokers.Last()}; + context.Save(new HandlerInvokers(message, handlerInvokers)); + } + return next(); } } diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/IRebusDistributedEventHandlerAdapter.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/IRebusDistributedEventHandlerAdapter.cs new file mode 100644 index 0000000000..b756cc844d --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/IRebusDistributedEventHandlerAdapter.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.EventBus.Rebus; + +public interface IRebusDistributedEventHandlerAdapter +{ + +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs index 1735a5ce95..7f9343ecdf 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs @@ -3,7 +3,7 @@ using Rebus.Handlers; namespace Volo.Abp.EventBus.Rebus; -public class RebusDistributedEventHandlerAdapter : IHandleMessages +public class RebusDistributedEventHandlerAdapter : IHandleMessages , IRebusDistributedEventHandlerAdapter { protected RebusDistributedEventBus RebusDistributedEventBus { get; } diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj index b1d60e60c7..cc55a077c4 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json new file mode 100644 index 0000000000..93424701ca --- /dev/null +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json @@ -0,0 +1,26 @@ +{ + "culture": "fa", + "texts": { + "InternalServerErrorMessage": "یک خطای داخلی در حین درخواست شما رخ داد!", + "ValidationErrorMessage": "درخواست شما معتبر نیست!", + "ValidationNarrativeErrorMessageTitle": "خطاهای زیر در حین اعتبارسنجی شناسایی شد.", + "DefaultErrorMessage": "خطایی رخ داده است!", + "DefaultErrorMessageDetail": "جزئیات خطا توسط سرور ارسال نشده است.", + "DefaultErrorMessage401": "شما احراز هویت نشده اید!", + "DefaultErrorMessage401Detail": "برای انجام این عملیات باید وارد سیستم شوید.", + "DefaultErrorMessage403": "شما مجاز نیستید!", + "DefaultErrorMessage403Detail": "شما مجاز به انجام این عمل نیستید!", + "DefaultErrorMessage404": "منبع پیدا نشد!", + "DefaultErrorMessage404Detail": "منبع درخواست شده در سرور یافت نشد!", + "EntityNotFoundErrorMessage": "هیچ موجودیتی : {0} با شناسه = {1} وجود ندارد!", + "AbpDbConcurrencyErrorMessage": "داده‌هایی که ارسال کرده‌اید قبلاً توسط کاربر/مشتری دیگر تغییر کرده است. لطفاً تغییراتی را که انجام داده‌اید کنار بگذارید و از ابتدا تلاش کنید.", + "Error": "خطا", + "UnhandledException": "خطای کنترل نشده", + "401Message": "غیرمجاز", + "403Message": "ممنوع", + "404Message": "صفحه یافت نشد", + "500Message": "خطای سرور داخلی", + "403MessageDetail": "شما مجاز به انجام این عملیات نیستید!", + "404MessageDetail": "با عرض پوزش، چیزی در این آدرس وجود ندارد." + } +} diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json new file mode 100644 index 0000000000..771fea72b6 --- /dev/null +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/Localization/fa.json @@ -0,0 +1,8 @@ +{ + "culture": "fa", + "texts": { + "Volo.Feature:010001": "ویژگی فعال نیست: {FeatureName}", + "Volo.Feature:010002": "ویژگی های مورد نیاز فعال نیستند. همه این ویژگی ها باید فعال باشند: {FeatureNames}", + "Volo.Feature:010003": "ویژگی های مورد نیاز فعال نیستند. حداقل یکی از این ویژگی ها باید فعال باشد: {FeatureNames}" + } +} diff --git a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj index 9389183d6f..4722fac1b0 100644 --- a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj +++ b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/fa.json b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/fa.json new file mode 100644 index 0000000000..c2927e9b59 --- /dev/null +++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/Localization/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "Volo.GlobalFeature:010001": "سرویس '{ServiceName}' باید ابتدا امکانات '{GlobalFeatureName}' را فعال نماید." + } +} diff --git a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj index 6b598d0edd..2a3d6fe8ba 100644 --- a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj +++ b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj index a30bf9488f..323d877f05 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index 92d4cc81b7..67aef7dd89 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -23,6 +23,7 @@ + diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs index 6dbdcb221f..8bca3702c5 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpHttpClientModule.cs @@ -6,6 +6,7 @@ using Volo.Abp.Threading; using Volo.Abp.Validation; using Volo.Abp.ExceptionHandling; using Volo.Abp.Http.Client.DynamicProxying; +using Volo.Abp.RemoteServices; namespace Volo.Abp.Http.Client; @@ -15,15 +16,13 @@ namespace Volo.Abp.Http.Client; typeof(AbpThreadingModule), typeof(AbpMultiTenancyModule), typeof(AbpValidationModule), - typeof(AbpExceptionHandlingModule) + typeof(AbpExceptionHandlingModule), + typeof(AbpRemoteServicesModule) )] public class AbpHttpClientModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { - var configuration = context.Services.GetConfiguration(); - Configure(configuration); - context.Services.AddTransient(typeof(DynamicHttpProxyInterceptorClientProxy<>)); } } diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj index 156feea359..762ef89854 100644 --- a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj +++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj index 68651c1c86..dd576e311f 100644 --- a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj +++ b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/fa.json b/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/fa.json new file mode 100644 index 0000000000..3e536b1e1f --- /dev/null +++ b/framework/src/Volo.Abp.Ldap/Volo/Abp/Ldap/Localization/fa.json @@ -0,0 +1,17 @@ +{ + "culture": "fa", + "texts": { + "DisplayName:Abp.Ldap.ServerHost": "میزبان سرور", + "Description:Abp.Ldap.ServerHost": "میزبان سرور", + "DisplayName:Abp.Ldap.ServerPort": "پورت سرور", + "Description:Abp.Ldap.ServerPort": "پورت سرور", + "DisplayName:Abp.Ldap.BaseDc": "کامپوننت پایه دامنه", + "Description:Abp.Ldap.BaseDc": "کامپوننت پایه دامنه", + "DisplayName:Abp.Ldap.Domain": "دامنه", + "Description:Abp.Ldap.Domain": "دامنه", + "DisplayName:Abp.Ldap.UserName": "نام کاربری", + "Description:Abp.Ldap.UserName": "نام کاربری", + "DisplayName:Abp.Ldap.Password": "رمز عبور", + "Description:Abp.Ldap.Password": "رمز عبور" + } +} diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/fa.json b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/fa.json new file mode 100644 index 0000000000..f861d1af47 --- /dev/null +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Resources/AbpLocalization/fa.json @@ -0,0 +1,7 @@ +{ + "culture": "fa", + "texts": { + "DisplayName:Abp.Localization.DefaultLanguage": "زبان پیش فرض", + "Description:Abp.Localization.DefaultLanguage": "زبان پیش فرض برنامه" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj index acea499215..0665aa9cf2 100644 --- a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj +++ b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj index 3b1b302946..e260f450d6 100644 --- a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj +++ b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj index 7adca7867f..4a9c323e58 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj +++ b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 388330e69a..4f7b985faa 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -231,8 +231,8 @@ public class MongoDbRepository { SetModificationAuditProperties(entity); - var isSoftDeleteEntity = typeof(ISoftDelete).IsAssignableFrom(typeof(TEntity)); - if (isSoftDeleteEntity) + var isEntityDeleted = entity is ISoftDelete softDeleteEntity && softDeleteEntity.IsDeleted; + if (isEntityDeleted) { SetDeletionAuditProperties(entity); TriggerEntityDeleteEvents(entity); diff --git a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj index ce9131fb35..efa11dc9aa 100644 --- a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj +++ b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj index 7876bdb0b7..98cc95fecb 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj +++ b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xml b/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xml new file mode 100644 index 0000000000..be0de3a908 --- /dev/null +++ b/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xsd b/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/framework/src/Volo.Abp.RemoteServices/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj b/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj new file mode 100644 index 0000000000..74ad1df500 --- /dev/null +++ b/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj @@ -0,0 +1,21 @@ + + + + + + + netstandard2.0 + Volo.Abp.RemoteServices + Volo.Abp.RemoteServices + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteServiceOptions.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/AbpRemoteServiceOptions.cs similarity index 100% rename from framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteServiceOptions.cs rename to framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/AbpRemoteServiceOptions.cs diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs similarity index 100% rename from framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs rename to framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/IRemoteServiceConfigurationProvider.cs diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfiguration.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfiguration.cs similarity index 100% rename from framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfiguration.cs rename to framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfiguration.cs diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationDictionary.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationDictionary.cs similarity index 100% rename from framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationDictionary.cs rename to framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationDictionary.cs diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs similarity index 100% rename from framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs rename to framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProvider.cs diff --git a/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProviderExtensions.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProviderExtensions.cs new file mode 100644 index 0000000000..1c6aaac21d --- /dev/null +++ b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/Http/Client/RemoteServiceConfigurationProviderExtensions.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using JetBrains.Annotations; + +namespace Volo.Abp.Http.Client; + +public static class RemoteServiceConfigurationProviderExtensions +{ + [ItemNotNull] + public static Task GetConfigurationOrDefaultAsync( + this IRemoteServiceConfigurationProvider provider) + => provider.GetConfigurationOrDefaultAsync(RemoteServiceConfigurationDictionary.DefaultName); + + [ItemNotNull] + public static Task GetConfigurationOrDefaultOrNullAsync( + this IRemoteServiceConfigurationProvider provider) + => provider.GetConfigurationOrDefaultOrNullAsync(RemoteServiceConfigurationDictionary.DefaultName); +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.RemoteServices/Volo/Abp/RemoteServices/AbpRemoteServicesModule.cs b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/RemoteServices/AbpRemoteServicesModule.cs new file mode 100644 index 0000000000..dba4842597 --- /dev/null +++ b/framework/src/Volo.Abp.RemoteServices/Volo/Abp/RemoteServices/AbpRemoteServicesModule.cs @@ -0,0 +1,14 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Modularity; + +namespace Volo.Abp.RemoteServices; + +public class AbpRemoteServicesModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + Configure(configuration); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj b/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj index 039a21d1e2..763e5d1804 100644 --- a/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj +++ b/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj @@ -18,7 +18,7 @@ - + diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj index 79970678d3..8be7bbd01b 100644 --- a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj +++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js b/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js index 0649b3c7fb..249f75ebb0 100644 --- a/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js +++ b/framework/src/Volo.Abp.Swashbuckle/wwwroot/swagger/ui/abp.swagger.js @@ -8,6 +8,8 @@ var abp = abp || {}; var firstRequest = true; abp.appPath = configObject.baseUrl || abp.appPath; + var requestInterceptor = configObject.requestInterceptor; + configObject.requestInterceptor = async function (request) { if(request.url.includes(excludeUrl[1])){ @@ -26,6 +28,10 @@ var abp = abp || {}; if (antiForgeryToken) { request.headers[abp.security.antiForgery.tokenHeaderName] = antiForgeryToken; } + + if(requestInterceptor){ + requestInterceptor(request); + } return request; }; diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj index 93d47bc4e9..f098ecc80d 100644 --- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj +++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj index bd14d4fd21..a6f7c5eb35 100644 --- a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj +++ b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj @@ -13,7 +13,7 @@ - + diff --git a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj index 26f61b230c..25c6bddc59 100644 --- a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj +++ b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj @@ -25,7 +25,7 @@ - + diff --git a/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/fa.json b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/fa.json new file mode 100644 index 0000000000..da141d4876 --- /dev/null +++ b/framework/src/Volo.Abp.Timing/Volo/Abp/Timing/Localization/fa.json @@ -0,0 +1,7 @@ +{ + "culture": "fa", + "texts": { + "DisplayName:Abp.Timing.Timezone": "منطقه زمانی", + "Description:Abp.Timing.Timezone": "منطقه زمانی برنامه" + } +} diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/fa.json b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/fa.json new file mode 100644 index 0000000000..ab89c14e11 --- /dev/null +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/Localization/Resource/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "Menu:Administration": "مدیریت" + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json new file mode 100644 index 0000000000..0ee671206f --- /dev/null +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json @@ -0,0 +1,53 @@ +{ + "culture": "fa", + "texts": { + "Languages": "زبان ها", + "AreYouSure": "آیا اطمینان دارید؟", + "Cancel": "لغو", + "Clear": "پاکسازی", + "Yes": "بله", + "No": "خیر", + "Ok": "اوکی", + "Close": "بستن", + "Save": "ذخیره", + "SavingWithThreeDot": "ذخیره...", + "Actions": "عملیات", + "Delete": "حذف", + "SuccessfullyDeleted": "با موفقیت حذف شد", + "Edit": "ویرایش", + "Refresh": "رفرش", + "Language": "زبان", + "LoadMore": "بارگذاری بیشتر", + "ProcessingWithThreeDot": "در حال پردازش...", + "LoadingWithThreeDot": "درحال بارگذاری...", + "Welcome": "خوش آمدید", + "Login": "ورود", + "Register": "ثبت نام", + "Logout": "خروج", + "Submit": "ارسال", + "Back": "عقب", + "PagerSearch": "جستجو", + "PagerNext": "بعدی", + "PagerPrevious": "قبلی", + "PagerFirst": "نخستین", + "PagerLast": "آخرین", + "PagerInfo": "نمایش از _START_ تا _END_ از مجموع _TOTAL_ مورد", + "PagerInfo{0}{1}{2}": "نمایش از {0} تا {1} از مجموع {2} مورد", + "PagerInfoEmpty": "نمایش از 0 تا 0 از مجموع 0 مورد", + "PagerInfoFiltered": "(فیلتر شده از مجموع _MAX_ مورد)", + "NoDataAvailableInDatatable": "داده ای وجود ندارد", + "Total": "مجموع", + "Selected": "انتخاب شده", + "PagerShowMenuEntries": "نمایش _MENU_ مورد", + "DatatableActionDropdownDefaultText": "عملیات", + "ChangePassword": "تغییر رمز", + "PersonalInfo": "پروفایل من", + "AreYouSureYouWantToCancelEditingWarningMessage": "You have unsaved changes.", + "GoHomePage": "برو به صفحه اصلی", + "GoBack": "برگرد", + "Search": "جستجو", + "ItemWillBeDeletedMessageWithFormat": "{0} حذف خواهد شد!", + "ItemWillBeDeletedMessage": "این مورد حذف خواهد شد!", + "ManageYourAccount": "حساب خود را مدیریت کنید" + } +} diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json new file mode 100644 index 0000000000..69659ee008 --- /dev/null +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/fa.json @@ -0,0 +1,34 @@ +{ + "culture": "fa", + "texts": { + "'{0}' and '{1}' do not match.": "'{0}' و '{1}' مطابقت ندارند", + "The {0} field is not a valid credit card number.": "مقدار {0} یک شماره کارت اعتباری استاندارد نیست", + "{0} is not valid.": "{0} معتبر نیست.", + "The {0} field is not a valid e-mail address.": "فیلد {0} دارای آدرس ایمیل معتبر نیست.", + "The {0} field only accepts files with the following extensions: {1}": "فیلد {0} تنها فایل هایی پسوندهای زیر را می پذیرد: {1}", + "The field {0} must be a string or array type with a maximum length of '{1}'.": "فیلد {0} یک باید از نوع رشته یا آرایه با حداکثر طول '{1}' باشد.", + "The field {0} must be a string or array type with a minimum length of '{1}'.": "فیلد {0} یک باید از نوع رشته یا آرایه با حداقل طول '{1}' باشد.", + "The {0} field is not a valid phone number.": "فیلد {0} یک شماره تلفن معتبر نیست.", + "The field {0} must be between {1} and {2}.": "فیلد {0} باید بین {1} و {2} باشد.", + "The field {0} must match the regular expression '{1}'.": "فیلد {0} با قالب درخواستی مطابقت ندارد.", + "The {0} field is required.": "فیلد {0} الزامی است.", + "The field {0} must be a string with a maximum length of {1}.": "فیلد {0} باید یک رشته با حداکثر طول {1} باشد.", + "The field {0} must be a string with a minimum length of {2} and a maximum length of {1}.": "فیلد {0} باید یک رشته با حداقل طول {2} و حداکثر طول {1} باشد.", + "The {0} field is not a valid fully-qualified http, https, or ftp URL.": "فیلد {0} یک نشانی اینترنتی http، https، یا ftp کاملا و معتبر نیست.", + "The field {0} is invalid.": "فیلد {0} نامعتبر است.", + "ThisFieldIsNotAValidCreditCardNumber.": "این فیلد یک شماره کارت اعتباری معتبر نیست.", + "ThisFieldIsNotValid.": "این فیلد معتبر نیست", + "ThisFieldIsNotAValidEmailAddress.": "این فیلد یک آدرس ایمیل معتبر نیست.", + "ThisFieldOnlyAcceptsFilesWithTheFollowingExtensions:{0}": "این فیلد فقط فایل هایی با پسوندهای زیر را می پذیرد: {0}", + "ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}": "این فیلد باید از نوع رشته یا آرایه با حداکثر طول '{0}' باشد.", + "ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}": "این فیلد باید از نوع رشته یا آرایه با حداقل طول '{0}' باشد.", + "ThisFieldIsNotAValidPhoneNumber.": "این فیلد یک شماره تلفن معتبر نیست.", + "ThisFieldMustBeBetween{0}And{1}": "این فیلد باید بین {0} و {1} باشد.", + "ThisFieldMustMatchTheRegularExpression{0}": "این فیلد باید با عبارت منظم '{0}' مطابقت داشته باشد.", + "ThisFieldIsRequired.": "این فیلد الزامی است.", + "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "این فیلد باید یک رشته با طول حداکثر {0} باشد.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "این فیلد باید یک رشته با حداقل طول {1} و حداکثر طول {0} باشد.", + "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "فیلد {0} یک نشانی اینترنتی http، https، یا ftp کاملا و معتبر نیست.", + "ThisFieldIsInvalid.": "این فیلد نامعتبر است." + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 64425620dc..adba125cd3 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj index e54432fa00..6762cf2e53 100644 --- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj +++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj @@ -18,7 +18,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index 4e1b5e1334..53a9bd3747 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -20,7 +20,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/fa.json b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/fa.json new file mode 100644 index 0000000000..54576c81fb --- /dev/null +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/Resource/fa.json @@ -0,0 +1,10 @@ +{ + "culture": "fa", + "texts": { + "DisplayName:PersonModel:BirthDate1": "تاریخ تولد1", + "DisplayName:BirthDate2": "تاریخ تولد2", + "PersonModel:BirthDate3": "تاریخ تولد3", + "BirthDate": "تاریخ تولد", + "Value1": "مقدار یک" + } +} diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj index 700531119b..18f7107cfd 100644 --- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj index e72638578d..b31678d56b 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Check_Tests.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Check_Tests.cs new file mode 100644 index 0000000000..48a579c820 --- /dev/null +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/Check_Tests.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; +using Shouldly; +using Xunit; + +namespace Volo.Abp; + +public class Check_Tests +{ + [Fact] + public void NotNull_Test() + { + Check.NotNull("test", nameof(NotNull_Test)).ShouldBe("test"); + Check.NotNull(string.Empty, nameof(NotNull_Test)).ShouldBe(string.Empty); + Check.NotNull("test", nameof(NotNull_Test), maxLength: 4, minLength: 0).ShouldBe("test"); + + Assert.Throws(() => Check.NotNull(null, nameof(NotNull_Test))); + Assert.Throws(() => Check.NotNull(null, nameof(NotNull_Test))); + Assert.Throws(() => Check.NotNull("test", nameof(NotNull_Test), maxLength: 3)); + Assert.Throws(() => Check.NotNull("test", nameof(NotNull_Test), minLength: 5)); + } + + [Fact] + public void NotNullOrWhiteSpace_Test() + { + Check.NotNullOrWhiteSpace("test", nameof(NotNullOrWhiteSpace_Test)).ShouldBe("test"); + Check.NotNullOrWhiteSpace("test", nameof(NotNullOrWhiteSpace_Test), maxLength: 4, minLength: 0).ShouldBe("test"); + + Assert.Throws(() => Check.NotNullOrWhiteSpace(null, nameof(NotNullOrWhiteSpace_Test))); + Assert.Throws(() => Check.NotNullOrWhiteSpace(string.Empty, nameof(NotNullOrWhiteSpace_Test))); + Assert.Throws(() => Check.NotNullOrWhiteSpace("test", nameof(NotNullOrWhiteSpace_Test), maxLength: 3)); + Assert.Throws(() => Check.NotNullOrWhiteSpace("test", nameof(NotNullOrWhiteSpace_Test), minLength: 5)); + } + + [Fact] + public void NotNullOrEmpty_Test() + { + Check.NotNullOrEmpty("test", nameof(NotNullOrEmpty_Test)).ShouldBe("test"); + Check.NotNullOrEmpty("test", nameof(NotNullOrEmpty_Test), maxLength: 4, minLength: 0).ShouldBe("test"); + Check.NotNullOrEmpty(new List{"test"}, nameof(NotNullOrEmpty_Test)); + + Assert.Throws(() => Check.NotNullOrEmpty(null, nameof(NotNullOrEmpty_Test))); + Assert.Throws(() => Check.NotNullOrEmpty(string.Empty, nameof(NotNullOrEmpty_Test))); + Assert.Throws(() => Check.NotNullOrEmpty("test", nameof(NotNullOrEmpty_Test), maxLength: 3)); + Assert.Throws(() => Check.NotNullOrEmpty("test", nameof(NotNullOrEmpty_Test), minLength: 5)); + Assert.Throws(() => Check.NotNullOrEmpty(new List(), nameof(NotNullOrEmpty_Test))); + } + + [Fact] + public void AssignableTo_Test() + { + Check.AssignableTo(typeof(string), nameof(AssignableTo_Test)).ShouldBe(typeof(string)); + Check.AssignableTo(typeof(Child), nameof(AssignableTo_Test)).ShouldBe(typeof(Child)); + Check.AssignableTo(typeof(Child2), nameof(AssignableTo_Test)).ShouldBe(typeof(Child2)); + Check.AssignableTo(typeof(Child2), nameof(AssignableTo_Test)).ShouldBe(typeof(Child2)); + + Assert.Throws(() => Check.AssignableTo(typeof(Parent), nameof(AssignableTo_Test))); + Assert.Throws(() => Check.AssignableTo(typeof(Child), nameof(AssignableTo_Test))); + Assert.Throws(() => Check.AssignableTo(typeof(Parent), nameof(AssignableTo_Test))); + } + + [Fact] + public void Length_Test() + { + Check.Length("test", nameof(Length_Test), maxLength: 4).ShouldBe("test"); + Check.Length("test", nameof(Length_Test), maxLength: 5).ShouldBe("test"); + Check.Length("test", nameof(Length_Test), maxLength:4, minLength: 0).ShouldBe("test"); + Check.Length("test", nameof(Length_Test), maxLength:4, minLength: 4).ShouldBe("test"); + + Assert.Throws(() => Check.Length("test", nameof(Length_Test), maxLength: 0)); + Assert.Throws(() => Check.Length("test", nameof(Length_Test), maxLength: 3)); + Assert.Throws(() => Check.Length("test", nameof(Length_Test), maxLength: 4, minLength: 5)); + } + + [Fact] + public void Positive_Test() + { + Check.Positive(1.To(), nameof(Positive_Test)).ShouldBe(1.To()); + Check.Positive(1.To(), nameof(Positive_Test)).ShouldBe(1.To()); + Check.Positive(1.To(), nameof(Positive_Test)).ShouldBe(1.To()); + Check.Positive(Decimal.One, nameof(Positive_Test)).ShouldBe(Decimal.One); + Check.Positive(1.0f, nameof(Positive_Test)).ShouldBe(1.0f); + Check.Positive(1.0, nameof(Positive_Test)).ShouldBe(1.0); + + Assert.Throws(() => Check.Positive(0.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(0.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(0.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(Decimal.Zero, nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(0.0f, nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(0.0, nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-1.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-1.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-1.To(), nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-Decimal.One, nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-1.0f, nameof(Positive_Test))); + Assert.Throws(() => Check.Positive(-1.0, nameof(Positive_Test))); + } + + [Fact] + public void Range_Test() + { + Check.Range(1.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To()).ShouldBe(1.To()); + Check.Range(1.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To()).ShouldBe(1.To()); + Check.Range(1.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To()).ShouldBe(1.To()); + Check.Range(Decimal.One, nameof(Range_Test), minimumValue: Decimal.One, maximumValue: 10.To()).ShouldBe(Decimal.One); + Check.Range(1.0f, nameof(Range_Test), minimumValue: 1.0f, maximumValue: 10.0f).ShouldBe(1.0f); + Check.Range(1.0, nameof(Range_Test), minimumValue: 1.0, maximumValue: 10.0).ShouldBe(1.0); + + Assert.Throws(() => Check.Range(0.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(0.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(0.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(Decimal.Zero, nameof(Range_Test), minimumValue: Decimal.One, maximumValue: 10.To())); + Assert.Throws(() => Check.Range(0.0f, nameof(Range_Test), minimumValue: 1.0f, maximumValue: 10.0f)); + Assert.Throws(() => Check.Range(0.0, nameof(Range_Test), minimumValue: 1.0, maximumValue: 10.0)); + Assert.Throws(() => Check.Range(11.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(11.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(11.To(), nameof(Range_Test), minimumValue: 1.To(), maximumValue: 10.To())); + Assert.Throws(() => Check.Range(11.To(), nameof(Range_Test), minimumValue: Decimal.One, maximumValue: 10.To())); + Assert.Throws(() => Check.Range(11.0f, nameof(Range_Test), minimumValue: 1.0f, maximumValue: 10.0f)); + Assert.Throws(() => Check.Range(11.0, nameof(Range_Test), minimumValue: 1.0, maximumValue: 10.0)); + } + + class Parent + { + + } + + class Child: Parent + { + + } + + class Child2: Child + { + + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs new file mode 100644 index 0000000000..68a12326c4 --- /dev/null +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/EmailAddress.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Domain.Values; + +public class EmailAddress : ValueObject +{ + public string Email { get; } + + private EmailAddress() + { + } + + public EmailAddress(string email) + { + Email = email; + } + + protected override IEnumerable GetAtomicValues() + { + if (Email != null) + { + yield return Email; + } + } +} diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs index 144d4350d3..11b2581437 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo/Abp/Domain/Values/ValueObject_Tests.cs @@ -31,5 +31,10 @@ public class ValueObject_Tests address2 = new Address(cityId, "Baris Manco", 42, "home"); address1.ValueEquals(address2).ShouldBeFalse(); + + var emailAddress1 = new EmailAddress("test@abp.io"); + var emailAddress2 = new EmailAddress(null); + + emailAddress1.ValueEquals(emailAddress2).ShouldBeFalse(); } } diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/fa.json b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/fa.json new file mode 100644 index 0000000000..33c0298f1a --- /dev/null +++ b/framework/test/Volo.Abp.Emailing.Tests/Volo/Abp/Emailing/Localization/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "hello": "سلام" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/fa.json b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/fa.json new file mode 100644 index 0000000000..c01f3c1b73 --- /dev/null +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo/Abp/Http/Localization/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "Volo.Abp.Http.DynamicProxying:10001": "خطای بیزنسی به همراه داده: {0}" + } +} diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/fa.json new file mode 100644 index 0000000000..c1c7e50b87 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/CountryNames/fa.json @@ -0,0 +1,7 @@ +{ + "culture": "fa", + "texts": { + "USA": "ایالات متحده آمریکا", + "Brazil": "برزیل" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json new file mode 100644 index 0000000000..e469dd85d5 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Base/Validation/fa.json @@ -0,0 +1,7 @@ +{ + "culture": "fa", + "texts": { + "ThisFieldIsRequired": "این فیلد الزامی است", + "MaxLenghtErrorMessage": "این فیلد میتواند نهایتا '{0}' کاراکتر باشد" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json new file mode 100644 index 0000000000..4761d95a34 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/Source/fa.json @@ -0,0 +1,11 @@ +{ + "culture": "fa", + "texts": { + "Hello {0}.": "سلام {0}.", + "Car": "اتومبیل", + "CarPlural": "اتومبیل ها", + "MaxLenghtErrorMessage": "طول این فیلد میتواند نهایتا '{0}' کاراکتر باشد", + "Universe": "کائنات", + "FortyTwo": "چهل و دو" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/fa.json b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/fa.json new file mode 100644 index 0000000000..1ffcb34105 --- /dev/null +++ b/framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/TestResources/SourceExt/fa.json @@ -0,0 +1,6 @@ +{ + "culture": "fa", + "texts": { + "SeeYou": "به امید دیدار" + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj b/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj index a42ced54a7..df7e4cd390 100644 --- a/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj +++ b/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/fa.json b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/fa.json new file mode 100644 index 0000000000..2b0cfde0d6 --- /dev/null +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/Localization/fa.json @@ -0,0 +1,7 @@ +{ + "culture": "fa", + "texts": { + "HelloText": "سلام {0}", + "HowAreYou": "حال شما چطور است؟" + } +} diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index 1ba3e96e1e..4cb884a7ca 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -16,7 +16,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj index d6b87b957d..4b5029d234 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index 32b27998cc..35f0f2a352 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -25,7 +25,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs index f794b19672..3a0aff243b 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs +++ b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs @@ -53,6 +53,8 @@ public partial class AccountManage NewPassword = ChangePasswordModel.NewPassword }); + ChangePasswordModel.Clear(); + await UiMessageService.Success(L["PasswordChanged"]); } @@ -75,6 +77,13 @@ public class ChangePasswordModel public string NewPasswordConfirm { get; set; } public bool HideOldPasswordInput { get; set; } + + public void Clear() + { + CurrentPassword = string.Empty; + NewPassword = string.Empty; + NewPasswordConfirm = string.Empty; + } } public class PersonalInfoModel @@ -92,4 +101,6 @@ public class PersonalInfoModel public bool PhoneNumberConfirmed { get; set; } public bool EmailConfirmed { get; set; } + + public string ConcurrencyStamp { get; set; } } diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index 6a95357f23..c664c3fb8b 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -38,7 +38,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj index 1d801d5f6e..637947b62f 100644 --- a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj @@ -28,7 +28,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js index 92f3d5a382..4410fd9e46 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js @@ -26,6 +26,7 @@ volo.abp.account.profile.changePassword(input).then(function (result) { abp.message.success(l('PasswordChanged')); abp.event.trigger('passwordChanged'); + $('#ChangePasswordForm').trigger("reset"); }); }); }); diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs index 746992822c..d669ec41a1 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Manage.cshtml.cs @@ -34,11 +34,14 @@ public class ManageModel : AccountPageModel await contributor.ConfigureAsync(ProfileManagementPageCreationContext); } - if (!Url.IsLocalUrl(ReturnUrl) && - !ReturnUrl.StartsWith(UriHelper.BuildAbsolute(Request.Scheme, Request.Host, Request.PathBase).RemovePostFix("/")) && - !AppUrlProvider.IsRedirectAllowedUrl(ReturnUrl)) + if (ReturnUrl != null) { - ReturnUrl = null; + if (!Url.IsLocalUrl(ReturnUrl) && + !ReturnUrl.StartsWith(UriHelper.BuildAbsolute(Request.Scheme, Request.Host, Request.PathBase).RemovePostFix("/")) && + !AppUrlProvider.IsRedirectAllowedUrl(ReturnUrl)) + { + ReturnUrl = null; + } } return Page(); diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj index c59ec20c40..322291da3e 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj @@ -44,7 +44,7 @@ - + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj index 939dd86b43..c01aaf95cd 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj index 10e1033d2e..2e52fe8dd6 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj index 46a09dbbe0..f62357c566 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj @@ -6,7 +6,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj index e464c72af2..8f98fa4c39 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj index fe3a18f578..ee105e4721 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj @@ -21,12 +21,12 @@ - - + + - + diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index 25ccdc747e..ff2f7ecff9 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -9,7 +9,7 @@ - + diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 9948a950e9..626ac29ace 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^5.3.0-rc.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^5.3.0-rc.2", "highlight.js": "^9.13.1" }, "devDependencies": {} -} \ No newline at end of file +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 1fc849849a..c90be3145f 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.shared@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,144 +34,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index 490b1f651e..41de32d955 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -17,7 +17,7 @@ - + diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 302de41fa4..f4cfda7d21 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/prismjs": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/prismjs": "^5.3.0-rc.2" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index b06a3e49a6..f9898d010c 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,161 +41,161 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.1.tgz#da893847d2d86f53f99dfefc8898d14410d45600" - integrity sha512-Eqkgd3ZJXHE5xovfb+2SzGxzISCjzLsGYSV/uZs2BYVfyIZ0+D2Jx0jOT8j8oVPAlRTCCMAbvoxMKZJZr/WC0Q== +"@abp/clipboard@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.2.tgz#e9a4f38a5d33d88a5c2440422a87e403671b3ed8" + integrity sha512-8OKcmGych7cmcYn8tuUmGo+mMlThNBDZA71c/cVAGw1RuLM16SCgeJVeVFhyUrmkBwH/E5Hfh06ZLlIrZKj36Q== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" clipboard "^2.0.8" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.1.tgz#ee1a49b8bd0af2a29aa7bfb93d22ce07a4edbe70" - integrity sha512-oOnzwUtI6q2u7iE/YWQEULm1I+f7Bo+0tQ9rYlzIoalBRnqN57Zw0VMf5AHq8qjn6GiInehPtU9wsaVTPqXmtw== +"@abp/prismjs@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.2.tgz#8a5ed8032a1e8ba7644adbffae9efdc18c3811f7" + integrity sha512-G7ab7PL0TcjtvA9rdFj0RajP0pXZrXmIzKZ/vtQqW6mNLXNCI1OKJ/fAXXwS35gFEyVPvn9xKPnuYlhwqWl6ug== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/core" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/core" "~5.3.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj index ef767dab68..de333dc7aa 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj @@ -21,12 +21,12 @@ - + - - + + diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj index 905302a06b..a1b9f2730d 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj index 8d47633b28..f1229951df 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj index 17e68720cb..455a25b131 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index d25e7b6f31..81fc97bf0a 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/blogging": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/blogging": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js +++ b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 003c3aa68d..9f4e5f22a2 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,187 +41,187 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-5.3.0-rc.1.tgz#a5c7cea988c167d477e858d9488e7e4f12d26d34" - integrity sha512-ABMBP+oqyWwndHdqsorQaclMd2EmKTb6uT1KKWYmsv/Q+mmGEIhGUH2vIT+HrYoFvyj5o3Bedw+rPzqxjL3H9w== +"@abp/blogging@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-5.3.0-rc.2.tgz#8677f547a4828a948f58e1f0078019d084676d5e" + integrity sha512-wFEg+X2HCXHpie7dsbvkKZpk7iumF9hw4Nz3Kct6YkfXfAi/fpUM9cA3/0kLwkVkPlE5Hp6Tq5nBManIJ0BjWw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - "@abp/owl.carousel" "~5.3.0-rc.1" - "@abp/prismjs" "~5.3.0-rc.1" - "@abp/tui-editor" "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + "@abp/owl.carousel" "~5.3.0-rc.2" + "@abp/prismjs" "~5.3.0-rc.2" + "@abp/tui-editor" "~5.3.0-rc.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.1.tgz#da893847d2d86f53f99dfefc8898d14410d45600" - integrity sha512-Eqkgd3ZJXHE5xovfb+2SzGxzISCjzLsGYSV/uZs2BYVfyIZ0+D2Jx0jOT8j8oVPAlRTCCMAbvoxMKZJZr/WC0Q== +"@abp/clipboard@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.2.tgz#e9a4f38a5d33d88a5c2440422a87e403671b3ed8" + integrity sha512-8OKcmGych7cmcYn8tuUmGo+mMlThNBDZA71c/cVAGw1RuLM16SCgeJVeVFhyUrmkBwH/E5Hfh06ZLlIrZKj36Q== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" clipboard "^2.0.8" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/owl.carousel@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-5.3.0-rc.1.tgz#504fa6d37553810969cd4e3b3b323744a7ec13bc" - integrity sha512-GPX+McoItf8EvZ6p7cbb1t2LovOSfDemzUXFgOLD0pCTPXiriNYknIoi/ZsvL3U/syQHpAuEbkt2C/fVVjbSnQ== +"@abp/owl.carousel@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-5.3.0-rc.2.tgz#79fc806a2905fb7a2b93f3c7be124aa490dcb6bd" + integrity sha512-xDZw2pgz3ORMblgY2armom7Kn+q0ygQgrBlzjcz0jO3+V0krmTiT+NnQUNZca2fPhrX29eznO/INWTgw90uhcg== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" owl.carousel "^2.3.4" -"@abp/prismjs@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.1.tgz#ee1a49b8bd0af2a29aa7bfb93d22ce07a4edbe70" - integrity sha512-oOnzwUtI6q2u7iE/YWQEULm1I+f7Bo+0tQ9rYlzIoalBRnqN57Zw0VMf5AHq8qjn6GiInehPtU9wsaVTPqXmtw== +"@abp/prismjs@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.2.tgz#8a5ed8032a1e8ba7644adbffae9efdc18c3811f7" + integrity sha512-G7ab7PL0TcjtvA9rdFj0RajP0pXZrXmIzKZ/vtQqW6mNLXNCI1OKJ/fAXXwS35gFEyVPvn9xKPnuYlhwqWl6ug== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/core" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/core" "~5.3.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.3.0-rc.1.tgz#d5b6e46c922e9743216395bc055ed8208c2ead0b" - integrity sha512-wMEph23kwGJyAGweivKn2EDTRQQD0UG0X23qMd4Cv285qdu4AoYL2/shBDFKiXfhN0Q7EZ06mhOyTuhJmTnNUg== +"@abp/tui-editor@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.3.0-rc.2.tgz#34d82fca81892cdd6a269ae7d61334db96a7af60" + integrity sha512-eWuwAz71MOkJ+oYWqpCfA5f4555cTGWe8pZJPboTfVluym/O8wyGfldMx8jxOq4F4EqogrUozgq6jHZRgQy0kg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" - "@abp/prismjs" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" + "@abp/prismjs" "~5.3.0-rc.2" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj index e6a2f6c2fe..0f3c2f52c7 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj index c56b888d38..96c14f8da0 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml index b01b9c0c28..03514aaf3a 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml @@ -4,11 +4,11 @@ @using Volo.Blogging @inject IAuthorizationService Authorization @model Volo.Blogging.Pages.Blog.Posts.IndexModel -@using Microsoft.AspNetCore.Mvc.Localization +@using Microsoft.Extensions.Localization @using Volo.Blogging.Localization @using Volo.Blogging.Pages.Blog @using IndexModel = Volo.Blogging.Pages.Blog.Posts.IndexModel -@inject IHtmlLocalizer L +@inject IStringLocalizer L @inject BloggingPageHelper BloggingPageHelper @{ ViewBag.Title = "Read All Blog Posts"; @@ -49,7 +49,7 @@

@Html.Raw(BloggingPageHelper.GetShortContent(post.Content))

- Continue Reading → + @L["ContinueReading"] → @if (post.Writer != null) @@ -168,7 +168,7 @@

@Html.Raw(BloggingPageHelper.GetShortContent(post.Content))

- Continue Reading → + @L["ContinueReading"] → @if (post.Writer != null) { diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index ca504b6800..a05cff2692 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj index 47cac805fd..3207233860 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj @@ -9,7 +9,7 @@ - + diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 3eeba0cb36..5aa39d51c3 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 986dea9735..475e8a5cca 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 5d7f90cd88..ad1e299393 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.3.0-rc.1", - "@abp/ng.identity": "~5.3.0-rc.1", - "@abp/ng.setting-management": "~5.3.0-rc.1", - "@abp/ng.tenant-management": "~5.3.0-rc.1", - "@abp/ng.theme.basic": "~5.3.0-rc.1", + "@abp/ng.account": "~5.3.0-rc.2", + "@abp/ng.identity": "~5.3.0-rc.2", + "@abp/ng.setting-management": "~5.3.0-rc.2", + "@abp/ng.tenant-management": "~5.3.0-rc.2", + "@abp/ng.theme.basic": "~5.3.0-rc.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 5739647ca3..044d492d1d 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=5.3.0-rc.1", - "@abp/ng.theme.shared": ">=5.3.0-rc.1" + "@abp/ng.core": ">=5.3.0-rc.2", + "@abp/ng.theme.shared": ">=5.3.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj index 93be640835..8b2547b795 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj @@ -8,14 +8,13 @@ - + - - - - + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj index 48871c910a..e3f3b0cf3f 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj @@ -8,11 +8,11 @@ - + - - + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 09b98ca204..70cd3a52eb 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 076a560d65..7aca0310e5 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj index 4432a79f55..be312facab 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj @@ -8,11 +8,11 @@ - + - - + + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 0f2145759f..02c80e93f1 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 8ed51806b1..d5f1b1bf13 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj index 8f49a165cd..38130dc961 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj @@ -8,9 +8,9 @@ - + - + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 62e3847647..cad17f9fae 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/cms-kit": "5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/cms-kit": "5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 92b8cbcfbd..10047181d8 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,243 +41,243 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.1.tgz#da893847d2d86f53f99dfefc8898d14410d45600" - integrity sha512-Eqkgd3ZJXHE5xovfb+2SzGxzISCjzLsGYSV/uZs2BYVfyIZ0+D2Jx0jOT8j8oVPAlRTCCMAbvoxMKZJZr/WC0Q== +"@abp/clipboard@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.2.tgz#e9a4f38a5d33d88a5c2440422a87e403671b3ed8" + integrity sha512-8OKcmGych7cmcYn8tuUmGo+mMlThNBDZA71c/cVAGw1RuLM16SCgeJVeVFhyUrmkBwH/E5Hfh06ZLlIrZKj36Q== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" clipboard "^2.0.8" -"@abp/cms-kit.admin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-5.3.0-rc.1.tgz#741350a9669532d3bd8e703c2a8cde5e693b1b9d" - integrity sha512-xmdfrlAOBDB1Fi/aBjpkNEG5m4OBiSOo1xt88fG1KJiKxfDYsH84XB+V7rJ/3IWtlaQJDzdnYFrqoex/5h0S/A== +"@abp/cms-kit.admin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-5.3.0-rc.2.tgz#31ec41e5ce1143fe1ad03f8aa63e98384d097a14" + integrity sha512-ZppUtDIdeSTmch7/xalUap5Jh1LZy0VbpgzkCzZ6VjgDo0uAMcZ09V+09kuHZWfRcy5T5VMl+YvJKryrjCzSrA== dependencies: - "@abp/codemirror" "~5.3.0-rc.1" - "@abp/jstree" "~5.3.0-rc.1" - "@abp/slugify" "~5.3.0-rc.1" - "@abp/tui-editor" "~5.3.0-rc.1" - "@abp/uppy" "~5.3.0-rc.1" + "@abp/codemirror" "~5.3.0-rc.2" + "@abp/jstree" "~5.3.0-rc.2" + "@abp/slugify" "~5.3.0-rc.2" + "@abp/tui-editor" "~5.3.0-rc.2" + "@abp/uppy" "~5.3.0-rc.2" -"@abp/cms-kit.public@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-5.3.0-rc.1.tgz#4f0fe30a5c6f5450dfde265162d68239e00e2f9b" - integrity sha512-B9FX1bq9Ki9bouatcY9MJRbOo8/QLFmq24Ua3ASgmMhMwwSpUUu+GBUtxpUkRepWcpPze4m3rWIn5Ff8ZVnOEw== +"@abp/cms-kit.public@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-5.3.0-rc.2.tgz#77639a85fc0d148ce3202778f8f0dec274de5088" + integrity sha512-Ati7T1faNYEs6bax+mWROpHtBV5lwDItvrf66ET+TqbbJGlXqdvSf7br1hslPThrXfqhDth3CkPFrT9nmP9WAg== dependencies: - "@abp/highlight.js" "~5.3.0-rc.1" - "@abp/star-rating-svg" "~5.3.0-rc.1" + "@abp/highlight.js" "~5.3.0-rc.2" + "@abp/star-rating-svg" "~5.3.0-rc.2" -"@abp/cms-kit@5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-5.3.0-rc.1.tgz#da749badac6681d8049a4d6c522c172fdb72f02b" - integrity sha512-ACKZf69dGti9W8M0ZZWn0UiZA+LlGqQtEx9rkTnzrzma4uePsDvIFvbMGyK8UZLSVGHOVVhE2kN1OGTioeqgGw== +"@abp/cms-kit@5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-5.3.0-rc.2.tgz#f959da04caf21fc4e1e0b4961451c73ee3b3f4e1" + integrity sha512-RtARr+YXULHnY8Gr8VakDUjOSM380KlfuG9Q5Oo3XIGXhJxERxlHzanJZZ9CAjF8j30A5D/+B9ZgvTtcHjevsA== dependencies: - "@abp/cms-kit.admin" "~5.3.0-rc.1" - "@abp/cms-kit.public" "~5.3.0-rc.1" + "@abp/cms-kit.admin" "~5.3.0-rc.2" + "@abp/cms-kit.public" "~5.3.0-rc.2" -"@abp/codemirror@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.3.0-rc.1.tgz#20386caeffa7f0a65030a635532935d669fc5295" - integrity sha512-46AeZEeHEvOKjA6KS/SkhiizoLqQUB9cRJfOgT7NKP18OKx5ra4+Cj2CGtoq2N+FjuA7hgdnbbjX8E1GkfHAPg== +"@abp/codemirror@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.3.0-rc.2.tgz#7c308e1dc69921ee5c70b791d345500da7b7c955" + integrity sha512-5NVhFrMgsMfGcoajJ3Pycy01Axl0u276XSx6fE5NeugEy/anXN6IH6bK2qUOmuuOzdtRTJ/nGemDJS2RGnmKVA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" codemirror "^5.65.1" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/highlight.js@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.3.0-rc.1.tgz#a6dad18c759ff4c1488b6aef4898d88d55e0ce1a" - integrity sha512-z4vvoETKcciumaED4hnpgrUnjWhtRejG+nW/er+X1dxrUJk58oh6ReFs0/xb+xlrKc/ALOYTh0VY5LBU2KU5Qw== +"@abp/highlight.js@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.3.0-rc.2.tgz#d0837fae2f985382e4d689c0bb81a5849bb470b7" + integrity sha512-BlDTmyok5zj7ud+QYM0NAcEhOJ5OBpPIktAPgqN/4ulIP7XY+Ylq1VbqMsQjO7hOdHDZ79wLOT3cGlnBn5V9MQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@highlightjs/cdn-assets" "~11.4.0" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/jstree@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-5.3.0-rc.1.tgz#e6c4a3ed1afe23ba3029674833c3135ac37dceda" - integrity sha512-MKJX2IXtTijjNfGNoy486/XdQ7nncIaoUSAZUcah0NXP1cyBC+PMl+zI9y1G/nJsAjX7zSpmWh8TXkbP20HZBQ== +"@abp/jstree@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-5.3.0-rc.2.tgz#e89ec5b6898591ee1544199df97f1ffa050c2f9b" + integrity sha512-jgmQI2Ehe3KNn1dMFzzjr4g9GoznYA6CBdBqzAPsx+Df8ZZJQsYl55GSK2TlXRCZ+9Bfbo+Z7JXcUodkvAzXFA== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jstree "^3.3.12" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.1.tgz#ee1a49b8bd0af2a29aa7bfb93d22ce07a4edbe70" - integrity sha512-oOnzwUtI6q2u7iE/YWQEULm1I+f7Bo+0tQ9rYlzIoalBRnqN57Zw0VMf5AHq8qjn6GiInehPtU9wsaVTPqXmtw== +"@abp/prismjs@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.2.tgz#8a5ed8032a1e8ba7644adbffae9efdc18c3811f7" + integrity sha512-G7ab7PL0TcjtvA9rdFj0RajP0pXZrXmIzKZ/vtQqW6mNLXNCI1OKJ/fAXXwS35gFEyVPvn9xKPnuYlhwqWl6ug== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/core" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/core" "~5.3.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/slugify@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-5.3.0-rc.1.tgz#dfebf924365d8627a6dae770394396ffa383a960" - integrity sha512-gPHLGVfrXSiuUMxEdPpZm6ie+ZkOVk2SXb9B2/+ndL+Wy8FYJiP6v2xn0SJ3ENqGL4nvuZdDOfAGKbrICpb/Pg== +"@abp/slugify@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-5.3.0-rc.2.tgz#c5991d4625655c5cad6397885c78eab3a7933bef" + integrity sha512-5AqYkUHwzl7lXpZzXnp03fTSaxOkOWEXEQ1r47bWZz2o5IeI5csEKedV7/1DARXaUjrFYFWleFLceqiml4RK5w== dependencies: slugify "^1.6.5" -"@abp/star-rating-svg@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-5.3.0-rc.1.tgz#1589d7407932c6113312a6dbc43be32363363314" - integrity sha512-o7fP05qMm7OP9A1TPf5ysSqnujC6WWMQEUceIqRdp2UWiLKd8c/3GrtLbA+NDDN7ddES8JPrU98ENdfRxqb6CA== +"@abp/star-rating-svg@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-5.3.0-rc.2.tgz#ef05336a5ed45335ed80884e7ac3000a4cca6271" + integrity sha512-oE6Sv3JdYwIvVXFCsNxHVykvcAUxtRuM3KEWdoCm7G3vl4576G5gk0HwOSLfs3KwWWzQGnUbqyNAs91DXGM1bg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.3.0-rc.1.tgz#d5b6e46c922e9743216395bc055ed8208c2ead0b" - integrity sha512-wMEph23kwGJyAGweivKn2EDTRQQD0UG0X23qMd4Cv285qdu4AoYL2/shBDFKiXfhN0Q7EZ06mhOyTuhJmTnNUg== +"@abp/tui-editor@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.3.0-rc.2.tgz#34d82fca81892cdd6a269ae7d61334db96a7af60" + integrity sha512-eWuwAz71MOkJ+oYWqpCfA5f4555cTGWe8pZJPboTfVluym/O8wyGfldMx8jxOq4F4EqogrUozgq6jHZRgQy0kg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" - "@abp/prismjs" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" + "@abp/prismjs" "~5.3.0-rc.2" -"@abp/uppy@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-5.3.0-rc.1.tgz#19f2e09eb6a34e70e08f7d79189624012ab265dd" - integrity sha512-a4V1MzvLdCfI4va8U7nxvUfsh/+h4UG+Utu/HFJ2iHPpH/cj/xIBbCWljDt4uToHUIiZ2kXVCE+0TfWiYV+JJQ== +"@abp/uppy@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-5.3.0-rc.2.tgz#e16d95e629a7df878089f416244eeb6527940442" + integrity sha512-h0evvkMicfGuU0oy4iEAo6Wsg6c/5drsTLQyOUfXPE015K0dmkmx2D9h55QhFwb6m4Tw/YvL557yawenwwG7Hw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" uppy "^1.16.1" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj index 3b925fc97c..e7068a41a8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -18,7 +18,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj index 95379d4794..1ca9a78b27 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj index 107aa14452..22160272fd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj @@ -12,7 +12,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs index b948f360d9..089b86cc4f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs @@ -7,7 +7,6 @@ using System.Threading.Tasks; using MongoDB.Driver; using MongoDB.Driver.Linq; using Volo.Abp; -using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Repositories.MongoDB; using Volo.Abp.MongoDB; using Volo.CmsKit.Comments; @@ -23,25 +22,16 @@ public class MongoCommentRepository : MongoDbRepository GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default) { - var query = from comment in (await GetMongoQueryableAsync(cancellationToken)) - join user in (await GetDbContextAsync(cancellationToken)).CmsUsers on comment.CreatorId equals user.Id - where id == comment.Id - select new { - Comment = comment, - Author = user - }; - - var commentWithAuthor = await query.FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); - - if (commentWithAuthor == null) - { - throw new EntityNotFoundException(typeof(Comment), id); - } + var comment = await GetAsync(id); + var author = await (await GetDbContextAsync()) + .CmsUsers + .AsQueryable() + .FirstOrDefaultAsync(x => x.Id == comment.CreatorId, GetCancellationToken(cancellationToken)); return new CommentWithAuthorQueryResultItem() { - Comment = commentWithAuthor.Comment, - Author = commentWithAuthor.Author + Comment = comment, + Author = author }; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index 2dc1fd425c..b4aeb556fe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj index 4eeb97c9f2..a22da28426 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj index cea6684727..89319b548f 100644 --- a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/Comments/CommentRepository_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/Comments/CommentRepository_Tests.cs index facf55f523..ea4d2bbc61 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/Comments/CommentRepository_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/Comments/CommentRepository_Tests.cs @@ -54,6 +54,15 @@ public abstract class CommentRepository_Tests : CmsKitTestBase x.Author == null).ShouldBeFalse(); } + [Fact] + public async Task GetWithAuthorAsync() + { + var commentDetail = await _commentRepository.GetWithAuthorAsync(_cmsKitTestData.CommentWithChildId); + + commentDetail.ShouldNotBeNull(); + commentDetail.Author.ShouldNotBeNull(); + } + [Fact] public async Task DeleteWithRepliesAsync() { diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj index 8c25dd9b31..84dce5e2e4 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj index e77d6a36ed..3a0ed64889 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj @@ -17,7 +17,7 @@ - + diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index bfd84f86a8..5257786f65 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/docs": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/docs": "^5.3.0-rc.2" } } diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js +++ b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 025853e95d..c96a0f6660 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-5.3.0-rc.1.tgz#ede6821e159291aae4e7f8b0863ed5e013f28237" - integrity sha512-84VMhSBguy12OJ9l8ONBAdsAeXxNYiRI0FYQUzuBG20zzTdJY/LvVxQGArdecM1ouLMhGzB3X3cdQQ4uHgHhUA== +"@abp/anchor-js@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-5.3.0-rc.2.tgz#8a8ac600bcc4f337c000156357f931f8186d73c4" + integrity sha512-8LJrBMCVpXZYe1ebvnrPVAAzm0/2IuTamudTQI0reQxINtqi3kFZEAe1r8W5zNbnpWFg8XnhS6Lat7YsmVEXAg== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" anchor-js "^4.3.1" -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -49,180 +49,180 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.1.tgz#da893847d2d86f53f99dfefc8898d14410d45600" - integrity sha512-Eqkgd3ZJXHE5xovfb+2SzGxzISCjzLsGYSV/uZs2BYVfyIZ0+D2Jx0jOT8j8oVPAlRTCCMAbvoxMKZJZr/WC0Q== +"@abp/clipboard@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.2.tgz#e9a4f38a5d33d88a5c2440422a87e403671b3ed8" + integrity sha512-8OKcmGych7cmcYn8tuUmGo+mMlThNBDZA71c/cVAGw1RuLM16SCgeJVeVFhyUrmkBwH/E5Hfh06ZLlIrZKj36Q== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" clipboard "^2.0.8" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/docs@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-5.3.0-rc.1.tgz#c53b92172b5333187fccd95993960a259619a70c" - integrity sha512-hLKck5AFDIqk8RKaKmQzl+dzP6mluizcl2aeoUo6SoQE4uCKfInv6Np2Zak7HYdJkCrFvlOJUFkLi/RLX04eQA== +"@abp/docs@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-5.3.0-rc.2.tgz#1128191ac82cb863488a314385d8ce508586b3ec" + integrity sha512-cF3eW7jJW5oAuYXcoBZTH6EqnpGwt8o7WLEWz5S2bGABHS3d8Ar4eLeu1q05vGHAVQiFJ18CplRz3YARFPXl4w== dependencies: - "@abp/anchor-js" "~5.3.0-rc.1" - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/popper.js" "~5.3.0-rc.1" - "@abp/prismjs" "~5.3.0-rc.1" + "@abp/anchor-js" "~5.3.0-rc.2" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/popper.js" "~5.3.0-rc.2" + "@abp/prismjs" "~5.3.0-rc.2" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-5.3.0-rc.1.tgz#f89dfe05885295af256106e340bae862261fd5a5" - integrity sha512-MJ6qMDOldWRF+tAMz2XF1adocZIO8t94q0J4LAwe+VxKkIT1eZOAjE0HubuW4ffwiknKnL/vy90DenmW4WKsDw== +"@abp/popper.js@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-5.3.0-rc.2.tgz#456fa195785f0471cdeb69557029a0e5d193cd2a" + integrity sha512-/ZtPgiCGa1yXf4IH3XMwEGkwB4PeOKGRROmPkMZnwOMTkEYN3kZlwTgbRXdRnp8Cfqze5oIQiF5LO8i/J9QaOQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@popperjs/core" "^2.11.2" -"@abp/prismjs@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.1.tgz#ee1a49b8bd0af2a29aa7bfb93d22ce07a4edbe70" - integrity sha512-oOnzwUtI6q2u7iE/YWQEULm1I+f7Bo+0tQ9rYlzIoalBRnqN57Zw0VMf5AHq8qjn6GiInehPtU9wsaVTPqXmtw== +"@abp/prismjs@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.2.tgz#8a5ed8032a1e8ba7644adbffae9efdc18c3811f7" + integrity sha512-G7ab7PL0TcjtvA9rdFj0RajP0pXZrXmIzKZ/vtQqW6mNLXNCI1OKJ/fAXXwS35gFEyVPvn9xKPnuYlhwqWl6ug== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/core" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/core" "~5.3.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj index e7f372dfc6..781dc024c5 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj @@ -23,7 +23,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj index a523cca13c..1c83977e3a 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj @@ -27,7 +27,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj index 29020e50bc..d8548c9bbc 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj @@ -20,7 +20,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index f8b17ed2fa..c68d25d1e8 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -78,7 +78,7 @@ namespace Volo.Docs.Pages.Documents.Project public bool FullSearchEnabled { get; set; } - public bool IsLatestVersion => Version == LatestVersionInfo.Version; + public bool IsLatestVersion { get; private set; } private const int MaxDescriptionMetaTagLength = 200; private readonly IDocumentAppService _documentAppService; @@ -335,6 +335,8 @@ namespace Volo.Docs.Pages.Documents.Project Value = CreateVersionLink(LatestVersionInfo, v.Version, DocumentName), Selected = v.IsSelected }).ToList(); + + IsLatestVersion = Version == LatestVersionInfo.Version; } private VersionInfoViewModel GetLatestVersionInfo(List versions) diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj index 1795b0f9b8..43fb1bb9bb 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj @@ -23,7 +23,7 @@ - + diff --git a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj index 1c3b5de2a8..2ee496241e 100644 --- a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj +++ b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj index 8b1796e8fb..20e31fe161 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj index 838a472ce3..e5c8b3ba52 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj @@ -28,7 +28,7 @@ - + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj index e998fe73f8..f028c9b9b6 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index ddd23ab870..fd461ebe66 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -27,7 +27,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleNameChangedEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleNameChangedEto.cs index 0bce1079b5..012f764f54 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleNameChangedEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleNameChangedEto.cs @@ -1,9 +1,10 @@ using System; +using Volo.Abp.MultiTenancy; namespace Volo.Abp.Identity; [Serializable] -public class IdentityRoleNameChangedEto +public class IdentityRoleNameChangedEto : IMultiTenant { public Guid Id { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj index d0a9c8da05..e3baeb0892 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj @@ -45,7 +45,7 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj index 35ab51d83e..825c31a2eb 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj index 63dc588d03..139ccc9262 100644 --- a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj @@ -20,7 +20,7 @@ - + diff --git a/modules/openiddict/app/OpenIddict.Demo.API/OpenIddict.Demo.API.csproj b/modules/openiddict/app/OpenIddict.Demo.API/OpenIddict.Demo.API.csproj index 2f6cb4ec1f..ea620272cb 100644 --- a/modules/openiddict/app/OpenIddict.Demo.API/OpenIddict.Demo.API.csproj +++ b/modules/openiddict/app/OpenIddict.Demo.API/OpenIddict.Demo.API.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/OpenIddict.Demo.Client.BlazorWASM.csproj b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/OpenIddict.Demo.Client.BlazorWASM.csproj index 4bdc67740f..b24c51c57a 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/OpenIddict.Demo.Client.BlazorWASM.csproj +++ b/modules/openiddict/app/OpenIddict.Demo.Client.BlazorWASM/OpenIddict.Demo.Client.BlazorWASM.csproj @@ -8,9 +8,9 @@ - - - + + + diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs b/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs index 90ce819094..501cf0b543 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Client.Console/Program.cs @@ -147,3 +147,16 @@ Console.WriteLine("Access token: {0}", tokenResponse.AccessToken); Console.WriteLine(); Console.WriteLine("Refresh token: {0}", tokenResponse.RefreshToken); Console.WriteLine(); + +serverRequest = new HttpRequestMessage(HttpMethod.Get, api); +serverRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse.AccessToken); + +serverResponse = await client.SendAsync(serverRequest); +serverResponse.EnsureSuccessStatusCode(); + +Console.WriteLine("ClientCredentials API response: {0}", JsonSerializer.Serialize(JsonDocument.Parse(await serverResponse.Content.ReadAsStringAsync()), new JsonSerializerOptions +{ + WriteIndented = true +})); + +Console.WriteLine(); diff --git a/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.csproj b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.csproj index e3ebb359c7..6cd8c919ff 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.csproj +++ b/modules/openiddict/app/OpenIddict.Demo.Client.Mvc/OpenIddict.Demo.Client.Mvc.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddict.Demo.Server.csproj b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddict.Demo.Server.csproj index 0f09844cfa..227a4bfd7b 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddict.Demo.Server.csproj +++ b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddict.Demo.Server.csproj @@ -65,10 +65,8 @@ - - - - + + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs index 3f0b36ed66..616b3ef0c7 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/OpenIddictServerModule.cs @@ -1,7 +1,10 @@ using System.Text; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; +using OpenIddict.Abstractions; using OpenIddict.Demo.Server.EntityFrameworkCore; +using OpenIddict.Server.AspNetCore; +using OpenIddict.Validation.AspNetCore; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; @@ -107,6 +110,13 @@ public class OpenIddictServerModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.ConfigureApplicationCookie(options => + { + options.ForwardDefaultSelector = ctx => ctx.Request.Path.StartsWithSegments("/api") + ? OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme + : null; + }); + Configure(options => { options.AddDevelopmentEncryptionAndSigningCertificate = false; diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/Program.cs b/modules/openiddict/app/OpenIddict.Demo.Server/Program.cs index eb5b1673b2..3bfc26a9a3 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/Program.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/Program.cs @@ -41,13 +41,6 @@ builder.Services.Configure(options => // options.TokenValidationParameters.TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("Abp_OpenIddict_Demo_87E33FC57D80")); // }); -// builder.Services.ConfigureApplicationCookie(options => -// { -// options.ForwardDefaultSelector = ctx => ctx.Request.Path.StartsWithSegments("/api") -// ? OtherScheme -// : null; -// }); - await builder.AddApplicationAsync(); var app = builder.Build(); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj index 7bfcc4dc52..b704e64cf7 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo.Abp.OpenIddict.AspNetCore.csproj @@ -20,5 +20,7 @@ + + diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpFormValueRequiredAttribute.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpFormValueRequiredAttribute.cs deleted file mode 100644 index 1000f6f25c..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpFormValueRequiredAttribute.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using Microsoft.AspNetCore.Mvc.Abstractions; -using Microsoft.AspNetCore.Mvc.ActionConstraints; -using Microsoft.AspNetCore.Routing; - -namespace Volo.Abp.OpenIddict; - -public class AbpFormValueRequiredAttribute : ActionMethodSelectorAttribute -{ - private readonly string _name; - - public AbpFormValueRequiredAttribute(string name) - { - _name = name; - } - - public override bool IsValidForRequest(RouteContext routeContext, ActionDescriptor action) - { - if (string.Equals(routeContext.HttpContext.Request.Method, "GET", StringComparison.OrdinalIgnoreCase) || - string.Equals(routeContext.HttpContext.Request.Method, "HEAD", StringComparison.OrdinalIgnoreCase) || - string.Equals(routeContext.HttpContext.Request.Method, "DELETE", StringComparison.OrdinalIgnoreCase) || - string.Equals(routeContext.HttpContext.Request.Method, "TRACE", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - if (string.IsNullOrEmpty(routeContext.HttpContext.Request.ContentType)) - { - return false; - } - - if (!routeContext.HttpContext.Request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - return !string.IsNullOrEmpty(routeContext.HttpContext.Request.Form[_name]); - } -} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs index 9a2a289d08..8e103f92fa 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs @@ -40,26 +40,27 @@ public class AbpOpenIddictAspNetCoreModule : AbpModule { AbpClaimTypes.UserId = OpenIddictConstants.Claims.Subject; AbpClaimTypes.Role = OpenIddictConstants.Claims.Role; - AbpClaimTypes.UserName = OpenIddictConstants.Claims.Name; + AbpClaimTypes.UserName = OpenIddictConstants.Claims.PreferredUsername; AbpClaimTypes.Name = OpenIddictConstants.Claims.GivenName; AbpClaimTypes.SurName = OpenIddictConstants.Claims.FamilyName; AbpClaimTypes.PhoneNumber = OpenIddictConstants.Claims.PhoneNumber; AbpClaimTypes.PhoneNumberVerified = OpenIddictConstants.Claims.PhoneNumberVerified; AbpClaimTypes.Email = OpenIddictConstants.Claims.Email; AbpClaimTypes.EmailVerified = OpenIddictConstants.Claims.EmailVerified; + AbpClaimTypes.ClientId = OpenIddictConstants.Claims.ClientId; } var openIddictBuilder = services.AddOpenIddict() .AddServer(builder => { builder - .SetAuthorizationEndpointUris("/connect/authorize") + .SetAuthorizationEndpointUris("/connect/authorize", "/connect/authorize/callback") // /.well-known/oauth-authorization-server // /.well-known/openid-configuration //.SetConfigurationEndpointUris() // /.well-known/jwks //.SetCryptographyEndpointUris() - .SetDeviceEndpointUris("/connect/device") + .SetDeviceEndpointUris("/device") .SetIntrospectionEndpointUris("/connect/introspect") .SetLogoutEndpointUris("/connect/logout") .SetRevocationEndpointUris("/connect/revocat") @@ -126,6 +127,8 @@ public class AbpOpenIddictAspNetCoreModule : AbpModule builder.AddEventHandler(AbpValidatePostLogoutRedirectUriParameter.Descriptor); } + builder.AddEventHandler(RemoveClaimsFromClientCredentialsGrantType.Descriptor); + services.ExecutePreConfiguredActions(builder); }); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs index 7f54cd81aa..b200dfc4a4 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; +using Microsoft.IdentityModel.JsonWebTokens; using OpenIddict.Abstractions; using Volo.Abp.DependencyInjection; using Volo.Abp.Security.Claims; @@ -27,7 +28,15 @@ public class AbpDefaultOpenIddictClaimDestinationsProvider : IAbpOpenIddictClaim switch (claim.Type) { - case OpenIddictConstants.Claims.Name: + case OpenIddictConstants.Claims.PreferredUsername: + claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken); + if (context.Principal.HasScope(OpenIddictConstants.Scopes.Profile)) + { + claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken); + } + break; + + case JwtRegisteredClaimNames.UniqueName: claim.SetDestinations(OpenIddictConstants.Destinations.AccessToken); if (context.Principal.HasScope(OpenIddictConstants.Scopes.Profile)) { diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs index 68e0418ec1..ff7edb3e52 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs @@ -59,4 +59,18 @@ public abstract class AbpOpenIdDictControllerBase : AbpController { await OpenIddictClaimDestinationsManager.SetAsync(principal); } + + protected virtual async Task HasFormValueAsync(string name) + { + if (Request.HasFormContentType) + { + var form = await Request.ReadFormAsync(); + if (!string.IsNullOrEmpty(form[name])) + { + return true; + } + } + + return false; + } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs index cf06c05933..ec764ab242 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs @@ -7,7 +7,6 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; using Microsoft.Extensions.Primitives; using OpenIddict.Abstractions; using OpenIddict.Server.AspNetCore; @@ -16,6 +15,7 @@ using Volo.Abp.OpenIddict.ViewModels.Authorization; namespace Volo.Abp.OpenIddict.Controllers; [Route("connect/authorize")] +[ApiExplorerSettings(IgnoreApi = true)] public class AuthorizeController : AbpOpenIdDictControllerBase { [HttpGet, HttpPost] @@ -159,9 +159,17 @@ public class AuthorizeController : AbpOpenIdDictControllerBase } [HttpPost] - [Authorize, AbpFormValueRequired("submit.Accept")] - public virtual async Task HandleAcceptConsentAsync() + [Authorize] + [Route("callback")] + public virtual async Task HandleCallbackAsync() { + if (await HasFormValueAsync("deny")) + { + // Notify OpenIddict that the authorization grant has been denied by the resource owner + // to redirect the user agent to the client application using the appropriate response_mode. + return Forbid(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); + } + var request = await GetOpenIddictServerRequestAsync(HttpContext); // Retrieve the profile of the logged in user. @@ -224,13 +232,4 @@ public class AuthorizeController : AbpOpenIdDictControllerBase // Returning a SignInResult will ask OpenIddict to issue the appropriate access/identity tokens. return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); } - - [Authorize, AbpFormValueRequired("submit.Deny")] - [HttpPost] - public virtual Task HandleDenyConsentAsync() - { - // Notify OpenIddict that the authorization grant has been denied by the resource owner - // to redirect the user agent to the client application using the appropriate response_mode. - return Task.FromResult(Forbid(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)); - } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs index 158fe9896d..404fd0da14 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/LogoutController.cs @@ -1,12 +1,12 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using OpenIddict.Server.AspNetCore; namespace Volo.Abp.OpenIddict.Controllers; [Route("connect/logout")] +[ApiExplorerSettings(IgnoreApi = true)] public class LogoutController : AbpOpenIdDictControllerBase { [HttpGet] @@ -16,13 +16,15 @@ public class LogoutController : AbpOpenIdDictControllerBase } [HttpPost] - [AbpFormValueRequired("submit.Accept")] - public virtual async Task HandleAcceptAsync() + public virtual async Task PostAsync() { - // Ask ASP.NET Core Identity to delete the local and external cookies created - // when the user agent is redirected from the external identity provider - // after a successful authentication flow (e.g Google or Facebook). - await SignInManager.SignOutAsync(); + if (await HasFormValueAsync("accept")) + { + // Ask ASP.NET Core Identity to delete the local and external cookies created + // when the user agent is redirected from the external identity provider + // after a successful authentication flow (e.g Google or Facebook). + await SignInManager.SignOutAsync(); + } // Returning a SignOutResult will ask OpenIddict to redirect the user agent // to the post_logout_redirect_uri specified by the client application or to @@ -31,16 +33,4 @@ public class LogoutController : AbpOpenIdDictControllerBase authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, properties: new AuthenticationProperties {RedirectUri = "/"}); } - - [HttpPost] - [AbpFormValueRequired("submit.Deny")] - public virtual Task HandleDenyConsentAsync() - { - // Returning a SignOutResult will ask OpenIddict to redirect the user agent - // to the post_logout_redirect_uri specified by the client application or to - // the RedirectUri specified in the authentication properties if none was set. - return Task.FromResult(SignOut( - authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, - properties: new AuthenticationProperties {RedirectUri = "/"})); - } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs index 0d0c26166a..4a853b2d9c 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.ClientCredentials.cs @@ -26,13 +26,15 @@ public partial class TokenController // will be used to create an id_token, a token or a code. var identity = new ClaimsIdentity( TokenValidationParameters.DefaultAuthenticationType, - OpenIddictConstants.Claims.Name, OpenIddictConstants.Claims.Role); + OpenIddictConstants.Claims.PreferredUsername, OpenIddictConstants.Claims.Role); + + // The Subject and PreferredUsername will be removed by . // Use the client_id as the subject identifier. identity.AddClaim(OpenIddictConstants.Claims.Subject, await ApplicationManager.GetClientIdAsync(application), OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken); - identity.AddClaim(OpenIddictConstants.Claims.Name, await ApplicationManager.GetDisplayNameAsync(application), + identity.AddClaim(OpenIddictConstants.Claims.PreferredUsername, await ApplicationManager.GetDisplayNameAsync(application), OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken); // Note: In the original OAuth 2.0 specification, the client credentials grant @@ -65,7 +67,7 @@ public partial class TokenController // whether they should be included in access tokens, in identity tokens or in both. return claim.Type switch { - OpenIddictConstants.Claims.Name or OpenIddictConstants.Claims.Subject + OpenIddictConstants.Claims.PreferredUsername or OpenIddictConstants.Claims.Subject => ImmutableArray.Create(OpenIddictConstants.Destinations.AccessToken, OpenIddictConstants.Destinations.IdentityToken), diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.cs index 4ed6927fd4..8c5ab98872 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.cs @@ -9,6 +9,7 @@ using Volo.Abp.OpenIddict.ExtensionGrantTypes; namespace Volo.Abp.OpenIddict.Controllers; [Route("connect/token")] +[ApiExplorerSettings(IgnoreApi = true)] public partial class TokenController : AbpOpenIdDictControllerBase { [HttpGet, HttpPost, Produces("application/json")] diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs index 9655695924..62103c1b2b 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs @@ -12,6 +12,7 @@ namespace Volo.Abp.OpenIddict.Controllers; [Route("connect/userinfo")] [Authorize(AuthenticationSchemes = OpenIddictServerAspNetCoreDefaults.AuthenticationScheme)] +[ApiExplorerSettings(IgnoreApi = true)] public class UserInfoController : AbpOpenIdDictControllerBase { [HttpGet] @@ -40,7 +41,7 @@ public class UserInfoController : AbpOpenIdDictControllerBase if (User.HasScope(OpenIddictConstants.Scopes.Profile)) { claims[AbpClaimTypes.TenantId] = user.TenantId; - claims[OpenIddictConstants.Claims.Name] = user.UserName; + claims[OpenIddictConstants.Claims.PreferredUsername] = user.UserName; claims[OpenIddictConstants.Claims.FamilyName] = user.Surname; } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/OpenIddictClaimsPrincipalContributor.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/OpenIddictClaimsPrincipalContributor.cs new file mode 100644 index 0000000000..e951e1ffdd --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/OpenIddictClaimsPrincipalContributor.cs @@ -0,0 +1,46 @@ +using System; +using System.Linq; +using System.Security.Claims; +using System.Security.Principal; +using System.Threading.Tasks; +using Microsoft.AspNetCore; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Microsoft.IdentityModel.JsonWebTokens; +using OpenIddict.Abstractions; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.OpenIddict; + +public class OpenIddictClaimsPrincipalContributor : IAbpClaimsPrincipalContributor, ITransientDependency +{ + public Task ContributeAsync(AbpClaimsPrincipalContributorContext context) + { + var identity = context.ClaimsPrincipal.Identities.FirstOrDefault(); + if (identity != null) + { + var options = context.ServiceProvider.GetRequiredService>().Value; + var usernameClaim = identity.FindFirst(options.ClaimsIdentity.UserNameClaimType); + if (usernameClaim != null) + { + identity.AddIfNotContains(new Claim(OpenIddictConstants.Claims.PreferredUsername, usernameClaim.Value)); + identity.AddIfNotContains(new Claim(JwtRegisteredClaimNames.UniqueName, usernameClaim.Value)); + } + + var httpContext = context.ServiceProvider.GetRequiredService().HttpContext; + if (httpContext != null) + { + var clientId = httpContext.GetOpenIddictServerRequest()?.ClientId; + if (clientId != null) + { + identity.AddClaim(OpenIddictConstants.Claims.ClientId, clientId, OpenIddictConstants.Destinations.AccessToken); + } + } + } + + return Task.CompletedTask; + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs new file mode 100644 index 0000000000..8ac866283b --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/RemoveClaimsFromClientCredentialsGrantType.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using OpenIddict.Abstractions; +using OpenIddict.Server; + +namespace Volo.Abp.OpenIddict; + +public class RemoveClaimsFromClientCredentialsGrantType : IOpenIddictServerHandler +{ + public static OpenIddictServerHandlerDescriptor Descriptor { get; } + = OpenIddictServerHandlerDescriptor.CreateBuilder() + .AddFilter() + .UseSingletonHandler() + .SetOrder(OpenIddictServerHandlers.PrepareAccessTokenPrincipal.Descriptor.Order - 1) + .SetType(OpenIddictServerHandlerType.Custom) + .Build(); + + public ValueTask HandleAsync(OpenIddictServerEvents.ProcessSignInContext context) + { + if (context.Request.IsClientCredentialsGrantType()) + { + if (context.Principal != null) + { + context.Principal.RemoveClaims(OpenIddictConstants.Claims.Subject); + context.Principal.RemoveClaims(OpenIddictConstants.Claims.PreferredUsername); + } + } + + return default; + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Authorize/Authorize.cshtml b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Authorize/Authorize.cshtml index 91aecd60a2..421f92858b 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Authorize/Authorize.cshtml +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Authorize/Authorize.cshtml @@ -9,7 +9,7 @@

@string.Format(L["DoYouWantToGrantAccessToYourData"].Value, Model.ApplicationName)

@L["ScopesRequested"]: @Model.Scope

-
+ @Html.AntiForgeryToken() @* Flow the request parameters so they can be received by the Accept/Reject actions: *@ @foreach (var parameter in Context.Request.HasFormContentType ? (IEnumerable>) Context.Request.Form : Context.Request.Query) @@ -17,7 +17,7 @@ } - - + + diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml index 8ab7af1a57..6838e92ad5 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Views/Logout/Logout.cshtml @@ -16,7 +16,7 @@ } - - + + diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj index 25b4fb8571..34a4d6c334 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo.Abp.OpenIddict.Domain.Shared.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json index 69dfa3ed71..8bd3a92007 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/en.json @@ -9,6 +9,8 @@ "Authorization": "Authorization", "DoYouWantToGrantAccessToYourData": "Do you want to grant {0} access to your data?", "ScopesRequested": "Scopes requested", + "Accept": "Accept", + "Deny": "Deny", "LogOut": "Log out", "AreYouSureYouWantToSignOut": "Are you sure you want to sign out?" } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json index d327c04cd1..39e525e27e 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/tr.json @@ -9,6 +9,8 @@ "Authorization": "Yetki", "DoYouWantToGrantAccessToYourData": "Do you want to grant {0} access to your data?", "ScopesRequested": "İstenen kapsamlar", + "Accept": "Kabul etmek", + "Deny": "Reddetmek", "LogOut": "Çıkış Yap", "AreYouSureYouWantToSignOut": "Çıkış yapmak istediğinden emin misin?" } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json index 662702c68d..3c6fd502b3 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hans.json @@ -9,6 +9,8 @@ "Authorization": "授权", "DoYouWantToGrantAccessToYourData": "是否要授予 {0} 访问你的数据的权限?", "ScopesRequested": "要求的Scope", + "Accept": "同意", + "Deny": "拒绝", "LogOut": "注销", "AreYouSureYouWantToSignOut": "你确定要退出吗?" } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json index e907355048..5d22654a76 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.Domain.Shared/Volo/Abp/OpenIddict/Localization/OpenIddict/zh-Hant.json @@ -10,6 +10,8 @@ "Authorization": "授權", "DoYouWantToGrantAccessToYourData": "是否要授予 {0} 訪問你的數據的權限?", "ScopesRequested": "要求的Scope", + "Accept": "接受", + "Deny": "拒絕", "LogOut": "註銷", "AreYouSureYouWantToSignOut": "你確定要退出嗎?" } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj index 70c8b26f2d..c44c0b326f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj @@ -25,7 +25,7 @@ - + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj index 05dffc66ec..bf11efd61d 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj @@ -35,7 +35,7 @@
- + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj index a59678dfe1..9b0cd2f1c0 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj @@ -17,7 +17,7 @@
- + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj index dcc9751ff0..034ee303da 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj @@ -17,7 +17,7 @@ - + diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.csproj b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.csproj index 00aa0eb2da..d844f022ae 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.csproj +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/Volo.Abp.SettingManagement.DemoApp.csproj @@ -9,10 +9,10 @@ - + - + diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index 021d1ba335..e7c547990b 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/abp/core/abp.js b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/abp/core/abp.js +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 7a4d606848..04d5a92498 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs index 72d995b251..c318f568ec 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/IEmailSettingsAppService.cs @@ -8,4 +8,6 @@ public interface IEmailSettingsAppService : IApplicationService Task GetAsync(); Task UpdateAsync(UpdateEmailSettingsDto input); + + Task SendTestEmailAsync(SendTestEmailInput input); } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SendTestEmailInput.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SendTestEmailInput.cs new file mode 100644 index 0000000000..d8a4d2aa4a --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SendTestEmailInput.cs @@ -0,0 +1,17 @@ +using System.ComponentModel.DataAnnotations; + +namespace Volo.Abp.SettingManagement; + +public class SendTestEmailInput +{ + [Required] + public string SenderEmailAddress { get; set; } + + [Required] + public string TargetEmailAddress { get; set; } + + [Required] + public string Subject { get; set; } + + public string Body { get; set; } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs index d624089989..81e58503e7 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissionDefinitionProvider.cs @@ -10,9 +10,11 @@ public class SettingManagementPermissionDefinitionProvider : PermissionDefinitio { var moduleGroup = context.AddGroup(SettingManagementPermissions.GroupName, L("Permission:SettingManagement")); - moduleGroup - .AddPermission(SettingManagementPermissions.Emailing, L("Permission:Emailing")) - .StateCheckers.Add(new AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker()); + var emailPermission = moduleGroup + .AddPermission(SettingManagementPermissions.Emailing, L("Permission:Emailing")); + emailPermission.StateCheckers.Add(new AllowTenantsToChangeEmailSettingsFeatureSimpleStateChecker()); + + emailPermission.AddChild(SettingManagementPermissions.EmailingTest, L("Permission:EmailingTest")); } private static LocalizableString L(string name) diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs index dd8e028b45..43f0c5a104 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementPermissions.cs @@ -7,6 +7,8 @@ public class SettingManagementPermissions public const string GroupName = "SettingManagement"; public const string Emailing = GroupName + ".Emailing"; + + public const string EmailingTest = Emailing + ".Test"; public static string[] GetAll() { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs index 92ee36cb04..fe67975517 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application/Volo/Abp/SettingManagement/EmailSettingsAppService.cs @@ -11,10 +11,13 @@ namespace Volo.Abp.SettingManagement; public class EmailSettingsAppService : SettingManagementAppServiceBase, IEmailSettingsAppService { protected ISettingManager SettingManager { get; } + + protected IEmailSender EmailSender { get; } - public EmailSettingsAppService(ISettingManager settingManager) + public EmailSettingsAppService(ISettingManager settingManager, IEmailSender emailSender) { SettingManager = settingManager; + EmailSender = emailSender; } public virtual async Task GetAsync() @@ -60,6 +63,14 @@ public class EmailSettingsAppService : SettingManagementAppServiceBase, IEmailSe await SettingManager.SetForTenantOrGlobalAsync(CurrentTenant.Id, EmailSettingNames.DefaultFromDisplayName, input.DefaultFromDisplayName); } + [Authorize(SettingManagementPermissions.EmailingTest)] + public virtual async Task SendTestEmailAsync(SendTestEmailInput input) + { + await CheckFeatureAsync(); + + await EmailSender.SendAsync(input.SenderEmailAddress, input.TargetEmailAddress, input.Subject, input.Body); + } + protected virtual async Task CheckFeatureAsync() { await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.Enable); diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor index 36d5857776..e80115cfde 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor @@ -13,7 +13,7 @@ @L["DefaultFromDisplayName"] * - + @@ -23,17 +23,17 @@ @L["DefaultFromAddress"] * - + - @L["SmtpHost"] + @L["SmtpHost"] - + @@ -58,30 +58,30 @@ { - @L["SmtpDomain"] + @L["SmtpDomain"] - + - @L["SmtpUserName"] + @L["SmtpUserName"] - + - @L["SmtpPassword"] + @L["SmtpPassword"] - + @@ -92,8 +92,75 @@ - + + @if (HasSendTestEmailPermission) + { + + } + -} + + @if (HasSendTestEmailPermission) + { + + +
+ + @L["SendTestEmail"] + + + + + + + @L["SenderEmailAddress"] + + + + + + + + + + @L["TargetEmailAddress"] + + + + + + + + + + @L["Subject"] + + + + + + + + + + @L["Body"] + + + + + + + + + + + + + +
+
+
+ } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs index 1cd8ceeb1b..ebdcff25d3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/EmailSettingGroup/EmailSettingGroupViewComponent.razor.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Components; using Volo.Abp.AspNetCore.Components.Messages; using Volo.Abp.AspNetCore.Components.Web.Configuration; using Volo.Abp.Auditing; +using Volo.Abp.Authorization.Permissions; using Volo.Abp.SettingManagement.Localization; namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement.EmailSettingGroup; @@ -14,6 +15,9 @@ public partial class EmailSettingGroupViewComponent { [Inject] protected IEmailSettingsAppService EmailSettingsAppService { get; set; } + + [Inject] + protected IPermissionChecker PermissionChecker { get; set; } [Inject] private ICurrentApplicationConfigurationCacheResetService CurrentApplicationConfigurationCacheResetService { get; set; } @@ -23,7 +27,17 @@ public partial class EmailSettingGroupViewComponent protected UpdateEmailSettingsViewModel EmailSettings; + protected SendTestEmailViewModel SendTestEmailInput; + protected Validations EmailSettingValidation; + + protected Validations EmailSettingTestValidation; + + protected Modal SendTestEmailModal; + + protected bool HasSendTestEmailPermission { get; set; } + + public EmailSettingGroupViewComponent() { @@ -36,6 +50,8 @@ public partial class EmailSettingGroupViewComponent try { EmailSettings = ObjectMapper.Map(await EmailSettingsAppService.GetAsync()); + HasSendTestEmailPermission = await PermissionChecker.IsGrantedAsync(SettingManagementPermissions.EmailingTest); + SendTestEmailInput = new SendTestEmailViewModel(); } catch (Exception ex) { @@ -64,6 +80,52 @@ public partial class EmailSettingGroupViewComponent } } + protected virtual async Task OpenSendTestEmailModalAsync() + { + try + { + await EmailSettingTestValidation.ClearAll(); + var emailSettings = await EmailSettingsAppService.GetAsync(); + SendTestEmailInput = new SendTestEmailViewModel + { + SenderEmailAddress = emailSettings.DefaultFromAddress, + TargetEmailAddress = CurrentUser.Email, + Subject = L["TestEmailSubject", new Random().Next(1000, 9999)], + Body = L["TestEmailBody"] + }; + + await SendTestEmailModal.Show(); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + protected virtual Task CloseSendTestEmailModalAsync() + { + return InvokeAsync(SendTestEmailModal.Hide); + } + + protected virtual async Task SendTestEmailAsync() + { + try + { + if (!await EmailSettingTestValidation.ValidateAll()) + { + return; + } + + await EmailSettingsAppService.SendTestEmailAsync(ObjectMapper.Map(SendTestEmailInput)); + + await Notify.Success(L["SuccessfullySent"]); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + public class UpdateEmailSettingsViewModel { [MaxLength(256)] @@ -104,4 +166,18 @@ public partial class EmailSettingGroupViewComponent [Display(Name = "DefaultFromDisplayName")] public string DefaultFromDisplayName { get; set; } } + + public class SendTestEmailViewModel + { + [Required] + public string SenderEmailAddress { get; set; } + + [Required] + public string TargetEmailAddress { get; set; } + + [Required] + public string Subject { get; set; } + + public string Body { get; set; } + } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs index 38279c09d4..604996e478 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingManagementBlazorAutoMapperProfile.cs @@ -9,5 +9,7 @@ public class SettingManagementBlazorAutoMapperProfile : Profile { CreateMap(); CreateMap(); + + CreateMap(); } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj index 38991408d5..f6c3e0a102 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj @@ -21,7 +21,7 @@
- + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json index bec50ed27e..d947142885 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/en.json @@ -5,6 +5,16 @@ "SuccessfullySaved": "Successfully saved", "Permission:SettingManagement": "Setting Management", "Permission:Emailing": "Emailing", + "Permission:EmailingTest": "Emailing test", + "SendTestEmail": "Send test email", + "SenderEmailAddress": "Sender email address", + "TargetEmailAddress": "Target email address", + "Subject": "Subject", + "Body": "Body", + "TestEmailSubject": "Test email {0}", + "TestEmailBody": "Test email body message here", + "SuccessfullySent": "Successfully sent", + "Send": "Send", "Menu:Emailing": "Emailing", "SmtpHost": "Host", "SmtpPort": "Port", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json index 7f1ae1c0b7..57397659f1 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/tr.json @@ -5,6 +5,16 @@ "SuccessfullySaved": "Başarıyla Kaydedildi", "Permission:SettingManagement": "Ayarlar yönetimi", "Permission:Emailing": "Email", + "Permission:EmailingTest": "Email testi", + "SendTestEmail": "Test emaili gönder", + "SenderEmailAddress": "Gönderen email adresi", + "TargetEmailAddress": "Hedef email adresi", + "Subject": "Konu", + "Body": "Gövde", + "TestEmailSubject": "Test email {0}", + "TestEmailBody": "E-posta gövdesi mesajını burada test edin", + "SuccessfullySent": "Başarıyla gönderildi", + "Send": "Gönder", "Menu:Emailing": "Email", "SmtpHost": "Sunucu", "SmtpPort": "Port", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json index 8606c7da83..34ab12a79c 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hans.json @@ -5,6 +5,16 @@ "SuccessfullySaved": "保存成功", "Permission:SettingManagement": "设置管理", "Permission:Emailing": "邮件", + "Permission:EmailingTest": "邮件测试", + "SendTestEmail": "发送测试邮件", + "SenderEmailAddress": "发件人邮箱地址", + "TargetEmailAddress": "收件人邮箱地址", + "Subject": "主题", + "Body": "正文", + "TestEmailSubject": "测试邮件 {0}", + "TestEmailBody": "测试邮件内容", + "SuccessfullySent": "发送成功", + "Send": "发送", "Menu:Emailing": "邮件", "SmtpHost": "主机", "SmtpPort": "端口", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json index d01365223d..9cd5350bc9 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo/Abp/SettingManagement/Localization/Resources/AbpSettingManagement/zh-Hant.json @@ -5,6 +5,16 @@ "SuccessfullySaved": "保存成功", "Permission:SettingManagement": "設定管理", "Permission:Emailing": "信箱", + "Permission:EmailingTest": "邮件測試", + "SendTestEmail": "發送測試邮件", + "SenderEmailAddress": "發送者電子郵件地址", + "TargetEmailAddress": "目標電子郵件地址", + "Subject": "主題", + "Body": "體", + "TestEmailSubject": "測試邮件 {0}", + "TestEmailBody": "測試邮件內容", + "SuccessfullySent": "成功發送", + "Send": "發送", "Menu:Emailing": "信箱", "SmtpHost": "主機", "SmtpPort": "Port", diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.Generated.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.Generated.cs index 54895f25f7..c30a526505 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.Generated.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi.Client/ClientProxies/EmailSettingsClientProxy.Generated.cs @@ -27,4 +27,12 @@ public partial class EmailSettingsClientProxy : ClientProxyBase L +@inject IPermissionChecker PermissionChecker @model Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup.EmailSettingGroupViewComponent.UpdateEmailSettingsViewModel
@@ -24,6 +27,12 @@ @L["Save"] + @if (await PermissionChecker.IsGrantedAsync(SettingManagementPermissions.EmailingTest)) + { + + @L["SendTestEmail"] + + } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/Default.js b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/Default.js index c9871bb3d9..ae8e694de3 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/Default.js +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/Default.js @@ -1,16 +1,20 @@ (function ($) { + var _sendTestEmailModal = new abp.ModalManager( + abp.appPath + 'SettingManagement/Components/EmailSettingGroup/SendTestEmailModal' + ); + $(function () { var l = abp.localization.getResource('AbpSettingManagement'); $("#EmailSettingsForm").on('submit', function (event) { event.preventDefault(); - - if(!$(this).valid()) { + + if (!$(this).valid()) { return; } - + var form = $(this).serializeFormToObject(); volo.abp.settingManagement.emailSettings.update(form).then(function (result) { $(document).trigger("AbpSettingSaved"); @@ -21,11 +25,28 @@ $('#SmtpUseDefaultCredentials').change(function () { if (this.checked) { $('#HideSectionWhenUseDefaultCredentialsIsChecked').slideUp(); - } - else { + } else { $('#HideSectionWhenUseDefaultCredentialsIsChecked').slideDown(); } }); + + _sendTestEmailModal.onOpen(function () { + var $form = _sendTestEmailModal.getForm(); + _sendTestEmailModal.getForm().off('abp-ajax-success'); + + $form.on('abp-ajax-success', function () { + _sendTestEmailModal.setResult(); + }); + }) + + _sendTestEmailModal.onResult(function () { + abp.notify.success(l('SuccessfullySent')); + }); + + $("#SendTestEmailButton").click(function (e) { + e.preventDefault(); + _sendTestEmailModal.open(); + }); }); })(jQuery); diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml new file mode 100644 index 0000000000..69834f547e --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml @@ -0,0 +1,31 @@ +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal +@using Volo.Abp.SettingManagement.Localization +@using Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup +@model SendTestEmailModal +@inject IHtmlLocalizer L +@{ + Layout = null; +} + + + + + + + + + + + + @L["Cancel"] + + @L["Send"] + + + + + \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml.cs new file mode 100644 index 0000000000..4fae4a8649 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/SendTestEmailModal.cshtml.cs @@ -0,0 +1,59 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.SettingManagement.Localization; + +namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.EmailSettingGroup; + +[Authorize(SettingManagementPermissions.EmailingTest)] +public class SendTestEmailModal : AbpPageModel +{ + [BindProperty] + public SendTestEmailViewModel Input { get; set; } + + protected IEmailSettingsAppService EmailSettingsAppService { get; } + + public SendTestEmailModal(IEmailSettingsAppService emailSettingsAppService) + { + LocalizationResourceType = typeof(AbpSettingManagementResource); + EmailSettingsAppService = emailSettingsAppService; + } + + public async Task OnGetAsync() + { + var emailSettings = await EmailSettingsAppService.GetAsync(); + Input = new SendTestEmailViewModel + { + SenderEmailAddress = emailSettings.DefaultFromAddress, + TargetEmailAddress = CurrentUser.Email, + Subject = L["TestEmailSubject", new Random().Next(1000, 9999)], + Body = L["TestEmailBody"] + }; + } + + public async Task OnPostAsync() + { + ValidateModel(); + + await EmailSettingsAppService.SendTestEmailAsync(ObjectMapper.Map(Input)); + + return NoContent(); + } + + public class SendTestEmailViewModel + { + [Required] + public string SenderEmailAddress { get; set; } + + [Required] + public string TargetEmailAddress { get; set; } + + [Required] + public string Subject { get; set; } + + public string Body { get; set; } + } +} \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/SettingManagementWebAutoMapperProfile.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/SettingManagementWebAutoMapperProfile.cs index 19e512da56..77afa99224 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/SettingManagementWebAutoMapperProfile.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/SettingManagementWebAutoMapperProfile.cs @@ -8,5 +8,7 @@ public class SettingManagementWebAutoMapperProfile : Profile public SettingManagementWebAutoMapperProfile() { CreateMap(); + + CreateMap(); } } \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj index b802865379..7b77c68f22 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj @@ -23,7 +23,7 @@
- + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/wwwroot/client-proxies/settingManagement-proxy.js b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/wwwroot/client-proxies/settingManagement-proxy.js index b3b5f5731a..2c227c39a9 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/wwwroot/client-proxies/settingManagement-proxy.js +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/wwwroot/client-proxies/settingManagement-proxy.js @@ -27,6 +27,15 @@ }, ajaxParams)); }; + volo.abp.settingManagement.emailSettings.sendTestEmail = function(input, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/setting-management/emailing/send-test-email', + type: 'POST', + dataType: null, + data: JSON.stringify(input) + }, ajaxParams)); + }; + })(); })(); diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj index effe1e51f4..7aa53a7476 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj @@ -25,7 +25,7 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj index a93043f4a8..57bcb8be37 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj @@ -39,7 +39,7 @@ - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj index 4ece64bd2a..938b36c9e8 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs index f6289f8584..6bcbe5e655 100644 --- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs +++ b/modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs @@ -1,10 +1,11 @@ using System; +using Volo.Abp.Data; using Volo.Abp.EventBus; namespace Volo.Abp.Users; [EventName("Volo.Abp.Users.User")] -public class UserEto : IUserData +public class UserEto : IUserData, IHasExtraProperties { public Guid Id { get; set; } @@ -23,4 +24,6 @@ public class UserEto : IUserData public string PhoneNumber { get; set; } public bool PhoneNumberConfirmed { get; set; } + + public ExtraPropertyDictionary ExtraProperties { get; set; } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj index 5d3d56720d..e3eccbec46 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index 0bc1a6dfc4..9927a3be71 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/virtual-file-explorer": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/virtual-file-explorer": "^5.3.0-rc.2" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js index a23198e806..9445e4e7f4 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index d687b3b2c5..94efe4163c 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" - integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" - integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" - "@abp/bootstrap" "~5.3.0-rc.1" - "@abp/bootstrap-datepicker" "~5.3.0-rc.1" - "@abp/datatables.net-bs5" "~5.3.0-rc.1" - "@abp/font-awesome" "~5.3.0-rc.1" - "@abp/jquery-form" "~5.3.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" - "@abp/lodash" "~5.3.0-rc.1" - "@abp/luxon" "~5.3.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" - "@abp/select2" "~5.3.0-rc.1" - "@abp/sweetalert2" "~5.3.0-rc.1" - "@abp/timeago" "~5.3.0-rc.1" - "@abp/toastr" "~5.3.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" - integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.2.tgz#49da0f1ad2c0ec40eaacccae6874863fde954dda" + integrity sha512-Hb3ukaYMDhftkk7kQ9jVpkqhEoll8wU39/Qdy8JOlrJw3SDqqckWbVcJQkvetqa3mChy6kAVG3xe9ywG1h/6jA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.2.tgz#a4e6f033ee17fe7196e94047640bc826a69694a6" + integrity sha512-uKyb8by2dqYvCr9TCD0JKg2W+eLNcHanmQDL+aoI9OAExEEI/DYxw2a5++OntJGvmbcA6o1envmvOjqqsZuX0g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.2" + "@abp/bootstrap" "~5.3.0-rc.2" + "@abp/bootstrap-datepicker" "~5.3.0-rc.2" + "@abp/datatables.net-bs5" "~5.3.0-rc.2" + "@abp/font-awesome" "~5.3.0-rc.2" + "@abp/jquery-form" "~5.3.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.2" + "@abp/lodash" "~5.3.0-rc.2" + "@abp/luxon" "~5.3.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.2" + "@abp/select2" "~5.3.0-rc.2" + "@abp/sweetalert2" "~5.3.0-rc.2" + "@abp/timeago" "~5.3.0-rc.2" + "@abp/toastr" "~5.3.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.2.tgz#93a3c331cc75d2fbdd466a42777040466295f982" + integrity sha512-10RgXgZChbXNtXMblvvEZQctufJlP29RabfIOKWBTBMtU+jUgtDsLUwmF6Oi/65LLImOUogmBCb9MxjNm71iAQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,171 +41,171 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" - integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== +"@abp/bootstrap-datepicker@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.2.tgz#228735714f2baeb42e864c175e0aed3f855249d7" + integrity sha512-jZ7vGvsLjnXwpzvQ6vjKHWBkiptYBnEDVIfQ/zKV8kvkhdu+xxOP/u1LM90NSR2YckjIRj8+mINEcrnWhXgRNw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" - integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== +"@abp/bootstrap@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.2.tgz#c410f44d987d09b5a74fd58417d03788fa878884" + integrity sha512-jb58M67kWldW35zTjVDFLaCj4STly2eU40COYFgjPQSH7F21DvMdX69Cp3jpmHaxm8VQE9izgW0NV8+oGlFyAw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" bootstrap "^5.1.3" -"@abp/clipboard@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.1.tgz#da893847d2d86f53f99dfefc8898d14410d45600" - integrity sha512-Eqkgd3ZJXHE5xovfb+2SzGxzISCjzLsGYSV/uZs2BYVfyIZ0+D2Jx0jOT8j8oVPAlRTCCMAbvoxMKZJZr/WC0Q== +"@abp/clipboard@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.3.0-rc.2.tgz#e9a4f38a5d33d88a5c2440422a87e403671b3ed8" + integrity sha512-8OKcmGych7cmcYn8tuUmGo+mMlThNBDZA71c/cVAGw1RuLM16SCgeJVeVFhyUrmkBwH/E5Hfh06ZLlIrZKj36Q== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" clipboard "^2.0.8" -"@abp/core@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" - integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== +"@abp/core@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.2.tgz#3a3c6d187c502436bb02db99be3720f61628c924" + integrity sha512-/BEO90D7ibeyZxfCQHv2bbb9y/SpfZtaw0A8gmQlYrH3rZ3Th935v5XjCeYem8IGJ8fDZO7CRzW5TBsku/PukA== dependencies: - "@abp/utils" "~5.3.0-rc.1" + "@abp/utils" "~5.3.0-rc.2" -"@abp/datatables.net-bs5@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" - integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== +"@abp/datatables.net-bs5@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.2.tgz#452c2112fbe3cdac8c0d12bb626017f7c6333a45" + integrity sha512-Rk1uY76dGMnBFYILdXrb6Oc+jjblLdSzGZvDH1dyoFYs0bLWsjqVsOIE+kCjO447PgDOLyF+4nurLj+A9yCkEg== dependencies: - "@abp/datatables.net" "~5.3.0-rc.1" + "@abp/datatables.net" "~5.3.0-rc.2" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" - integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== +"@abp/datatables.net@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.2.tgz#e7156085d76ab0b20e41fe92f9c99b14822b5f6a" + integrity sha512-aPSSmnBC939uYHR9fxxuvtxq4217qG3f8uf18ar7yWJwzWAYMOOhkmK0rEOqn86ObuXdjMAly7ThyfL6RH2iNQ== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" datatables.net "^1.11.4" -"@abp/font-awesome@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" - integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== +"@abp/font-awesome@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.2.tgz#30995f5f5f6d604cd2241ee677ec14dcfc78377d" + integrity sha512-KFwYcjiq01RxI75qnbDt+G8zFcSEJRurHHZQwcI7ySjtQV5xM41zycOYIOV3SKz/gcyYyBBL5UeJPjsE8cu+Fw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" - integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== +"@abp/jquery-form@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.2.tgz#53561d6966f25bf6f7e91dcb89032fecd2c35d1f" + integrity sha512-94ExZ5q02s7ANpFyQnEcuSUjyra+32jMMkV0ZITbjWlmFRcXEogeIF3q3B4XswRi+yf67kQg7ynYCbGR7JESDg== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" - integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.2.tgz#957387fb88414a50a5d3d84089ab3704b710645f" + integrity sha512-dIXsxqQ0x+xiLCA2x6xWR3wIvfpT0zukLFOrkCVNSc+mnWWyYlavRnGl3f5W/4jQSPZ9Ao/txhsThfkvO+Mu0Q== dependencies: - "@abp/jquery-validation" "~5.3.0-rc.1" + "@abp/jquery-validation" "~5.3.0-rc.2" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" - integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== +"@abp/jquery-validation@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.2.tgz#d866b10ffbfc1852df11122aa2cf6a56e50819b3" + integrity sha512-DAxwKjalhMZNCuXBS6Ai9RlIDsEzm0SGnFDApQIo/i6HGKoK4J/eTnFZ175xZMQ79yrxe71MKWR29l/+PuwcRw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" jquery-validation "^1.19.3" -"@abp/jquery@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" - integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== +"@abp/jquery@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.2.tgz#8a5008123f5dbf1276c719ac45101161e9d9b793" + integrity sha512-VjA22n17pPKqj6jZUk6qxpqx2UT5Uv6q/AvyJtacDC3D1MXfrnSWxi9FAPFp4N52i4knkfuKFZtuFlFSkQe4FQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" jquery "~3.6.0" -"@abp/lodash@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" - integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== +"@abp/lodash@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.2.tgz#51600a0ba49c6d4060c3e280b1f1d62ed7f48a16" + integrity sha512-qreUjH0umhsGKRSYpswcX1SAF1iNBp/AP32LMfvezvPaCA+KQFWknHuOTV2jn1tYC5c7KJTTTp46jRTi88VSHQ== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" lodash "^4.17.21" -"@abp/luxon@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" - integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== +"@abp/luxon@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.2.tgz#6ea39998aaba2a3bd6e6dd3c9cacc1a0f56afa8f" + integrity sha512-9++6ZD0zEmJcH3iSNcTtC0haEVbQgxzoFx1wpEXsB3YVuBKUjJnJCXMbt0Qmkkq40tclmG8bfORRYhII29TLWA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" - integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.2.tgz#069e071472eb8727260e9a1b5322e30cdaebffc9" + integrity sha512-JPaoNiYWR6T7Osx4ezURFanxC9ex1U9zr+7Fko1mmig8oZ+OHsk1cbdNBD5ChgAVsHdqK2eJ4iobDjhsDfMYiA== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.1.tgz#ee1a49b8bd0af2a29aa7bfb93d22ce07a4edbe70" - integrity sha512-oOnzwUtI6q2u7iE/YWQEULm1I+f7Bo+0tQ9rYlzIoalBRnqN57Zw0VMf5AHq8qjn6GiInehPtU9wsaVTPqXmtw== +"@abp/prismjs@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.3.0-rc.2.tgz#8a5ed8032a1e8ba7644adbffae9efdc18c3811f7" + integrity sha512-G7ab7PL0TcjtvA9rdFj0RajP0pXZrXmIzKZ/vtQqW6mNLXNCI1OKJ/fAXXwS35gFEyVPvn9xKPnuYlhwqWl6ug== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/core" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/core" "~5.3.0-rc.2" prismjs "^1.26.0" -"@abp/select2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" - integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== +"@abp/select2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.2.tgz#50e622f2296c3594e89699e8747dcf520fb4415d" + integrity sha512-HwfiEgeECkzQhCf/3Je/V7pRtRvr3YQtX1gAWpI6Ty2P+nTV4ue/l1w5Si+59vuJm3JP+fCnSFPlHXxahfL/Gw== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" - integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== +"@abp/sweetalert2@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.2.tgz#41d19b81011e3d5c9d12b8d6ec6da12e52553683" + integrity sha512-6Qx2WIpXQI/ydfX9P7cMISvwrFi4UAPzkuNkhPOZT7chq64auz88Rtqyw+SLXLnCCQ+e31/ekFldijOG9CbV1g== dependencies: - "@abp/core" "~5.3.0-rc.1" + "@abp/core" "~5.3.0-rc.2" sweetalert2 "^11.3.6" -"@abp/timeago@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" - integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== +"@abp/timeago@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.2.tgz#16f73659e83643d82eafac716115dbf0333cce98" + integrity sha512-fFvBX65Bzvg+x4vClzSh31FJJ2m6b2/s+IJ4/t4FNDxDqybfOzkAfRzPm7NVDw5Avu1fjRLwFhQueb0sECQD/w== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" - integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== +"@abp/toastr@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.2.tgz#e868ffe7acc3e1838dd008f936e909250e360cc8" + integrity sha512-0BLjOSalZw7NdRXw4/SwPP7N+ChFGO2elEJ7zyd0c8Bi+Gz5lqL6ZW47O1ANKSv9HnPoyRsPDSBiCIvXXtlFOw== dependencies: - "@abp/jquery" "~5.3.0-rc.1" + "@abp/jquery" "~5.3.0-rc.2" toastr "^2.1.4" -"@abp/utils@~5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" - integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== dependencies: just-compare "^1.3.0" -"@abp/virtual-file-explorer@^5.3.0-rc.1": - version "5.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-5.3.0-rc.1.tgz#20f596d1e36b4f874e55b019ac1ba101cd398b80" - integrity sha512-xZSh+gQvJbVlR8AlLXWX6fvg9zMxWLJRMzB7ZY5g7QfOKalgKWoY0qTD1ugmUtHV2BdqL/2ZEbD4/A4LnBTRIQ== +"@abp/virtual-file-explorer@^5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-5.3.0-rc.2.tgz#12dc045a2c96cb8bf9961f26f82d36a69d92c8d4" + integrity sha512-cKI+6xOLbDkNK308ViUv0JYLl2DmF31jtES2Slar7/UoW/24iz9txSZcjCfM42Z15mw3p34Mx9BjtPQJMnHreg== dependencies: - "@abp/clipboard" "~5.3.0-rc.1" - "@abp/prismjs" "~5.3.0-rc.1" + "@abp/clipboard" "~5.3.0-rc.2" + "@abp/prismjs" "~5.3.0-rc.2" "@fortawesome/fontawesome-free@^5.15.4": version "5.15.4" diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.csproj b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.csproj index 27f50e0689..e314e532f9 100644 --- a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.csproj +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.csproj @@ -34,7 +34,7 @@ - + diff --git a/npm/lerna.json b/npm/lerna.json index dcf65cf2bf..c30835c26b 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index 9298c36b87..745141ad08 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 38d37ac91f..e0f4f87346 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -38,7 +38,7 @@ }, "private": true, "devDependencies": { - "@abp/utils": "~5.3.0-rc.1", + "@abp/utils": "~5.3.0-rc.2", "@angular-devkit/build-angular": "13.3.5", "@angular-devkit/build-ng-packagr": "^0.1002.0", "@angular-devkit/schematics-cli": "~12.2.0", @@ -57,17 +57,17 @@ "@angular/platform-browser": "13.3.6", "@angular/platform-browser-dynamic": "13.3.6", "@angular/router": "13.3.6", - "@abp/ng.account": "~5.3.0-rc.1", - "@abp/ng.account.core": "~5.3.0-rc.1", - "@abp/ng.core": "~5.3.0-rc.1", - "@abp/ng.feature-management": "~5.3.0-rc.1", - "@abp/ng.identity": "~5.3.0-rc.1", - "@abp/ng.permission-management": "~5.3.0-rc.1", - "@abp/ng.schematics": "~5.3.0-rc.1", - "@abp/ng.setting-management": "~5.3.0-rc.1", - "@abp/ng.tenant-management": "~5.3.0-rc.1", - "@abp/ng.theme.basic": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account": "~5.3.0-rc.2", + "@abp/ng.account.core": "~5.3.0-rc.2", + "@abp/ng.core": "~5.3.0-rc.2", + "@abp/ng.feature-management": "~5.3.0-rc.2", + "@abp/ng.identity": "~5.3.0-rc.2", + "@abp/ng.permission-management": "~5.3.0-rc.2", + "@abp/ng.schematics": "~5.3.0-rc.2", + "@abp/ng.setting-management": "~5.3.0-rc.2", + "@abp/ng.tenant-management": "~5.3.0-rc.2", + "@abp/ng.theme.basic": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~12.0.0-beta.4", "@ngneat/spectator": "^10.0.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index 8755b6ca4a..4985bd8b0b 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.core": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account-core/src/lib/tenant-box.service.ts b/npm/ng-packs/packages/account-core/src/lib/tenant-box.service.ts index d8212b39e8..b59191f3d1 100644 --- a/npm/ng-packs/packages/account-core/src/lib/tenant-box.service.ts +++ b/npm/ng-packs/packages/account-core/src/lib/tenant-box.service.ts @@ -23,7 +23,7 @@ export class TenantBoxService { private tenantService: AbpTenantService, private sessionState: SessionStateService, private configState: ConfigStateService, - ) {} + ) { } onSwitch() { const tenant = this.sessionState.getTenant(); @@ -40,7 +40,7 @@ export class TenantBoxService { this.modalBusy = true; this.tenantService - .findTenantByName(this.name, {}) + .findTenantByName(this.name) .pipe(finalize(() => (this.modalBusy = false))) .subscribe(({ success, tenantId: id, ...tenant }) => { if (!success) { diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 111550d7ab..ec7606ded0 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account.core": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 15acda73f0..5a0b93d69f 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=5.3.0-rc.1", - "@abp/ng.theme.shared": ">=5.3.0-rc.1", + "@abp/ng.core": ">=5.3.0-rc.2", + "@abp/ng.theme.shared": ">=5.3.0-rc.2", "@ng-bootstrap/ng-bootstrap": ">=10.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 7bd3f93c5d..2e4f957eeb 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "~5.3.0-rc.1", + "@abp/utils": "~5.3.0-rc.2", "angular-oauth2-oidc": "^13.0.1", "just-clone": "^3.2.1", "just-compare": "^1.4.0", diff --git a/npm/ng-packs/packages/core/src/lib/directives/form-submit.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/form-submit.directive.ts index 2ca2b9757d..a2cba56baa 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/form-submit.directive.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/form-submit.directive.ts @@ -27,6 +27,9 @@ export class FormSubmitDirective implements OnInit { @Input() notValidateOnSubmit: string | boolean; + @Input() + markAsDirtyWhenSubmit = true + @Output() readonly ngSubmit = new EventEmitter(); executedNgSubmit = false; @@ -36,11 +39,14 @@ export class FormSubmitDirective implements OnInit { private host: ElementRef, private cdRef: ChangeDetectorRef, private subscription: SubscriptionService, - ) {} + ) { } ngOnInit() { this.subscription.addOne(this.formGroupDirective.ngSubmit, () => { - this.markAsDirty(); + if (this.markAsDirtyWhenSubmit) { + this.markAsDirty(); + } + this.executedNgSubmit = true; }); diff --git a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json index bb69808d57..7a3afdf5ac 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json +++ b/npm/ng-packs/packages/core/src/lib/proxy/generate-proxy.json @@ -3,52 +3,50 @@ "abp" ], "modules": { - "languageManagement": { - "rootPath": "languageManagement", - "remoteServiceName": "LanguageManagement", + "permissionManagement": { + "rootPath": "permissionManagement", + "remoteServiceName": "AbpPermissionManagement", "controllers": { - "Volo.Abp.LanguageManagement.LanguageController": { - "controllerName": "Language", - "type": "Volo.Abp.LanguageManagement.LanguageController", + "Volo.Abp.PermissionManagement.PermissionsController": { + "controllerName": "Permissions", + "controllerGroupName": "Permissions", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.PermissionManagement.PermissionsController", "interfaces": [ { - "type": "Volo.Abp.LanguageManagement.ILanguageAppService" + "type": "Volo.Abp.PermissionManagement.IPermissionAppService" } ], "actions": { - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/language-management/languages/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/language-management/languages", + "url": "api/permission-management/permissions", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput, Volo.Abp.LanguageManagement.Application.Contracts", - "type": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput", + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -56,11 +54,11 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "ResourceName", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -68,47 +66,52 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", + "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + }, + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/permission-management/permissions", + "supportedVersions": [], + "parametersOnMethod": [ { - "nameOnMethod": "input", - "name": "BaseCultureName", - "jsonName": null, + "name": "providerName", + "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "defaultValue": null }, { - "nameOnMethod": "input", - "name": "TargetCultureName", - "jsonName": null, + "name": "providerKey", + "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "defaultValue": null }, { - "nameOnMethod": "input", - "name": "GetOnlyEmptyValues", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", + "name": "input", + "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, + "defaultValue": null + } + ], + "parameters": [ { - "nameOnMethod": "input", - "name": "Sorting", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -116,43 +119,65 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "SkipCount", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "" }, { "nameOnMethod": "input", - "name": "MaxResultCount", + "name": "input", "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", + "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", + "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "bindingSourceId": "Body", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.PermissionManagement.IPermissionAppService" + } + } + } + } + }, + "multi-tenancy": { + "rootPath": "multi-tenancy", + "remoteServiceName": "AbpTenantManagement", + "controllers": { + "Volo.Abp.TenantManagement.TenantController": { + "controllerName": "Tenant", + "controllerGroupName": "Tenant", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.TenantManagement.TenantController", + "interfaces": [ + { + "type": "Volo.Abp.TenantManagement.ITenantAppService" + } + ], + "actions": { "GetAsyncById": { "uniqueName": "GetAsyncById", "name": "GetAsync", "httpMethod": "GET", - "url": "api/language-management/languages/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -179,22 +204,97 @@ } ], "returnValue": { - "type": "Volo.Abp.LanguageManagement.Dto.LanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.LanguageDto" - } + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + }, + "GetListAsyncByInput": { + "uniqueName": "GetListAsyncByInput", + "name": "GetListAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.TenantManagement.GetTenantsInput, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.GetTenantsInput", + "typeSimple": "Volo.Abp.TenantManagement.GetTenantsInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "Filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "Sorting", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + } + ], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "CreateAsyncByInput": { "uniqueName": "CreateAsyncByInput", "name": "CreateAsync", "httpMethod": "POST", - "url": "api/language-management/languages", + "url": "api/multi-tenancy/tenants", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto, Volo.Abp.LanguageManagement.Application.Contracts", - "type": "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantCreateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null } @@ -204,8 +304,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto", + "type": "Volo.Abp.TenantManagement.TenantCreateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -214,15 +314,17 @@ } ], "returnValue": { - "type": "Volo.Abp.LanguageManagement.Dto.LanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.LanguageDto" - } + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, "UpdateAsyncByIdAndInput": { "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/language-management/languages/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -235,9 +337,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto, Volo.Abp.LanguageManagement.Application.Contracts", - "type": "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto", + "typeAsString": "Volo.Abp.TenantManagement.TenantUpdateDto, Volo.Abp.TenantManagement.Application.Contracts", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null } @@ -259,8 +361,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto", + "type": "Volo.Abp.TenantManagement.TenantUpdateDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -269,15 +371,17 @@ } ], "returnValue": { - "type": "Volo.Abp.LanguageManagement.Dto.LanguageDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.LanguageDto" - } + "type": "Volo.Abp.TenantManagement.TenantDto", + "typeSimple": "Volo.Abp.TenantManagement.TenantDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, "DeleteAsyncById": { "uniqueName": "DeleteAsyncById", "name": "DeleteAsync", "httpMethod": "DELETE", - "url": "api/language-management/languages/{id}", + "url": "api/multi-tenancy/tenants/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -306,13 +410,15 @@ "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" }, - "SetAsDefaultAsyncById": { - "uniqueName": "SetAsDefaultAsyncById", - "name": "SetAsDefaultAsync", - "httpMethod": "PUT", - "url": "api/language-management/languages/{id}/set-as-default", + "GetDefaultConnectionStringAsyncById": { + "uniqueName": "GetDefaultConnectionStringAsyncById", + "name": "GetDefaultConnectionStringAsync", + "httpMethod": "GET", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { @@ -339,104 +445,52 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetResourcesAsync": { - "uniqueName": "GetResourcesAsync", - "name": "GetResourcesAsync", - "httpMethod": "GET", - "url": "api/language-management/languages/resources", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.LanguageManagement.Dto.LanguageResourceDto]" - } - }, - "GetCulturelistAsync": { - "uniqueName": "GetCulturelistAsync", - "name": "GetCulturelistAsync", - "httpMethod": "GET", - "url": "api/language-management/languages/culture-list", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.LanguageManagement.Dto.CultureInfoDto]" - } + "type": "System.String", + "typeSimple": "string" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" }, - "GetFlagListAsync": { - "uniqueName": "GetFlagListAsync", - "name": "GetFlagListAsync", - "httpMethod": "GET", - "url": "api/language-management/languages/flag-list", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[string]" - } - } - } - }, - "Volo.Abp.LanguageManagement.LanguageTextController": { - "controllerName": "LanguageText", - "type": "Volo.Abp.LanguageManagement.LanguageTextController", - "interfaces": [ - { - "type": "Volo.Abp.LanguageManagement.ILanguageTextAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/language-management/language-texts", + "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString": { + "uniqueName": "UpdateDefaultConnectionStringAsyncByIdAndDefaultConnectionString", + "name": "UpdateDefaultConnectionStringAsync", + "httpMethod": "PUT", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput, Volo.Abp.LanguageManagement.Application.Contracts", - "type": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + }, + { + "name": "defaultConnectionString", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ResourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" }, { - "nameOnMethod": "input", - "name": "BaseCultureName", + "nameOnMethod": "defaultConnectionString", + "name": "defaultConnectionString", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -444,99 +498,82 @@ "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + }, + "DeleteDefaultConnectionStringAsyncById": { + "uniqueName": "DeleteDefaultConnectionStringAsyncById", + "name": "DeleteDefaultConnectionStringAsync", + "httpMethod": "DELETE", + "url": "api/multi-tenancy/tenants/{id}/default-connection-string", + "supportedVersions": [], + "parametersOnMethod": [ { - "nameOnMethod": "input", - "name": "TargetCultureName", - "jsonName": null, - "type": "System.String", + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "GetOnlyEmptyValues", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, + "defaultValue": null + } + ], + "parameters": [ { - "nameOnMethod": "input", - "name": "Sorting", + "nameOnMethod": "id", + "name": "id", "jsonName": null, - "type": "System.String", + "type": "System.Guid", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncByResourceNameAndCultureNameAndNameAndBaseCultureName": { - "uniqueName": "GetAsyncByResourceNameAndCultureNameAndNameAndBaseCultureName", + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.TenantManagement.ITenantAppService" + } + } + } + } + }, + "featureManagement": { + "rootPath": "featureManagement", + "remoteServiceName": "AbpFeatureManagement", + "controllers": { + "Volo.Abp.FeatureManagement.FeaturesController": { + "controllerName": "Features", + "controllerGroupName": "Features", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.FeatureManagement.FeaturesController", + "interfaces": [ + { + "type": "Volo.Abp.FeatureManagement.IFeatureAppService" + } + ], + "actions": { + "GetAsyncByProviderNameAndProviderKey": { + "uniqueName": "GetAsyncByProviderNameAndProviderKey", "name": "GetAsync", "httpMethod": "GET", - "url": "api/language-management/language-texts/{resourceName}/{cultureName}/{name}", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "resourceName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "cultureName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "name", + "name": "providerName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -544,7 +581,7 @@ "defaultValue": null }, { - "name": "baseCultureName", + "name": "providerKey", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -554,44 +591,20 @@ ], "parameters": [ { - "nameOnMethod": "resourceName", - "name": "resourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "cultureName", - "name": "cultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "name", - "name": "name", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" }, { - "nameOnMethod": "baseCultureName", - "name": "baseCultureName", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, "type": "System.String", "typeSimple": "string", @@ -603,27 +616,21 @@ } ], "returnValue": { - "type": "Volo.Abp.LanguageManagement.Dto.LanguageTextDto", - "typeSimple": "Volo.Abp.LanguageManagement.Dto.LanguageTextDto" - } + "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", + "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" }, - "UpdateAsyncByResourceNameAndCultureNameAndNameAndValue": { - "uniqueName": "UpdateAsyncByResourceNameAndCultureNameAndNameAndValue", + "UpdateAsyncByProviderNameAndProviderKeyAndInput": { + "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/language-management/language-texts/{resourceName}/{cultureName}/{name}", + "url": "api/feature-management/features", "supportedVersions": [], "parametersOnMethod": [ { - "name": "resourceName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "cultureName", + "name": "providerName", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -631,7 +638,7 @@ "defaultValue": null }, { - "name": "name", + "name": "providerKey", "typeAsString": "System.String, System.Private.CoreLib", "type": "System.String", "typeSimple": "string", @@ -639,215 +646,117 @@ "defaultValue": null }, { - "name": "value", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "resourceName", - "name": "resourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "cultureName", - "name": "cultureName", + "nameOnMethod": "providerName", + "name": "providerName", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" }, { - "nameOnMethod": "name", - "name": "name", + "nameOnMethod": "providerKey", + "name": "providerKey", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", + "constraintTypes": null, + "bindingSourceId": "ModelBinding", "descriptorName": "" }, { - "nameOnMethod": "value", - "name": "value", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", + "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.FeatureManagement.IFeatureAppService" + } + } + } + } + }, + "settingManagement": { + "rootPath": "settingManagement", + "remoteServiceName": "SettingManagement", + "controllers": { + "Volo.Abp.SettingManagement.EmailSettingsController": { + "controllerName": "EmailSettings", + "controllerGroupName": "EmailSettings", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.SettingManagement.EmailSettingsController", + "interfaces": [ + { + "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService" + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/setting-management/emailing", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.SettingManagement.EmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" }, - "RestoreToDefaultAsyncByResourceNameAndCultureNameAndName": { - "uniqueName": "RestoreToDefaultAsyncByResourceNameAndCultureNameAndName", - "name": "RestoreToDefaultAsync", - "httpMethod": "PUT", - "url": "api/language-management/language-texts/{resourceName}/{cultureName}/{name}/restore", + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "POST", + "url": "api/setting-management/emailing", "supportedVersions": [], "parametersOnMethod": [ { - "name": "resourceName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "cultureName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "resourceName", - "name": "resourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "cultureName", - "name": "cultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "name", - "name": "name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "account": { - "rootPath": "account", - "remoteServiceName": "AbpAccountPublic", - "controllers": { - "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.AccountController": { - "controllerName": "Account", - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.AccountController", - "interfaces": [], - "actions": { - "LoginByLogin": { - "uniqueName": "LoginByLogin", - "name": "Login", - "httpMethod": "POST", - "url": "api/account/login", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "login", - "typeAsString": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Pro.Public.Web", - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "login", - "name": "login", - "jsonName": null, - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult" - } - }, - "LinkLoginByLogin": { - "uniqueName": "LinkLoginByLogin", - "name": "LinkLogin", - "httpMethod": "POST", - "url": "api/account/linkLogin", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "login", - "typeAsString": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo, Volo.Abp.Account.Pro.Public.Web", - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo", + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo", + "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", + "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -855,47 +764,36 @@ "descriptorName": "" } ], - "returnValue": { - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult" - } - }, - "Logout": { - "uniqueName": "Logout", - "name": "Logout", - "httpMethod": "GET", - "url": "api/account/logout", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" }, - "CheckPasswordByLogin": { - "uniqueName": "CheckPasswordByLogin", - "name": "CheckPassword", + "SendTestEmailAsyncByInput": { + "uniqueName": "SendTestEmailAsyncByInput", + "name": "SendTestEmailAsync", "httpMethod": "POST", - "url": "api/account/checkPassword", + "url": "api/setting-management/emailing/send-test-email", "supportedVersions": [], "parametersOnMethod": [ { - "name": "login", - "typeAsString": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Pro.Public.Web", - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "name": "input", + "typeAsString": "Volo.Abp.SettingManagement.SendTestEmailInput, Volo.Abp.SettingManagement.Application.Contracts", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "login", - "name": "login", + "nameOnMethod": "input", + "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "type": "Volo.Abp.SettingManagement.SendTestEmailInput", + "typeSimple": "Volo.Abp.SettingManagement.SendTestEmailInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -904,14 +802,25 @@ } ], "returnValue": { - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult" - } + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.SettingManagement.IEmailSettingsAppService" } } - }, + } + } + }, + "account": { + "rootPath": "account", + "remoteServiceName": "AbpAccount", + "controllers": { "Volo.Abp.Account.AccountController": { "controllerName": "Account", + "controllerGroupName": "Account", + "isRemoteService": true, + "apiVersion": null, "type": "Volo.Abp.Account.AccountController", "interfaces": [ { @@ -928,7 +837,7 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Pro.Public.Application.Contracts", + "typeAsString": "Volo.Abp.Account.RegisterDto, Volo.Abp.Account.Application.Contracts", "type": "Volo.Abp.Account.RegisterDto", "typeSimple": "Volo.Abp.Account.RegisterDto", "isOptional": false, @@ -952,7 +861,9 @@ "returnValue": { "type": "Volo.Abp.Identity.IdentityUserDto", "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, "SendPasswordResetCodeAsyncByInput": { "uniqueName": "SendPasswordResetCodeAsyncByInput", @@ -963,7 +874,7 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Pro.Public.Application.Contracts", + "typeAsString": "Volo.Abp.Account.SendPasswordResetCodeDto, Volo.Abp.Account.Application.Contracts", "type": "Volo.Abp.Account.SendPasswordResetCodeDto", "typeSimple": "Volo.Abp.Account.SendPasswordResetCodeDto", "isOptional": false, @@ -987,7 +898,9 @@ "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" }, "ResetPasswordAsyncByInput": { "uniqueName": "ResetPasswordAsyncByInput", @@ -998,7 +911,7 @@ "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Pro.Public.Application.Contracts", + "typeAsString": "Volo.Abp.Account.ResetPasswordDto, Volo.Abp.Account.Application.Contracts", "type": "Volo.Abp.Account.ResetPasswordDto", "typeSimple": "Volo.Abp.Account.ResetPasswordDto", "isOptional": false, @@ -1022,66 +935,95 @@ "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } - }, - "GetConfirmationStateAsyncById": { - "uniqueName": "GetConfirmationStateAsyncById", - "name": "GetConfirmationStateAsync", - "httpMethod": "GET", - "url": "api/account/confirmation-state", + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IAccountAppService" + } + } + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController": { + "controllerName": "Account", + "controllerGroupName": "Login", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController", + "interfaces": [], + "actions": { + "LoginByLogin": { + "uniqueName": "LoginByLogin", + "name": "Login", + "httpMethod": "POST", + "url": "api/account/login", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "bindingSourceId": "Body", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Account.IdentityUserConfirmationStateDto", - "typeSimple": "Volo.Abp.Account.IdentityUserConfirmationStateDto" - } + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + }, + "Logout": { + "uniqueName": "Logout", + "name": "Logout", + "httpMethod": "GET", + "url": "api/account/logout", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" }, - "SendPhoneNumberConfirmationTokenAsyncByInput": { - "uniqueName": "SendPhoneNumberConfirmationTokenAsyncByInput", - "name": "SendPhoneNumberConfirmationTokenAsync", + "CheckPasswordByLogin": { + "uniqueName": "CheckPasswordByLogin", + "name": "CheckPassword", "httpMethod": "POST", - "url": "api/account/send-phone-number-confirmation-token", + "url": "api/account/check-password", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto", - "typeSimple": "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto", + "name": "login", + "typeAsString": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo, Volo.Abp.Account.Web", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "login", + "name": "login", "jsonName": null, - "type": "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto", - "typeSimple": "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto", + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1090,22 +1032,53 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" + } + } + }, + "Volo.Abp.Account.ProfileController": { + "controllerName": "Profile", + "controllerGroupName": "Profile", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.Account.ProfileController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IProfileAppService" + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" }, - "SendEmailConfirmationTokenAsyncByInput": { - "uniqueName": "SendEmailConfirmationTokenAsyncByInput", - "name": "SendEmailConfirmationTokenAsync", - "httpMethod": "POST", - "url": "api/account/send-email-confirmation-token", + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/account/my-profile", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.SendEmailConfirmationTokenDto, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.SendEmailConfirmationTokenDto", - "typeSimple": "Volo.Abp.Account.SendEmailConfirmationTokenDto", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null } @@ -1115,8 +1088,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.SendEmailConfirmationTokenDto", - "typeSimple": "Volo.Abp.Account.SendEmailConfirmationTokenDto", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1125,22 +1098,24 @@ } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" }, - "ConfirmPhoneNumberAsyncByInput": { - "uniqueName": "ConfirmPhoneNumberAsyncByInput", - "name": "ConfirmPhoneNumberAsync", + "ChangePasswordAsyncByInput": { + "uniqueName": "ChangePasswordAsyncByInput", + "name": "ChangePasswordAsync", "httpMethod": "POST", - "url": "api/account/confirm-phone-number", + "url": "api/account/my-profile/change-password", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.Account.ConfirmPhoneNumberInput, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.ConfirmPhoneNumberInput", - "typeSimple": "Volo.Abp.Account.ConfirmPhoneNumberInput", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null } @@ -1150,8 +1125,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.Account.ConfirmPhoneNumberInput", - "typeSimple": "Volo.Abp.Account.ConfirmPhoneNumberInput", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1162,223 +1137,72 @@ "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } - }, - "ConfirmEmailAsyncByInput": { - "uniqueName": "ConfirmEmailAsyncByInput", - "name": "ConfirmEmailAsync", - "httpMethod": "POST", - "url": "api/account/confirm-email", + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + } + } + } + } + }, + "abp": { + "rootPath": "abp", + "remoteServiceName": "abp", + "controllers": { + "Pages.Abp.MultiTenancy.AbpTenantController": { + "controllerName": "AbpTenant", + "controllerGroupName": "AbpTenant", + "isRemoteService": true, + "apiVersion": null, + "type": "Pages.Abp.MultiTenancy.AbpTenantController", + "interfaces": [ + { + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" + } + ], + "actions": { + "FindTenantByNameAsyncByName": { + "uniqueName": "FindTenantByNameAsyncByName", + "name": "FindTenantByNameAsync", + "httpMethod": "GET", + "url": "api/abp/multi-tenancy/tenants/by-name/{name}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.ConfirmEmailInput, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.ConfirmEmailInput", - "typeSimple": "Volo.Abp.Account.ConfirmEmailInput", + "name": "name", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "name", + "name": "name", "jsonName": null, - "type": "Volo.Abp.Account.ConfirmEmailInput", - "typeSimple": "Volo.Abp.Account.ConfirmEmailInput", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" }, - "SetProfilePictureAsyncByInput": { - "uniqueName": "SetProfilePictureAsyncByInput", - "name": "SetProfilePictureAsync", - "httpMethod": "POST", - "url": "api/account/profile-picture", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.ProfilePictureInput, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.ProfilePictureInput", - "typeSimple": "Volo.Abp.Account.ProfilePictureInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.ProfilePictureInput", - "typeSimple": "Volo.Abp.Account.ProfilePictureInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetProfilePictureAsyncById": { - "uniqueName": "GetProfilePictureAsyncById", - "name": "GetProfilePictureAsync", - "httpMethod": "GET", - "url": "api/account/profile-picture/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Account.ProfilePictureSourceDto", - "typeSimple": "Volo.Abp.Account.ProfilePictureSourceDto" - } - }, - "SendEmailSecurityCodeAsyncByInput": { - "uniqueName": "SendEmailSecurityCodeAsyncByInput", - "name": "SendEmailSecurityCodeAsync", - "httpMethod": "POST", - "url": "api/account/send-email-security-code", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendEmailSecurityCodeDto, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.SendEmailSecurityCodeDto", - "typeSimple": "Volo.Abp.Account.SendEmailSecurityCodeDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.SendEmailSecurityCodeDto", - "typeSimple": "Volo.Abp.Account.SendEmailSecurityCodeDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "SendPhoneSecurityCodeAsyncByInput": { - "uniqueName": "SendPhoneSecurityCodeAsyncByInput", - "name": "SendPhoneSecurityCodeAsync", - "httpMethod": "POST", - "url": "api/account/send-phone-security-code", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.SendPhoneSecurityCodeDto, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.SendPhoneSecurityCodeDto", - "typeSimple": "Volo.Abp.Account.SendPhoneSecurityCodeDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.SendPhoneSecurityCodeDto", - "typeSimple": "Volo.Abp.Account.SendPhoneSecurityCodeDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UploadProfilePictureFileAsyncByImage": { - "uniqueName": "UploadProfilePictureFileAsyncByImage", - "name": "UploadProfilePictureFileAsync", - "httpMethod": "POST", - "url": "api/account/profile-picture-file", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "image", - "typeAsString": "Microsoft.AspNetCore.Http.IFormFile, Microsoft.AspNetCore.Http.Features", - "type": "Microsoft.AspNetCore.Http.IFormFile", - "typeSimple": "Microsoft.AspNetCore.Http.IFormFile", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "image", - "name": "image", - "jsonName": null, - "type": "Microsoft.AspNetCore.Http.IFormFile", - "typeSimple": "Microsoft.AspNetCore.Http.IFormFile", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "FormFile", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Microsoft.AspNetCore.Mvc.IActionResult", - "typeSimple": "Microsoft.AspNetCore.Mvc.IActionResult" - } - }, - "GetProfilePictureFileAsyncById": { - "uniqueName": "GetProfilePictureFileAsyncById", - "name": "GetProfilePictureFileAsync", + "FindTenantByIdAsyncById": { + "uniqueName": "FindTenantByIdAsyncById", + "name": "FindTenantByIdAsync", "httpMethod": "GET", - "url": "api/account/profile-picture-file/{id}", + "url": "api/abp/multi-tenancy/tenants/by-id/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1405,145 +1229,135 @@ } ], "returnValue": { - "type": "Microsoft.AspNetCore.Mvc.IActionResult", - "typeSimple": "Microsoft.AspNetCore.Mvc.IActionResult" - } - }, - "RecaptchaByCaptchaResponse": { - "uniqueName": "RecaptchaByCaptchaResponse", - "name": "Recaptcha", - "httpMethod": "GET", - "url": "api/account/recaptcha-validate", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "captchaResponse", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "captchaResponse", - "name": "captchaResponse", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } + "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" } } }, - "Volo.Abp.Account.AccountExternalProviderController": { - "controllerName": "AccountExternalProvider", - "type": "Volo.Abp.Account.AccountExternalProviderController", + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { + "controllerName": "AbpApplicationConfiguration", + "controllerGroupName": "AbpApplicationConfiguration", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", "interfaces": [ { - "type": "Volo.Abp.Account.ExternalProviders.IAccountExternalProviderAppService" + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" } ], "actions": { - "GetAllAsync": { - "uniqueName": "GetAllAsync", - "name": "GetAllAsync", + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", "httpMethod": "GET", - "url": "api/account/external-provider", + "url": "api/abp/application-configuration", "supportedVersions": [], "parametersOnMethod": [], "parameters": [], "returnValue": { - "type": "Volo.Abp.Account.ExternalProviders.ExternalProviderDto", - "typeSimple": "Volo.Abp.Account.ExternalProviders.ExternalProviderDto" - } - }, - "GetByNameAsyncByInput": { - "uniqueName": "GetByNameAsyncByInput", - "name": "GetByNameAsync", + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" + } + } + }, + "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { + "controllerName": "AbpApiDefinition", + "controllerGroupName": "AbpApiDefinition", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", + "interfaces": [], + "actions": { + "GetByModel": { + "uniqueName": "GetByModel", + "name": "Get", "httpMethod": "GET", - "url": "api/account/external-provider/by-name", + "url": "api/abp/api-definition", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.Account.ExternalProviders.GetByNameInput, Volo.Abp.Account.Pro.Public.Application.Contracts", - "type": "Volo.Abp.Account.ExternalProviders.GetByNameInput", - "typeSimple": "Volo.Abp.Account.ExternalProviders.GetByNameInput", + "name": "model", + "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Name", + "nameOnMethod": "model", + "name": "IncludeTypes", "jsonName": null, - "type": "System.String", - "typeSimple": "string", + "type": "System.Boolean", + "typeSimple": "boolean", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "descriptorName": "model" } ], "returnValue": { - "type": "Volo.Abp.Account.ExternalProviders.ExternalProviderItemWithSecretDto", - "typeSimple": "Volo.Abp.Account.ExternalProviders.ExternalProviderItemWithSecretDto" - } + "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", + "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController" } } } } }, - "identityServer": { - "rootPath": "identityServer", - "remoteServiceName": "AbpIdentityServer", + "identity": { + "rootPath": "identity", + "remoteServiceName": "AbpIdentity", "controllers": { - "Volo.Abp.IdentityServer.ApiResourcesController": { - "controllerName": "ApiResources", - "type": "Volo.Abp.IdentityServer.ApiResourcesController", + "Volo.Abp.Identity.IdentityRoleController": { + "controllerName": "IdentityRole", + "controllerGroupName": "Role", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.Identity.IdentityRoleController", "interfaces": [ { - "type": "Volo.Abp.IdentityServer.ApiResource.IApiResourceAppService" + "type": "Volo.Abp.Identity.IIdentityRoleAppService" } ], "actions": { + "GetAllListAsync": { + "uniqueName": "GetAllListAsync", + "name": "GetAllListAsync", + "httpMethod": "GET", + "url": "api/identity/roles/all", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityRoleAppService" + }, "GetListAsyncByInput": { "uniqueName": "GetListAsyncByInput", "name": "GetListAsync", "httpMethod": "GET", - "url": "api/identity-server/api-resources", + "url": "api/identity/roles", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiResource.Dtos.GetApiResourceListInput, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.GetApiResourceListInput", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.GetApiResourceListInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityRolesInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityRolesInput", "isOptional": false, "defaultValue": null } @@ -1599,28 +1413,17 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity-server/api-resources/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto]" - } + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "GetAsyncById": { "uniqueName": "GetAsyncById", "name": "GetAsync", "httpMethod": "GET", - "url": "api/identity-server/api-resources/{id}", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1647,22 +1450,24 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto" - } + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "CreateAsyncByInput": { "uniqueName": "CreateAsyncByInput", "name": "CreateAsync", "httpMethod": "POST", - "url": "api/identity-server/api-resources", + "url": "api/identity/roles", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null } @@ -1672,8 +1477,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto", + "type": "Volo.Abp.Identity.IdentityRoleCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1682,15 +1487,17 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto" - } + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, "UpdateAsyncByIdAndInput": { "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/identity-server/api-resources/{id}", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1703,9 +1510,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto", + "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null } @@ -1727,8 +1534,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto", + "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1737,15 +1544,17 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto" - } + "type": "Volo.Abp.Identity.IdentityRoleDto", + "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, "DeleteAsyncById": { "uniqueName": "DeleteAsyncById", "name": "DeleteAsync", "httpMethod": "DELETE", - "url": "api/identity-server/api-resources", + "url": "api/identity/roles/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1766,39 +1575,81 @@ "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" } } }, - "Volo.Abp.IdentityServer.ApiScopesController": { - "controllerName": "ApiScopes", - "type": "Volo.Abp.IdentityServer.ApiScopesController", - "interfaces": [ + "Volo.Abp.Identity.IdentityUserController": { + "controllerName": "IdentityUser", + "controllerGroupName": "User", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.Identity.IdentityUserController", + "interfaces": [ { - "type": "Volo.Abp.IdentityServer.ApiScope.IApiScopeAppService" + "type": "Volo.Abp.Identity.IIdentityUserAppService" } ], "actions": { + "GetAsyncById": { + "uniqueName": "GetAsyncById", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/identity/users/{id}", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "id", + "typeAsString": "System.Guid, System.Private.CoreLib", + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "id", + "name": "id", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isOptional": false, + "defaultValue": null, + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" + }, "GetListAsyncByInput": { "uniqueName": "GetListAsyncByInput", "name": "GetListAsync", "httpMethod": "GET", - "url": "api/identity-server/apiScopes", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiScope.Dtos.GetApiScopeListInput, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.GetApiScopeListInput", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.GetApiScopeListInput", + "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.GetIdentityUsersInput", + "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", "isOptional": false, "defaultValue": null } @@ -1854,70 +1705,24 @@ } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity-server/apiScopes/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto]" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity-server/apiScopes/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto" - } + "type": "Volo.Abp.Application.Dtos.PagedResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IReadOnlyAppService" }, "CreateAsyncByInput": { "uniqueName": "CreateAsyncByInput", "name": "CreateAsync", "httpMethod": "POST", - "url": "api/identity-server/apiScopes", + "url": "api/identity/users", "supportedVersions": [], "parametersOnMethod": [ { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null } @@ -1927,8 +1732,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto", + "type": "Volo.Abp.Identity.IdentityUserCreateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1937,15 +1742,17 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto" - } + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.ICreateAppService" }, "UpdateAsyncByIdAndInput": { "uniqueName": "UpdateAsyncByIdAndInput", "name": "UpdateAsync", "httpMethod": "PUT", - "url": "api/identity-server/apiScopes/{id}", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -1958,9 +1765,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", "isOptional": false, "defaultValue": null } @@ -1982,8 +1789,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto", + "type": "Volo.Abp.Identity.IdentityUserUpdateDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -1992,15 +1799,17 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto" - } + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IUpdateAppService" }, "DeleteAsyncById": { "uniqueName": "DeleteAsyncById", "name": "DeleteAsync", "httpMethod": "DELETE", - "url": "api/identity-server/apiScopes", + "url": "api/identity/users/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2021,103 +1830,23 @@ "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { "type": "System.Void", "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.IdentityServer.ClientsController": { - "controllerName": "Clients", - "type": "Volo.Abp.IdentityServer.ClientsController", - "interfaces": [ - { - "type": "Volo.Abp.IdentityServer.Client.IClientAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity-server/clients", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.Client.Dtos.GetClientListInput, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.Client.Dtos.GetClientListInput", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.GetClientListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Application.Services.IDeleteAppService" }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "GetRolesAsyncById": { + "uniqueName": "GetRolesAsyncById", + "name": "GetRolesAsync", "httpMethod": "GET", - "url": "api/identity-server/clients/{id}", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ { @@ -2144,50 +1873,32 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto" - } + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity-server/clients", + "GetAssignableRolesAsync": { + "uniqueName": "GetAssignableRolesAsync", + "name": "GetAssignableRolesAsync", + "httpMethod": "GET", + "url": "api/identity/users/assignable-roles", "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], + "parametersOnMethod": [], + "parameters": [], "returnValue": { - "type": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto" - } + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", + "UpdateRolesAsyncByIdAndInput": { + "uniqueName": "UpdateRolesAsyncByIdAndInput", + "name": "UpdateRolesAsync", "httpMethod": "PUT", - "url": "api/identity-server/clients/{id}", + "url": "api/identity/users/{id}/roles", "supportedVersions": [], "parametersOnMethod": [ { @@ -2200,9 +1911,9 @@ }, { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto", + "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null } @@ -2224,8 +1935,8 @@ "nameOnMethod": "input", "name": "input", "jsonName": null, - "type": "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto", + "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", "isOptional": false, "defaultValue": null, "constraintTypes": null, @@ -2234,21 +1945,23 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto" - } + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity-server/clients", + "FindByUsernameAsyncByUserName": { + "uniqueName": "FindByUsernameAsyncByUserName", + "name": "FindByUsernameAsync", + "httpMethod": "GET", + "url": "api/identity/users/by-username/{userName}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null @@ -2256,123 +1969,81 @@ ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "userName", + "name": "userName", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.IdentityServer.IdentityResourcesController": { - "controllerName": "IdentityResources", - "type": "Volo.Abp.IdentityServer.IdentityResourcesController", - "interfaces": [ - { - "type": "Volo.Abp.IdentityServer.IdentityResource.IIdentityResourceAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + }, + "FindByEmailAsyncByEmail": { + "uniqueName": "FindByEmailAsyncByEmail", + "name": "FindByEmailAsync", "httpMethod": "GET", - "url": "api/identity-server/identity-resources", + "url": "api/identity/users/by-email/{email}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.IdentityResource.Dtos.GetIdentityResourceListInput, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.GetIdentityResourceListInput", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.GetIdentityResourceListInput", + "name": "email", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", + "nameOnMethod": "email", + "name": "email", "jsonName": null, "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" + "constraintTypes": [], + "bindingSourceId": "Path", + "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity-server/identity-resources/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto]" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", + "type": "Volo.Abp.Identity.IdentityUserDto", + "typeSimple": "Volo.Abp.Identity.IdentityUserDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserAppService" + } + } + }, + "Volo.Abp.Identity.IdentityUserLookupController": { + "controllerName": "IdentityUserLookup", + "controllerGroupName": "UserLookup", + "isRemoteService": true, + "apiVersion": null, + "type": "Volo.Abp.Identity.IdentityUserLookupController", + "interfaces": [ + { + "type": "Volo.Abp.Identity.IIdentityUserLookupAppService" + } + ], + "actions": { + "FindByIdAsyncById": { + "uniqueName": "FindByIdAsyncById", + "name": "FindByIdAsync", "httpMethod": "GET", - "url": "api/identity-server/identity-resources/{id}", + "url": "api/identity/users/lookup/{id}", "supportedVersions": [], "parametersOnMethod": [ { @@ -2399,16159 +2070,684 @@ } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto" - } + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity-server/identity-resources", + "FindByUserNameAsyncByUserName": { + "uniqueName": "FindByUserNameAsyncByUserName", + "name": "FindByUserNameAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/by-username/{userName}", "supportedVersions": [], "parametersOnMethod": [ { - "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto", + "name": "userName", + "typeAsString": "System.String, System.Private.CoreLib", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "input", - "name": "input", + "nameOnMethod": "userName", + "name": "userName", "jsonName": null, - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", + "constraintTypes": [], + "bindingSourceId": "Path", "descriptorName": "" } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto" - } + "type": "Volo.Abp.Users.UserData", + "typeSimple": "Volo.Abp.Users.UserData" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity-server/identity-resources/{id}", + "SearchAsyncByInput": { + "uniqueName": "SearchAsyncByInput", + "name": "SearchAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/search", "supportedVersions": [], "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, { "name": "input", - "typeAsString": "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto, Volo.Abp.IdentityServer.Application.Contracts", - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto", + "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupSearchInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" }, { "nameOnMethod": "input", - "name": "input", + "name": "Sorting", "jsonName": null, - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto", + "type": "System.String", + "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "SkipCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" + }, + { + "nameOnMethod": "input", + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "ModelBinding", + "descriptorName": "input" } ], "returnValue": { - "type": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto", - "typeSimple": "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto" - } + "type": "Volo.Abp.Application.Dtos.ListResultDto", + "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity-server/identity-resources", + "GetCountAsyncByInput": { + "uniqueName": "GetCountAsyncByInput", + "name": "GetCountAsync", + "httpMethod": "GET", + "url": "api/identity/users/lookup/count", "supportedVersions": [], "parametersOnMethod": [ { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", + "name": "input", + "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Application.Contracts", + "type": "Volo.Abp.Identity.UserLookupCountInputDto", + "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", "isOptional": false, "defaultValue": null } ], "parameters": [ { - "nameOnMethod": "id", - "name": "id", + "nameOnMethod": "input", + "name": "Filter", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", "isOptional": false, "defaultValue": null, "constraintTypes": null, "bindingSourceId": "ModelBinding", - "descriptorName": "" + "descriptorName": "input" } ], "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "CreateStandardResourcesAsync": { - "uniqueName": "CreateStandardResourcesAsync", - "name": "CreateStandardResourcesAsync", - "httpMethod": "POST", - "url": "api/identity-server/identity-resources/create-standard-resources", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.IdentityServer.IdentityServerClaimTypesController": { - "controllerName": "IdentityServerClaimTypes", - "type": "Volo.Abp.IdentityServer.IdentityServerClaimTypesController", - "interfaces": [ - { - "type": "Volo.Abp.IdentityServer.ClaimType.IIdentityServerClaimTypeAppService" - } - ], - "actions": { - "GetListAsync": { - "uniqueName": "GetListAsync", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity-server/claim-types", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.IdentityServer.ClaimType.Dtos.IdentityClaimTypeDto]" - } + "type": "System.Int64", + "typeSimple": "number" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" } } } } - }, - "saas": { - "rootPath": "saas", - "remoteServiceName": "SaasHost", - "controllers": { - "Volo.Saas.Host.EditionController": { - "controllerName": "Edition", - "type": "Volo.Saas.Host.EditionController", - "interfaces": [ - { - "type": "Volo.Saas.Host.IEditionAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/saas/editions/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.EditionDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/saas/editions", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.GetEditionsInput, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.GetEditionsInput", - "typeSimple": "Volo.Saas.Host.Dtos.GetEditionsInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/saas/editions", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.EditionCreateDto, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.EditionCreateDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Saas.Host.Dtos.EditionCreateDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.EditionDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/saas/editions/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.EditionUpdateDto, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.EditionUpdateDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Saas.Host.Dtos.EditionUpdateDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.EditionDto", - "typeSimple": "Volo.Saas.Host.Dtos.EditionDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/saas/editions/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetUsageStatistics": { - "uniqueName": "GetUsageStatistics", - "name": "GetUsageStatistics", - "httpMethod": "GET", - "url": "api/saas/editions/statistics/usage-statistic", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Saas.Host.GetEditionUsageStatisticsResult", - "typeSimple": "Volo.Saas.Host.GetEditionUsageStatisticsResult" - } - } - } - }, - "Volo.Saas.Host.TenantController": { - "controllerName": "Tenant", - "type": "Volo.Saas.Host.TenantController", - "interfaces": [ - { - "type": "Volo.Saas.Host.ITenantAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/saas/tenants/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.SaasTenantDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/saas/tenants", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.GetTenantsInput, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.GetTenantsInput", - "typeSimple": "Volo.Saas.Host.Dtos.GetTenantsInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "GetEditionNames", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/saas/tenants", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.SaasTenantCreateDto, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.SaasTenantCreateDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Saas.Host.Dtos.SaasTenantCreateDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.SaasTenantDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/saas/tenants/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.SaasTenantUpdateDto, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.SaasTenantUpdateDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Saas.Host.Dtos.SaasTenantUpdateDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.SaasTenantDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/saas/tenants/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetConnectionStringsAsyncById": { - "uniqueName": "GetConnectionStringsAsyncById", - "name": "GetConnectionStringsAsync", - "httpMethod": "GET", - "url": "api/saas/tenants/{id}/connection-strings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto" - } - }, - "UpdateConnectionStringsAsyncByIdAndInput": { - "uniqueName": "UpdateConnectionStringsAsyncByIdAndInput", - "name": "UpdateConnectionStringsAsync", - "httpMethod": "PUT", - "url": "api/saas/tenants/{id}/connection-strings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto, Volo.Saas.Host.Application.Contracts", - "type": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto", - "typeSimple": "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "ApplyDatabaseMigrationsAsyncById": { - "uniqueName": "ApplyDatabaseMigrationsAsyncById", - "name": "ApplyDatabaseMigrationsAsync", - "httpMethod": "POST", - "url": "api/saas/tenants/{id}/apply-database-migrations", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "cms-kit": { - "rootPath": "cms-kit", - "remoteServiceName": "CmsKitAdmin", - "controllers": { - "Volo.CmsKit.Admin.Newsletters.NewsletterRecordAdminController": { - "controllerName": "NewsletterRecordAdmin", - "type": "Volo.CmsKit.Admin.Newsletters.NewsletterRecordAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Newsletters.INewsletterRecordAdminAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/newsletter", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsRequestInput, Volo.CmsKit.Pro.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsRequestInput", - "typeSimple": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsRequestInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/newsletter/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Newsletters.NewsletterRecordWithDetailsDto", - "typeSimple": "Volo.CmsKit.Admin.Newsletters.NewsletterRecordWithDetailsDto" - } - }, - "GetNewsletterPreferencesAsync": { - "uniqueName": "GetNewsletterPreferencesAsync", - "name": "GetNewsletterPreferencesAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/newsletter/preferences", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[string]" - } - }, - "ExportCsvByInput": { - "uniqueName": "ExportCsvByInput", - "name": "ExportCsv", - "httpMethod": "GET", - "url": "api/cms-kit-admin/newsletter/export-csv", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsCsvRequestInput, Volo.CmsKit.Pro.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsCsvRequestInput", - "typeSimple": "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsCsvRequestInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Microsoft.AspNetCore.Mvc.IActionResult", - "typeSimple": "Microsoft.AspNetCore.Mvc.IActionResult" - } - } - } - }, - "Volo.CmsKit.Admin.Contact.ContactSettingController": { - "controllerName": "ContactSetting", - "type": "Volo.CmsKit.Admin.Contact.ContactSettingController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Contact.IContactSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/contact/settings", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.CmsKit.Admin.Contact.CmsKitContactSettingDto", - "typeSimple": "Volo.CmsKit.Admin.Contact.CmsKitContactSettingDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/contact/settings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto, Volo.CmsKit.Pro.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto", - "typeSimple": "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto", - "typeSimple": "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Tags.EntityTagAdminController": { - "controllerName": "EntityTagAdmin", - "type": "Volo.CmsKit.Admin.Tags.EntityTagAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Tags.IEntityTagAdminAppService" - } - ], - "actions": { - "AddTagToEntityAsyncByInput": { - "uniqueName": "AddTagToEntityAsyncByInput", - "name": "AddTagToEntityAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/entity-tags", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.EntityTagCreateDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.EntityTagCreateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.EntityTagCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Tags.EntityTagCreateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.EntityTagCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "RemoveTagFromEntityAsyncByInput": { - "uniqueName": "RemoveTagFromEntityAsyncByInput", - "name": "RemoveTagFromEntityAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/entity-tags", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.EntityTagRemoveDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.EntityTagRemoveDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.EntityTagRemoveDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "TagId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "SetEntityTagsAsyncByInput": { - "uniqueName": "SetEntityTagsAsyncByInput", - "name": "SetEntityTagsAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/entity-tags", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.EntityTagSetDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.EntityTagSetDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.EntityTagSetDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Tags.EntityTagSetDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.EntityTagSetDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Tags.TagAdminController": { - "controllerName": "TagAdmin", - "type": "Volo.CmsKit.Admin.Tags.TagAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Tags.ITagAdminAppService" - } - ], - "actions": { - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/tags", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.TagCreateDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.TagCreateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.TagCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Tags.TagCreateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.TagCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Tags.TagDto", - "typeSimple": "Volo.CmsKit.Tags.TagDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/tags/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/tags/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Tags.TagDto", - "typeSimple": "Volo.CmsKit.Tags.TagDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/tags", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.TagGetListInput, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.TagGetListInput", - "typeSimple": "Volo.CmsKit.Admin.Tags.TagGetListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/tags/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Tags.TagUpdateDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Tags.TagUpdateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.TagUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Tags.TagUpdateDto", - "typeSimple": "Volo.CmsKit.Admin.Tags.TagUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Tags.TagDto", - "typeSimple": "Volo.CmsKit.Tags.TagDto" - } - }, - "GetTagDefinitionsAsync": { - "uniqueName": "GetTagDefinitionsAsync", - "name": "GetTagDefinitionsAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/tags/tag-definitions", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.CmsKit.Admin.Tags.TagDefinitionDto]" - } - } - } - }, - "Volo.CmsKit.Admin.Pages.PageAdminController": { - "controllerName": "PageAdmin", - "type": "Volo.CmsKit.Admin.Pages.PageAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Pages.IPageAdminAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/pages/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Pages.PageDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.PageDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/pages", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Pages.GetPagesInputDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Pages.GetPagesInputDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.GetPagesInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/pages", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Pages.CreatePageInputDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Pages.CreatePageInputDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.CreatePageInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Pages.CreatePageInputDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.CreatePageInputDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Pages.PageDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.PageDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/pages/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Pages.UpdatePageInputDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Pages.UpdatePageInputDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.UpdatePageInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Pages.UpdatePageInputDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.UpdatePageInputDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Pages.PageDto", - "typeSimple": "Volo.CmsKit.Admin.Pages.PageDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/pages/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.MediaDescriptors.MediaDescriptorAdminController": { - "controllerName": "MediaDescriptorAdmin", - "type": "Volo.CmsKit.Admin.MediaDescriptors.MediaDescriptorAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.MediaDescriptors.IMediaDescriptorAdminAppService" - } - ], - "actions": { - "CreateAsyncByEntityTypeAndInputStream": { - "uniqueName": "CreateAsyncByEntityTypeAndInputStream", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/media/{entityType}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "inputStream", - "typeAsString": "Volo.CmsKit.Admin.MediaDescriptors.CreateMediaInputWithStream, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.MediaDescriptors.CreateMediaInputWithStream", - "typeSimple": "Volo.CmsKit.Admin.MediaDescriptors.CreateMediaInputWithStream", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "inputStream", - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "inputStream" - }, - { - "nameOnMethod": "inputStream", - "name": "File", - "jsonName": null, - "type": "Volo.Abp.Content.IRemoteStreamContent", - "typeSimple": "Volo.Abp.Content.IRemoteStreamContent", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "FormFile", - "descriptorName": "inputStream" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.MediaDescriptors.MediaDescriptorDto", - "typeSimple": "Volo.CmsKit.Admin.MediaDescriptors.MediaDescriptorDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/media/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Comments.CommentAdminController": { - "controllerName": "CommentAdmin", - "type": "Volo.CmsKit.Admin.Comments.CommentAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/comments", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Comments.CommentGetListInput, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Comments.CommentGetListInput", - "typeSimple": "Volo.CmsKit.Admin.Comments.CommentGetListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Text", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "RepliedCommentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Author", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CreationStartDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CreationEndDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/comments/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Comments.CommentWithAuthorDto", - "typeSimple": "Volo.CmsKit.Admin.Comments.CommentWithAuthorDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/comments/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Blogs.BlogAdminController": { - "controllerName": "BlogAdmin", - "type": "Volo.CmsKit.Admin.Blogs.BlogAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Blogs.IBlogAdminAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/blogs/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/blogs", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.BlogGetListInput, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.BlogGetListInput", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogGetListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/blogs", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.CreateBlogDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.CreateBlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.CreateBlogDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Blogs.CreateBlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.CreateBlogDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/blogs/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.UpdateBlogDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.UpdateBlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.UpdateBlogDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Blogs.UpdateBlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.UpdateBlogDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/blogs/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Blogs.BlogFeatureAdminController": { - "controllerName": "BlogFeatureAdmin", - "type": "Volo.CmsKit.Admin.Blogs.BlogFeatureAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Blogs.IBlogFeatureAdminAppService" - } - ], - "actions": { - "GetListAsyncByBlogId": { - "uniqueName": "GetListAsyncByBlogId", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/blogs/{blogId}/features", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "blogId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "blogId", - "name": "blogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.CmsKit.Blogs.BlogFeatureDto]" - } - }, - "SetAsyncByBlogIdAndDto": { - "uniqueName": "SetAsyncByBlogIdAndDto", - "name": "SetAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/blogs/{blogId}/features", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "blogId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "dto", - "typeAsString": "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "blogId", - "name": "blogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "dto", - "name": "dto", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Admin.Blogs.BlogPostAdminController": { - "controllerName": "BlogPostAdmin", - "type": "Volo.CmsKit.Admin.Blogs.BlogPostAdminController", - "interfaces": [ - { - "type": "Volo.CmsKit.Admin.Blogs.IBlogPostAdminAppService" - } - ], - "actions": { - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-admin/blogs/blog-posts", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogPostDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-admin/blogs/blog-posts/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/blogs/blog-posts/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [ - "GuidRouteConstraint" - ], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogPostDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-admin/blogs/blog-posts", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.BlogPostGetListInput, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.BlogPostGetListInput", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogPostGetListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "BlogId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-admin/blogs/blog-posts/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto, Volo.CmsKit.Admin.Application.Contracts", - "type": "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Admin.Blogs.BlogPostDto", - "typeSimple": "Volo.CmsKit.Admin.Blogs.BlogPostDto" - } - } - } - }, - "Volo.CmsKit.Public.Newsletters.NewsletterRecordPublicController": { - "controllerName": "NewsletterRecordPublic", - "type": "Volo.CmsKit.Public.Newsletters.NewsletterRecordPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Newsletters.INewsletterRecordPublicAppService" - } - ], - "actions": { - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-public/newsletter", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput, Volo.CmsKit.Pro.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput", - "typeSimple": "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput", - "typeSimple": "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetNewsletterPreferencesAsyncByEmailAddress": { - "uniqueName": "GetNewsletterPreferencesAsyncByEmailAddress", - "name": "GetNewsletterPreferencesAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/newsletter/emailAddress", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "emailAddress", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "emailAddress", - "name": "emailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.CmsKit.Public.Newsletters.NewsletterPreferenceDetailsDto]" - } - }, - "UpdatePreferencesAsyncByInput": { - "uniqueName": "UpdatePreferencesAsyncByInput", - "name": "UpdatePreferencesAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-public/newsletter", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput, Volo.CmsKit.Pro.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput", - "typeSimple": "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput", - "typeSimple": "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetOptionByPreferenceByPreference": { - "uniqueName": "GetOptionByPreferenceByPreference", - "name": "GetOptionByPreference", - "httpMethod": "GET", - "url": "api/cms-kit-public/newsletter/preference-options", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "preference", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "preference", - "name": "preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Newsletters.NewsletterEmailOptionsDto", - "typeSimple": "Volo.CmsKit.Public.Newsletters.NewsletterEmailOptionsDto" - } - } - } - }, - "Volo.CmsKit.Public.Contact.ContactPublicController": { - "controllerName": "ContactPublic", - "type": "Volo.CmsKit.Public.Contact.ContactPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Contact.IContactPublicAppService" - } - ], - "actions": { - "SendMessageAsyncByInput": { - "uniqueName": "SendMessageAsyncByInput", - "name": "SendMessageAsync", - "httpMethod": "POST", - "url": "api/cms-kit-public/contacts", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Contact.ContactCreateInput, Volo.CmsKit.Pro.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Contact.ContactCreateInput", - "typeSimple": "Volo.CmsKit.Public.Contact.ContactCreateInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Contact.ContactCreateInput", - "typeSimple": "Volo.CmsKit.Public.Contact.ContactCreateInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Public.Tags.TagPublicController": { - "controllerName": "TagPublic", - "type": "Volo.CmsKit.Public.Tags.TagPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Tags.ITagAppService" - } - ], - "actions": { - "GetAllRelatedTagsAsyncByEntityTypeAndEntityId": { - "uniqueName": "GetAllRelatedTagsAsyncByEntityTypeAndEntityId", - "name": "GetAllRelatedTagsAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/tags/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.CmsKit.Tags.TagDto]" - } - } - } - }, - "Volo.CmsKit.Public.Reactions.ReactionPublicController": { - "controllerName": "ReactionPublic", - "type": "Volo.CmsKit.Public.Reactions.ReactionPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Reactions.IReactionPublicAppService" - } - ], - "actions": { - "GetForSelectionAsyncByEntityTypeAndEntityId": { - "uniqueName": "GetForSelectionAsyncByEntityTypeAndEntityId", - "name": "GetForSelectionAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/reactions/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "CreateAsyncByEntityTypeAndEntityIdAndReaction": { - "uniqueName": "CreateAsyncByEntityTypeAndEntityIdAndReaction", - "name": "CreateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-public/reactions/{entityType}/{entityId}/{reaction}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "reaction", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "reaction", - "name": "reaction", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "DeleteAsyncByEntityTypeAndEntityIdAndReaction": { - "uniqueName": "DeleteAsyncByEntityTypeAndEntityIdAndReaction", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-public/reactions/{entityType}/{entityId}/{reaction}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "reaction", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "reaction", - "name": "reaction", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Public.Ratings.RatingPublicController": { - "controllerName": "RatingPublic", - "type": "Volo.CmsKit.Public.Ratings.RatingPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Ratings.IRatingPublicAppService" - } - ], - "actions": { - "CreateAsyncByEntityTypeAndEntityIdAndInput": { - "uniqueName": "CreateAsyncByEntityTypeAndEntityIdAndInput", - "name": "CreateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-public/ratings/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput, Volo.CmsKit.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", - "typeSimple": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", - "typeSimple": "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Ratings.RatingDto", - "typeSimple": "Volo.CmsKit.Public.Ratings.RatingDto" - } - }, - "DeleteAsyncByEntityTypeAndEntityId": { - "uniqueName": "DeleteAsyncByEntityTypeAndEntityId", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-public/ratings/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetGroupedStarCountsAsyncByEntityTypeAndEntityId": { - "uniqueName": "GetGroupedStarCountsAsyncByEntityTypeAndEntityId", - "name": "GetGroupedStarCountsAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/ratings/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.CmsKit.Public.Ratings.RatingWithStarCountDto]" - } - } - } - }, - "Volo.CmsKit.Public.Pages.PagesPublicController": { - "controllerName": "PagesPublic", - "type": "Volo.CmsKit.Public.Pages.PagesPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Pages.IPagePublicAppService" - } - ], - "actions": { - "FindBySlugAsyncBySlug": { - "uniqueName": "FindBySlugAsyncBySlug", - "name": "FindBySlugAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/pages/{slug}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "slug", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "slug", - "name": "slug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Pages.PageDto", - "typeSimple": "Volo.CmsKit.Public.Pages.PageDto" - } - } - } - }, - "Volo.CmsKit.Public.Comments.CommentPublicController": { - "controllerName": "CommentPublic", - "type": "Volo.CmsKit.Public.Comments.CommentPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Comments.ICommentPublicAppService" - } - ], - "actions": { - "GetListAsyncByEntityTypeAndEntityId": { - "uniqueName": "GetListAsyncByEntityTypeAndEntityId", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/comments/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "CreateAsyncByEntityTypeAndEntityIdAndInput": { - "uniqueName": "CreateAsyncByEntityTypeAndEntityIdAndInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/cms-kit-public/comments/{entityType}/{entityId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityType", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "entityId", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Comments.CreateCommentInput, Volo.CmsKit.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Comments.CreateCommentInput", - "typeSimple": "Volo.CmsKit.Public.Comments.CreateCommentInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityType", - "name": "entityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "entityId", - "name": "entityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Comments.CreateCommentInput", - "typeSimple": "Volo.CmsKit.Public.Comments.CreateCommentInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Comments.CommentDto", - "typeSimple": "Volo.CmsKit.Public.Comments.CommentDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/cms-kit-public/comments/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.CmsKit.Public.Comments.UpdateCommentInput, Volo.CmsKit.Public.Application.Contracts", - "type": "Volo.CmsKit.Public.Comments.UpdateCommentInput", - "typeSimple": "Volo.CmsKit.Public.Comments.UpdateCommentInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.CmsKit.Public.Comments.UpdateCommentInput", - "typeSimple": "Volo.CmsKit.Public.Comments.UpdateCommentInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Comments.CommentDto", - "typeSimple": "Volo.CmsKit.Public.Comments.CommentDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/cms-kit-public/comments/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.CmsKit.Public.Blogs.BlogPostPublicController": { - "controllerName": "BlogPostPublic", - "type": "Volo.CmsKit.Public.Blogs.BlogPostPublicController", - "interfaces": [ - { - "type": "Volo.CmsKit.Public.Blogs.IBlogPostPublicAppService" - } - ], - "actions": { - "GetAsyncByBlogSlugAndBlogPostSlug": { - "uniqueName": "GetAsyncByBlogSlugAndBlogPostSlug", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/blog-posts/{blogSlug}/{blogPostSlug}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "blogSlug", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "blogPostSlug", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "blogSlug", - "name": "blogSlug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "blogPostSlug", - "name": "blogPostSlug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Public.Blogs.BlogPostPublicDto", - "typeSimple": "Volo.CmsKit.Public.Blogs.BlogPostPublicDto" - } - }, - "GetListAsyncByBlogSlugAndInput": { - "uniqueName": "GetListAsyncByBlogSlugAndInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/cms-kit-public/blog-posts/{blogSlug}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "blogSlug", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto, Volo.Abp.Ddd.Application.Contracts", - "type": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "blogSlug", - "name": "blogSlug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - } - } - }, - "Volo.CmsKit.MediaDescriptors.MediaDescriptorController": { - "controllerName": "MediaDescriptor", - "type": "Volo.CmsKit.MediaDescriptors.MediaDescriptorController", - "interfaces": [ - { - "type": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService" - } - ], - "actions": { - "DownloadAsyncById": { - "uniqueName": "DownloadAsyncById", - "name": "DownloadAsync", - "httpMethod": "GET", - "url": "api/cms-kit/media/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Content.RemoteStreamContent", - "typeSimple": "Volo.Abp.Content.RemoteStreamContent" - } - } - } - }, - "Volo.CmsKit.Blogs.BlogFeatureController": { - "controllerName": "BlogFeature", - "type": "Volo.CmsKit.Blogs.BlogFeatureController", - "interfaces": [ - { - "type": "Volo.CmsKit.Blogs.IBlogFeatureAppService" - } - ], - "actions": { - "GetOrDefaultAsyncByBlogIdAndFeatureName": { - "uniqueName": "GetOrDefaultAsyncByBlogIdAndFeatureName", - "name": "GetOrDefaultAsync", - "httpMethod": "GET", - "url": "api/cms-kit/blogs/{blogId}/features/{featureName}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "blogId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "featureName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "blogId", - "name": "blogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "featureName", - "name": "featureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.CmsKit.Blogs.BlogFeatureDto", - "typeSimple": "Volo.CmsKit.Blogs.BlogFeatureDto" - } - } - } - } - } - }, - "accountAdmin": { - "rootPath": "accountAdmin", - "remoteServiceName": "AbpAccountAdmin", - "controllers": { - "Volo.Abp.Account.AccountSettingsController": { - "controllerName": "AccountSettings", - "type": "Volo.Abp.Account.AccountSettingsController", - "interfaces": [ - { - "type": "Volo.Abp.Account.IAccountSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/account-admin/settings", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Account.AccountSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountSettingsDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/account-admin/settings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.AccountSettingsDto, Volo.Abp.Account.Pro.Admin.Application.Contracts", - "type": "Volo.Abp.Account.AccountSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.AccountSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetLdapAsync": { - "uniqueName": "GetLdapAsync", - "name": "GetLdapAsync", - "httpMethod": "GET", - "url": "api/account-admin/settings/ldap", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Account.AccountLdapSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountLdapSettingsDto" - } - }, - "UpdateLdapAsyncByInput": { - "uniqueName": "UpdateLdapAsyncByInput", - "name": "UpdateLdapAsync", - "httpMethod": "PUT", - "url": "api/account-admin/settings/ldap", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.AccountLdapSettingsDto, Volo.Abp.Account.Pro.Admin.Application.Contracts", - "type": "Volo.Abp.Account.AccountLdapSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountLdapSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.AccountLdapSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountLdapSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetTwoFactorAsync": { - "uniqueName": "GetTwoFactorAsync", - "name": "GetTwoFactorAsync", - "httpMethod": "GET", - "url": "api/account-admin/settings/two-factor", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Account.AccountTwoFactorSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountTwoFactorSettingsDto" - } - }, - "UpdateTwoFactorAsyncByInput": { - "uniqueName": "UpdateTwoFactorAsyncByInput", - "name": "UpdateTwoFactorAsync", - "httpMethod": "PUT", - "url": "api/account-admin/settings/two-factor", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.AccountTwoFactorSettingsDto, Volo.Abp.Account.Pro.Admin.Application.Contracts", - "type": "Volo.Abp.Account.AccountTwoFactorSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountTwoFactorSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.AccountTwoFactorSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountTwoFactorSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetRecaptchaAsync": { - "uniqueName": "GetRecaptchaAsync", - "name": "GetRecaptchaAsync", - "httpMethod": "GET", - "url": "api/account-admin/settings/recaptcha", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Account.AccountRecaptchaSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountRecaptchaSettingsDto" - } - }, - "UpdateRecaptchaAsyncByInput": { - "uniqueName": "UpdateRecaptchaAsyncByInput", - "name": "UpdateRecaptchaAsync", - "httpMethod": "PUT", - "url": "api/account-admin/settings/recaptcha", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Account.AccountRecaptchaSettingsDto, Volo.Abp.Account.Pro.Admin.Application.Contracts", - "type": "Volo.Abp.Account.AccountRecaptchaSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountRecaptchaSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Account.AccountRecaptchaSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountRecaptchaSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetExternalProviderAsync": { - "uniqueName": "GetExternalProviderAsync", - "name": "GetExternalProviderAsync", - "httpMethod": "GET", - "url": "api/account-admin/settings/external-provider", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Account.AccountExternalProviderSettingsDto", - "typeSimple": "Volo.Abp.Account.AccountExternalProviderSettingsDto" - } - }, - "UpdateExternalProviderAsyncByInput": { - "uniqueName": "UpdateExternalProviderAsyncByInput", - "name": "UpdateExternalProviderAsync", - "httpMethod": "PUT", - "url": "api/account-admin/settings/external-provider", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.Account.UpdateExternalProviderDto, Volo.Abp.Account.Pro.Admin.Application.Contracts, Version=4.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Account.UpdateExternalProviderDto]", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Account.UpdateExternalProviderDto]", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "textTemplateManagement": { - "rootPath": "textTemplateManagement", - "remoteServiceName": "TextTemplateManagement", - "controllers": { - "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateContentController": { - "controllerName": "TemplateContent", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateContentController", - "interfaces": [ - { - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.ITemplateContentAppService" - } - ], - "actions": { - "GetAsyncByInput": { - "uniqueName": "GetAsyncByInput", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/text-template-management/template-contents", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateContentInput, Volo.Abp.TextTemplateManagement.Application.Contracts", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateContentInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateContentInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "TemplateName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.TextTemplateContentDto", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.TextTemplateContentDto" - } - }, - "RestoreToDefaultAsyncByInput": { - "uniqueName": "RestoreToDefaultAsyncByInput", - "name": "RestoreToDefaultAsync", - "httpMethod": "PUT", - "url": "api/text-template-management/template-contents/restore-to-default", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput, Volo.Abp.TextTemplateManagement.Application.Contracts", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/text-template-management/template-contents", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput, Volo.Abp.TextTemplateManagement.Application.Contracts", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.TextTemplateContentDto", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.TextTemplateContentDto" - } - } - } - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateDefinitionController": { - "controllerName": "TemplateDefinition", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateDefinitionController", - "interfaces": [ - { - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.ITemplateDefinitionAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/text-template-management/template-definitions", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateDefinitionListInput, Volo.Abp.TextTemplateManagement.Application.Contracts", - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateDefinitionListInput", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateDefinitionListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "FilterText", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncByName": { - "uniqueName": "GetAsyncByName", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/text-template-management/template-definitions/{name}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "name", - "name": "name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateDefinitionDto", - "typeSimple": "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateDefinitionDto" - } - } - } - } - } - }, - "auditLogging": { - "rootPath": "auditLogging", - "remoteServiceName": "AbpAuditLogging", - "controllers": { - "Volo.Abp.AuditLogging.AuditLogsController": { - "controllerName": "AuditLogs", - "type": "Volo.Abp.AuditLogging.AuditLogsController", - "interfaces": [ - { - "type": "Volo.Abp.AuditLogging.IAuditLogsAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.AuditLogging.GetAuditLogListDto, Volo.Abp.AuditLogging.Application.Contracts", - "type": "Volo.Abp.AuditLogging.GetAuditLogListDto", - "typeSimple": "Volo.Abp.AuditLogging.GetAuditLogListDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "StartTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EndTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Url", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "HttpMethod", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "HttpStatusCode", - "jsonName": null, - "type": "System.Net.HttpStatusCode?", - "typeSimple": "System.Net.HttpStatusCode?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxExecutionDuration", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MinExecutionDuration", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "HasException", - "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AuditLogging.AuditLogDto", - "typeSimple": "Volo.Abp.AuditLogging.AuditLogDto" - } - }, - "GetErrorRateAsyncByFilter": { - "uniqueName": "GetErrorRateAsyncByFilter", - "name": "GetErrorRateAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/statistics/error-rate", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "filter", - "typeAsString": "Volo.Abp.AuditLogging.GetErrorRateFilter, Volo.Abp.AuditLogging.Application.Contracts", - "type": "Volo.Abp.AuditLogging.GetErrorRateFilter", - "typeSimple": "Volo.Abp.AuditLogging.GetErrorRateFilter", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "filter", - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "filter" - }, - { - "nameOnMethod": "filter", - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "filter" - } - ], - "returnValue": { - "type": "Volo.Abp.AuditLogging.GetErrorRateOutput", - "typeSimple": "Volo.Abp.AuditLogging.GetErrorRateOutput" - } - }, - "GetAverageExecutionDurationPerDayAsyncByFilter": { - "uniqueName": "GetAverageExecutionDurationPerDayAsyncByFilter", - "name": "GetAverageExecutionDurationPerDayAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/statistics/average-execution-duration-per-day", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "filter", - "typeAsString": "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayInput, Volo.Abp.AuditLogging.Application.Contracts", - "type": "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayInput", - "typeSimple": "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "filter", - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "filter" - }, - { - "nameOnMethod": "filter", - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "filter" - } - ], - "returnValue": { - "type": "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayOutput", - "typeSimple": "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayOutput" - } - }, - "GetEntityChangesAsyncByInput": { - "uniqueName": "GetEntityChangesAsyncByInput", - "name": "GetEntityChangesAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/entity-changes", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.AuditLogging.GetEntityChangesDto, Volo.Abp.AuditLogging.Application.Contracts", - "type": "Volo.Abp.AuditLogging.GetEntityChangesDto", - "typeSimple": "Volo.Abp.AuditLogging.GetEntityChangesDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "AuditLogId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityChangeType", - "jsonName": null, - "type": "Volo.Abp.Auditing.EntityChangeType?", - "typeSimple": "Volo.Abp.Auditing.EntityChangeType?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetEntityChangesWithUsernameAsyncByInput": { - "uniqueName": "GetEntityChangesWithUsernameAsyncByInput", - "name": "GetEntityChangesWithUsernameAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/entity-changes-with-username", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.AuditLogging.EntityChangeFilter, Volo.Abp.AuditLogging.Application.Contracts", - "type": "Volo.Abp.AuditLogging.EntityChangeFilter", - "typeSimple": "Volo.Abp.AuditLogging.EntityChangeFilter", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EntityTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.AuditLogging.EntityChangeWithUsernameDto]" - } - }, - "GetEntityChangeWithUsernameAsyncByEntityChangeId": { - "uniqueName": "GetEntityChangeWithUsernameAsyncByEntityChangeId", - "name": "GetEntityChangeWithUsernameAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/entity-change-with-username/{entityChangeId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityChangeId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityChangeId", - "name": "entityChangeId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AuditLogging.EntityChangeWithUsernameDto", - "typeSimple": "Volo.Abp.AuditLogging.EntityChangeWithUsernameDto" - } - }, - "GetEntityChangeAsyncByEntityChangeId": { - "uniqueName": "GetEntityChangeAsyncByEntityChangeId", - "name": "GetEntityChangeAsync", - "httpMethod": "GET", - "url": "api/audit-logging/audit-logs/entity-changes/{entityChangeId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "entityChangeId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "entityChangeId", - "name": "entityChangeId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AuditLogging.EntityChangeDto", - "typeSimple": "Volo.Abp.AuditLogging.EntityChangeDto" - } - } - } - } - } - }, - "featureManagement": { - "rootPath": "featureManagement", - "remoteServiceName": "AbpFeatureManagement", - "controllers": { - "Volo.Abp.FeatureManagement.FeaturesController": { - "controllerName": "Features", - "type": "Volo.Abp.FeatureManagement.FeaturesController", - "interfaces": [ - { - "type": "Volo.Abp.FeatureManagement.IFeatureAppService" - } - ], - "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/feature-management/features", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.FeatureManagement.GetFeatureListResultDto", - "typeSimple": "Volo.Abp.FeatureManagement.GetFeatureListResultDto" - } - }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/feature-management/features", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.FeatureManagement.UpdateFeaturesDto, Volo.Abp.FeatureManagement.Application.Contracts", - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "typeSimple": "Volo.Abp.FeatureManagement.UpdateFeaturesDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "identity": { - "rootPath": "identity", - "remoteServiceName": "AbpIdentity", - "controllers": { - "Volo.Abp.Identity.IdentityClaimTypeController": { - "controllerName": "IdentityClaimType", - "type": "Volo.Abp.Identity.IdentityClaimTypeController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityClaimTypeAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/claim-types", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityClaimTypesInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityClaimTypesInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityClaimTypesInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/claim-types/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.ClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.ClaimTypeDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/claim-types", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.CreateClaimTypeDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.CreateClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.CreateClaimTypeDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.CreateClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.CreateClaimTypeDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.ClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.ClaimTypeDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/claim-types/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UpdateClaimTypeDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.UpdateClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.UpdateClaimTypeDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.UpdateClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.UpdateClaimTypeDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.ClaimTypeDto", - "typeSimple": "Volo.Abp.Identity.ClaimTypeDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/claim-types/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.Identity.IdentityLinkUserController": { - "controllerName": "IdentityLinkUser", - "type": "Volo.Abp.Identity.IdentityLinkUserController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityLinkUserAppService" - } - ], - "actions": { - "LinkAsyncByInput": { - "uniqueName": "LinkAsyncByInput", - "name": "LinkAsync", - "httpMethod": "POST", - "url": "api/identity/link-user/link", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.LinkUserInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.LinkUserInput", - "typeSimple": "Volo.Abp.Identity.LinkUserInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.LinkUserInput", - "typeSimple": "Volo.Abp.Identity.LinkUserInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UnlinkAsyncByInput": { - "uniqueName": "UnlinkAsyncByInput", - "name": "UnlinkAsync", - "httpMethod": "POST", - "url": "api/identity/link-user/unlink", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UnLinkUserInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.UnLinkUserInput", - "typeSimple": "Volo.Abp.Identity.UnLinkUserInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.UnLinkUserInput", - "typeSimple": "Volo.Abp.Identity.UnLinkUserInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "IsLinkedAsyncByInput": { - "uniqueName": "IsLinkedAsyncByInput", - "name": "IsLinkedAsync", - "httpMethod": "POST", - "url": "api/identity/link-user/is-linked", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IsLinkedInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IsLinkedInput", - "typeSimple": "Volo.Abp.Identity.IsLinkedInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IsLinkedInput", - "typeSimple": "Volo.Abp.Identity.IsLinkedInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" - } - }, - "GenerateLinkTokenAsync": { - "uniqueName": "GenerateLinkTokenAsync", - "name": "GenerateLinkTokenAsync", - "httpMethod": "POST", - "url": "api/identity/link-user/generate-link-token", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.String", - "typeSimple": "string" - } - }, - "VerifyLinkTokenAsyncByToken": { - "uniqueName": "VerifyLinkTokenAsyncByToken", - "name": "VerifyLinkTokenAsync", - "httpMethod": "POST", - "url": "api/identity/link-user/verify-link-token", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "token", - "typeAsString": "Volo.Abp.Identity.VerifyLinkTokenInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.VerifyLinkTokenInput", - "typeSimple": "Volo.Abp.Identity.VerifyLinkTokenInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "token", - "name": "token", - "jsonName": null, - "type": "Volo.Abp.Identity.VerifyLinkTokenInput", - "typeSimple": "Volo.Abp.Identity.VerifyLinkTokenInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" - } - }, - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity/link-user", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - } - } - }, - "Volo.Abp.Identity.IdentityRoleController": { - "controllerName": "IdentityRole", - "type": "Volo.Abp.Identity.IdentityRoleController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityRoleAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/roles/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/roles/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityRoleDto", - "typeSimple": "Volo.Abp.Identity.IdentityRoleDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/roles/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetAllListAsync": { - "uniqueName": "GetAllListAsync", - "name": "GetAllListAsync", - "httpMethod": "GET", - "url": "api/identity/roles/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityRoleListInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityRoleListInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityRoleListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "UpdateClaimsAsyncByIdAndInput": { - "uniqueName": "UpdateClaimsAsyncByIdAndInput", - "name": "UpdateClaimsAsync", - "httpMethod": "PUT", - "url": "api/identity/roles/{id}/claims", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.Identity.IdentityRoleClaimDto, Volo.Abp.Identity.Pro.Application.Contracts, Version=4.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityRoleClaimDto]", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityRoleClaimDto]", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetClaimsAsyncById": { - "uniqueName": "GetClaimsAsyncById", - "name": "GetClaimsAsync", - "httpMethod": "GET", - "url": "api/identity/roles/{id}/claims", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityRoleClaimDto]" - } - }, - "GetAllClaimTypesAsync": { - "uniqueName": "GetAllClaimTypesAsync", - "name": "GetAllClaimTypesAsync", - "httpMethod": "GET", - "url": "api/identity/roles/all-claim-types", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.ClaimTypeDto]" - } - } - } - }, - "Volo.Abp.Identity.IdentitySecurityLogController": { - "controllerName": "IdentitySecurityLog", - "type": "Volo.Abp.Identity.IdentitySecurityLogController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentitySecurityLogAppService" - } - ], - "actions": { - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/security-logs", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentitySecurityLogListInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentitySecurityLogListInput", - "typeSimple": "Volo.Abp.Identity.GetIdentitySecurityLogListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "StartTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EndTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Identity", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Action", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/security-logs/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentitySecurityLogDto", - "typeSimple": "Volo.Abp.Identity.IdentitySecurityLogDto" - } - }, - "GetMyListAsyncByInput": { - "uniqueName": "GetMyListAsyncByInput", - "name": "GetMyListAsync", - "httpMethod": "GET", - "url": "api/identity/security-logs/my", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentitySecurityLogListInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentitySecurityLogListInput", - "typeSimple": "Volo.Abp.Identity.GetIdentitySecurityLogListInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "StartTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "EndTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Identity", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Action", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Query", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetMyAsyncById": { - "uniqueName": "GetMyAsyncById", - "name": "GetMyAsync", - "httpMethod": "GET", - "url": "api/identity/security-logs/my/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentitySecurityLogDto", - "typeSimple": "Volo.Abp.Identity.IdentitySecurityLogDto" - } - } - } - }, - "Volo.Abp.Identity.IdentitySettingsController": { - "controllerName": "IdentitySettings", - "type": "Volo.Abp.Identity.IdentitySettingsController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentitySettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/settings", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Identity.IdentitySettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentitySettingsDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/settings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentitySettingsDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentitySettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentitySettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentitySettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentitySettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.Identity.IdentityUserController": { - "controllerName": "IdentityUser", - "type": "Volo.Abp.Identity.IdentityUserController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityUserAppService" - } - ], - "actions": { - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/users/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/users", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/users", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserCreateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/users/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetRolesAsyncById": { - "uniqueName": "GetRolesAsyncById", - "name": "GetRolesAsync", - "httpMethod": "GET", - "url": "api/identity/users/{id}/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetAssignableRolesAsync": { - "uniqueName": "GetAssignableRolesAsync", - "name": "GetAssignableRolesAsync", - "httpMethod": "GET", - "url": "api/identity/users/assignable-roles", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetAvailableOrganizationUnitsAsync": { - "uniqueName": "GetAvailableOrganizationUnitsAsync", - "name": "GetAvailableOrganizationUnitsAsync", - "httpMethod": "GET", - "url": "api/identity/users/available-organization-units", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetAllClaimTypesAsync": { - "uniqueName": "GetAllClaimTypesAsync", - "name": "GetAllClaimTypesAsync", - "httpMethod": "GET", - "url": "api/identity/users/all-claim-types", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.ClaimTypeDto]" - } - }, - "GetClaimsAsyncById": { - "uniqueName": "GetClaimsAsyncById", - "name": "GetClaimsAsync", - "httpMethod": "GET", - "url": "api/identity/users/{id}/claims", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityUserClaimDto]" - } - }, - "GetOrganizationUnitsAsyncById": { - "uniqueName": "GetOrganizationUnitsAsyncById", - "name": "GetOrganizationUnitsAsync", - "httpMethod": "GET", - "url": "api/identity/users/{id}/organization-units", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.OrganizationUnitDto]" - } - }, - "UpdateRolesAsyncByIdAndInput": { - "uniqueName": "UpdateRolesAsyncByIdAndInput", - "name": "UpdateRolesAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdateRolesDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdateRolesDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UpdateClaimsAsyncByIdAndInput": { - "uniqueName": "UpdateClaimsAsyncByIdAndInput", - "name": "UpdateClaimsAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/claims", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "System.Collections.Generic.List`1[[Volo.Abp.Identity.IdentityUserClaimDto, Volo.Abp.Identity.Pro.Application.Contracts, Version=4.4.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib", - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityUserClaimDto]", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "System.Collections.Generic.List", - "typeSimple": "[Volo.Abp.Identity.IdentityUserClaimDto]", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "LockAsyncByIdAndLockoutDuration": { - "uniqueName": "LockAsyncByIdAndLockoutDuration", - "name": "LockAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/lock/{lockoutDuration}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "lockoutDuration", - "typeAsString": "System.Int32, System.Private.CoreLib", - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "lockoutDuration", - "name": "lockoutDuration", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UnlockAsyncById": { - "uniqueName": "UnlockAsyncById", - "name": "UnlockAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/unlock", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "FindByUsernameAsyncByUsername": { - "uniqueName": "FindByUsernameAsyncByUsername", - "name": "FindByUsernameAsync", - "httpMethod": "GET", - "url": "api/identity/users/by-username/{username}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "username", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "username", - "name": "username", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - "FindByEmailAsyncByEmail": { - "uniqueName": "FindByEmailAsyncByEmail", - "name": "FindByEmailAsync", - "httpMethod": "GET", - "url": "api/identity/users/by-email/{email}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "email", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "email", - "name": "email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.IdentityUserDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserDto" - } - }, - "GetTwoFactorEnabledAsyncById": { - "uniqueName": "GetTwoFactorEnabledAsyncById", - "name": "GetTwoFactorEnabledAsync", - "httpMethod": "GET", - "url": "api/identity/users/{id}/two-factor-enabled", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" - } - }, - "SetTwoFactorEnabledAsyncByIdAndEnabled": { - "uniqueName": "SetTwoFactorEnabledAsyncByIdAndEnabled", - "name": "SetTwoFactorEnabledAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/two-factor/{enabled}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "enabled", - "typeAsString": "System.Boolean, System.Private.CoreLib", - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "enabled", - "name": "enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "UpdatePasswordAsyncByIdAndInput": { - "uniqueName": "UpdatePasswordAsyncByIdAndInput", - "name": "UpdatePasswordAsync", - "httpMethod": "PUT", - "url": "api/identity/users/{id}/change-password", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.IdentityUserUpdatePasswordInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.IdentityUserUpdatePasswordInput", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdatePasswordInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserUpdatePasswordInput", - "typeSimple": "Volo.Abp.Identity.IdentityUserUpdatePasswordInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.Identity.IdentityUserLookupController": { - "controllerName": "IdentityUserLookup", - "type": "Volo.Abp.Identity.IdentityUserLookupController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IIdentityUserLookupAppService" - } - ], - "actions": { - "FindByIdAsyncById": { - "uniqueName": "FindByIdAsyncById", - "name": "FindByIdAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" - } - }, - "FindByUserNameAsyncByUserName": { - "uniqueName": "FindByUserNameAsyncByUserName", - "name": "FindByUserNameAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/by-username/{userName}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "userName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "userName", - "name": "userName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Users.UserData", - "typeSimple": "Volo.Abp.Users.UserData" - } - }, - "SearchAsyncByInput": { - "uniqueName": "SearchAsyncByInput", - "name": "SearchAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/search", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupSearchInputDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupSearchInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupSearchInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetCountAsyncByInput": { - "uniqueName": "GetCountAsyncByInput", - "name": "GetCountAsync", - "httpMethod": "GET", - "url": "api/identity/users/lookup/count", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UserLookupCountInputDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.UserLookupCountInputDto", - "typeSimple": "Volo.Abp.Identity.UserLookupCountInputDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "System.Int64", - "typeSimple": "number" - } - } - } - }, - "Volo.Abp.Identity.OrganizationUnitController": { - "controllerName": "OrganizationUnit", - "type": "Volo.Abp.Identity.OrganizationUnitController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IOrganizationUnitAppService" - } - ], - "actions": { - "AddRolesAsyncByIdAndInput": { - "uniqueName": "AddRolesAsyncByIdAndInput", - "name": "AddRolesAsync", - "httpMethod": "PUT", - "url": "api/identity/organization-units/{id}/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.OrganizationUnitRoleInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.OrganizationUnitRoleInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitRoleInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.OrganizationUnitRoleInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitRoleInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "AddMembersAsyncByIdAndInput": { - "uniqueName": "AddMembersAsyncByIdAndInput", - "name": "AddMembersAsync", - "httpMethod": "PUT", - "url": "api/identity/organization-units/{id}/members", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.OrganizationUnitUserInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.OrganizationUnitUserInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitUserInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.OrganizationUnitUserInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitUserInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "CreateAsyncByInput": { - "uniqueName": "CreateAsyncByInput", - "name": "CreateAsync", - "httpMethod": "POST", - "url": "api/identity/organization-units", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.OrganizationUnitCreateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.OrganizationUnitCreateDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitCreateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.OrganizationUnitCreateDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitCreateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto" - } - }, - "DeleteAsyncById": { - "uniqueName": "DeleteAsyncById", - "name": "DeleteAsync", - "httpMethod": "DELETE", - "url": "api/identity/organization-units", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetAsyncById": { - "uniqueName": "GetAsyncById", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto" - } - }, - "GetListAsyncByInput": { - "uniqueName": "GetListAsyncByInput", - "name": "GetListAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetOrganizationUnitInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetOrganizationUnitInput", - "typeSimple": "Volo.Abp.Identity.GetOrganizationUnitInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetListAllAsync": { - "uniqueName": "GetListAllAsync", - "name": "GetListAllAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/all", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.ListResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.ListResultDto" - } - }, - "GetRolesAsyncByIdAndInput": { - "uniqueName": "GetRolesAsyncByIdAndInput", - "name": "GetRolesAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/{id}/roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto, Volo.Abp.Ddd.Application.Contracts", - "type": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetMembersAsyncByIdAndInput": { - "uniqueName": "GetMembersAsyncByIdAndInput", - "name": "GetMembersAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/{id}/members", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetIdentityUsersInput", - "typeSimple": "Volo.Abp.Identity.GetIdentityUsersInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "MoveAsyncByIdAndInput": { - "uniqueName": "MoveAsyncByIdAndInput", - "name": "MoveAsync", - "httpMethod": "PUT", - "url": "api/identity/organization-units/{id}/move", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.OrganizationUnitMoveInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.OrganizationUnitMoveInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitMoveInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.OrganizationUnitMoveInput", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitMoveInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetAvailableUsersAsyncByInput": { - "uniqueName": "GetAvailableUsersAsyncByInput", - "name": "GetAvailableUsersAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/available-users", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetAvailableUsersInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetAvailableUsersInput", - "typeSimple": "Volo.Abp.Identity.GetAvailableUsersInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "GetAvailableRolesAsyncByInput": { - "uniqueName": "GetAvailableRolesAsyncByInput", - "name": "GetAvailableRolesAsync", - "httpMethod": "GET", - "url": "api/identity/organization-units/available-roles", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.GetAvailableRolesInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.GetAvailableRolesInput", - "typeSimple": "Volo.Abp.Identity.GetAvailableRolesInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "Volo.Abp.Application.Dtos.PagedResultDto", - "typeSimple": "Volo.Abp.Application.Dtos.PagedResultDto" - } - }, - "UpdateAsyncByIdAndInput": { - "uniqueName": "UpdateAsyncByIdAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/organization-units/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.OrganizationUnitUpdateDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.OrganizationUnitUpdateDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitUpdateDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.OrganizationUnitUpdateDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitUpdateDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto", - "typeSimple": "Volo.Abp.Identity.OrganizationUnitWithDetailsDto" - } - }, - "RemoveMemberAsyncByIdAndMemberId": { - "uniqueName": "RemoveMemberAsyncByIdAndMemberId", - "name": "RemoveMemberAsync", - "httpMethod": "DELETE", - "url": "api/identity/organization-units/{id}/members/{memberId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "memberId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "memberId", - "name": "memberId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "RemoveRoleAsyncByIdAndRoleId": { - "uniqueName": "RemoveRoleAsyncByIdAndRoleId", - "name": "RemoveRoleAsync", - "httpMethod": "DELETE", - "url": "api/identity/organization-units/{id}/roles/{roleId}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "roleId", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - }, - { - "nameOnMethod": "roleId", - "name": "roleId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - }, - "Volo.Abp.Identity.ProfileController": { - "controllerName": "Profile", - "type": "Volo.Abp.Identity.ProfileController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IProfileAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/my-profile", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/my-profile", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" - } - }, - "ChangePasswordAsyncByInput": { - "uniqueName": "ChangePasswordAsyncByInput", - "name": "ChangePasswordAsync", - "httpMethod": "POST", - "url": "api/identity/my-profile/change-password", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Pro.Application.Contracts", - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - }, - "GetTwoFactorEnabledAsync": { - "uniqueName": "GetTwoFactorEnabledAsync", - "name": "GetTwoFactorEnabledAsync", - "httpMethod": "GET", - "url": "api/identity/my-profile/two-factor-enabled", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "System.Boolean", - "typeSimple": "boolean" - } - }, - "SetTwoFactorEnabledAsyncByEnabled": { - "uniqueName": "SetTwoFactorEnabledAsyncByEnabled", - "name": "SetTwoFactorEnabledAsync", - "httpMethod": "POST", - "url": "api/identity/my-profile/set-two-factor-enabled", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "enabled", - "typeAsString": "System.Boolean, System.Private.CoreLib", - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "enabled", - "name": "enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "settingManagement": { - "rootPath": "settingManagement", - "remoteServiceName": "SettingManagement", - "controllers": { - "Volo.Abp.SettingManagement.EmailSettingsController": { - "controllerName": "EmailSettings", - "type": "Volo.Abp.SettingManagement.EmailSettingsController", - "interfaces": [ - { - "type": "Volo.Abp.SettingManagement.IEmailSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/setting-management/emailing", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.SettingManagement.EmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.EmailSettingsDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "POST", - "url": "api/setting-management/emailing", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto, Volo.Abp.SettingManagement.Application.Contracts", - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "typeSimple": "Volo.Abp.SettingManagement.UpdateEmailSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "permissionManagement": { - "rootPath": "permissionManagement", - "remoteServiceName": "AbpPermissionManagement", - "controllers": { - "Volo.Abp.PermissionManagement.PermissionsController": { - "controllerName": "Permissions", - "type": "Volo.Abp.PermissionManagement.PermissionsController", - "interfaces": [ - { - "type": "Volo.Abp.PermissionManagement.IPermissionAppService" - } - ], - "actions": { - "GetAsyncByProviderNameAndProviderKey": { - "uniqueName": "GetAsyncByProviderNameAndProviderKey", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/permission-management/permissions", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.PermissionManagement.GetPermissionListResultDto", - "typeSimple": "Volo.Abp.PermissionManagement.GetPermissionListResultDto" - } - }, - "UpdateAsyncByProviderNameAndProviderKeyAndInput": { - "uniqueName": "UpdateAsyncByProviderNameAndProviderKeyAndInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/permission-management/permissions", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "providerName", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "providerKey", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - }, - { - "name": "input", - "typeAsString": "Volo.Abp.PermissionManagement.UpdatePermissionsDto, Volo.Abp.PermissionManagement.Application.Contracts", - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "providerName", - "name": "providerName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "providerKey", - "name": "providerKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - }, - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "typeSimple": "Volo.Abp.PermissionManagement.UpdatePermissionsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - }, - "abp": { - "rootPath": "abp", - "remoteServiceName": "abp", - "controllers": { - "Pages.Abp.MultiTenancy.AbpTenantController": { - "controllerName": "AbpTenant", - "type": "Pages.Abp.MultiTenancy.AbpTenantController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.IAbpTenantAppService" - } - ], - "actions": { - "FindTenantByNameAsyncByName": { - "uniqueName": "FindTenantByNameAsyncByName", - "name": "FindTenantByNameAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-name/{name}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "name", - "typeAsString": "System.String, System.Private.CoreLib", - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "name", - "name": "name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - } - }, - "FindTenantByIdAsyncById": { - "uniqueName": "FindTenantByIdAsyncById", - "name": "FindTenantByIdAsync", - "httpMethod": "GET", - "url": "api/abp/multi-tenancy/tenants/by-id/{id}", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "id", - "typeAsString": "System.Guid, System.Private.CoreLib", - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "id", - "name": "id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": [], - "bindingSourceId": "Path", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto" - } - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController": { - "controllerName": "AbpApplicationConfiguration", - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationController", - "interfaces": [ - { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IAbpApplicationConfigurationAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/abp/application-configuration", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto", - "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationConfigurationDto" - } - } - } - }, - "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController": { - "controllerName": "AbpApiDefinition", - "type": "Volo.Abp.AspNetCore.Mvc.ApiExploring.AbpApiDefinitionController", - "interfaces": [], - "actions": { - "GetByModel": { - "uniqueName": "GetByModel", - "name": "Get", - "httpMethod": "GET", - "url": "api/abp/api-definition", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "model", - "typeAsString": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto, Volo.Abp.Http", - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModelRequestDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "model", - "name": "IncludeTypes", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "model" - } - ], - "returnValue": { - "type": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel", - "typeSimple": "Volo.Abp.Http.Modeling.ApplicationApiDescriptionModel" - } - } - } - } - } - }, - "leptonThemeManagement": { - "rootPath": "leptonThemeManagement", - "remoteServiceName": "LeptonThemeManagement", - "controllers": { - "Volo.Abp.LeptonTheme.LeptonThemeSettingsController": { - "controllerName": "LeptonThemeSettings", - "type": "Volo.Abp.LeptonTheme.LeptonThemeSettingsController", - "interfaces": [ - { - "type": "Volo.Abp.LeptonTheme.Management.ILeptonThemeSettingsAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/lepton-theme-management/settings", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.LeptonTheme.Management.LeptonThemeSettingsDto", - "typeSimple": "Volo.Abp.LeptonTheme.Management.LeptonThemeSettingsDto" - } - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/lepton-theme-management/settings", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto, Volo.Abp.LeptonTheme.Management.Application.Contracts", - "type": "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto", - "typeSimple": "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto", - "typeSimple": "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - } - } - } - } - } - } - }, - "types": { - "Volo.Abp.Account.AccountSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsSelfRegistrationEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "EnableLocalLogin", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.AccountLdapSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EnableLdapLogin", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "LdapServerHost", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LdapServerPort", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LdapBaseDc", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LdapUserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LdapPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.AccountTwoFactorSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TwoFactorBehaviour", - "jsonName": null, - "type": "Volo.Abp.Identity.Features.IdentityProTwoFactorBehaviour", - "typeSimple": "Volo.Abp.Identity.Features.IdentityProTwoFactorBehaviour", - "isRequired": false - }, - { - "name": "IsRememberBrowserEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UsersCanChange", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.Features.IdentityProTwoFactorBehaviour": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Optional", - "Disabled", - "Forced" - ], - "enumValues": [ - 0, - 1, - 2 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.Account.AccountRecaptchaSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UseCaptchaOnLogin", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UseCaptchaOnRegistration", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "VerifyBaseUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SiteKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SiteSecret", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Version", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "Score", - "jsonName": null, - "type": "System.Double", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.AccountExternalProviderSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Settings", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettings]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettings]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ExternalProviders.ExternalProviderSettings": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - }, - { - "name": "SecretProperties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty": { - "baseType": "Volo.Abp.NameValue", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.NameValue": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "T", - "typeSimple": "T", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.UpdateExternalProviderDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - }, - { - "name": "SecretProperties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.UserLoginInfo": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserNameOrEmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Password", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "RememberMe", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "TenanId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.AbpLoginResult": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Result", - "jsonName": null, - "type": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LoginResultType", - "typeSimple": "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LoginResultType", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LoginResultType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Success", - "InvalidUserNameOrPassword", - "NotAllowed", - "LockedOut", - "RequiresTwoFactor", - "NotLinked" - ], - "enumValues": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.Account.Public.Web.Areas.Account.Controllers.Models.LinkUserLoginInfo": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "LinkUserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "LinkTenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.RegisterDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "EmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Password", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "AppName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ReturnUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ReturnUrlHash", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CaptchaResponse", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.ObjectExtending.ExtensibleObject": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ExtraProperties", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EmailConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumberConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "SupportTwoFactor", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "LockoutEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsLockedOut", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ConcurrencyStamp", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TKey" - ], - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "TKey", - "typeSimple": "TKey", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.SendPasswordResetCodeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "AppName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ReturnUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ReturnUrlHash", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ResetPasswordDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ResetToken", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Password", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Account.IdentityUserConfirmationStateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EmailConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "PhoneNumberConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.SendPhoneNumberConfirmationTokenDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.SendEmailConfirmationTokenDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "AppName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ReturnUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ReturnUrlHash", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ConfirmPhoneNumberInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Token", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Account.ConfirmEmailInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Token", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Account.ProfilePictureInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "Volo.Abp.Account.ProfilePictureType", - "typeSimple": "Volo.Abp.Account.ProfilePictureType", - "isRequired": false - }, - { - "name": "ImageContent", - "jsonName": null, - "type": "[System.Byte]", - "typeSimple": "[number]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ProfilePictureType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "None", - "Gravatar", - "Image" - ], - "enumValues": [ - 0, - 1, - 2 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.Account.ProfilePictureSourceDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "Volo.Abp.Account.ProfilePictureType", - "typeSimple": "Volo.Abp.Account.ProfilePictureType", - "isRequired": false - }, - { - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FileContent", - "jsonName": null, - "type": "[System.Byte]", - "typeSimple": "[number]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.SendEmailSecurityCodeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Account.SendPhoneSecurityCodeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Microsoft.AspNetCore.Http.IFormFile": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ContentType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ContentDisposition", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Headers", - "jsonName": null, - "type": "{System.String:Microsoft.Extensions.Primitives.StringValues}", - "typeSimple": "{string:Microsoft.Extensions.Primitives.StringValues}", - "isRequired": false - }, - { - "name": "Length", - "jsonName": null, - "type": "System.Int64", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FileName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Microsoft.AspNetCore.Mvc.IActionResult": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.Account.ExternalProviders.ExternalProviderDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Providers", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderItemDto]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderItemDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ExternalProviders.ExternalProviderItemDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ExternalProviders.GetByNameInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Account.ExternalProviders.ExternalProviderItemWithSecretDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Success", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - }, - { - "name": "SecretProperties", - "jsonName": null, - "type": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "typeSimple": "[Volo.Abp.Account.ExternalProviders.ExternalProviderSettingsProperty]", - "isRequired": false - } - ] - }, - "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Success", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsActive", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetAuditLogListDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "StartTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "EndTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Url", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "HttpMethod", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "HttpStatusCode", - "jsonName": null, - "type": "System.Net.HttpStatusCode?", - "typeSimple": "System.Net.HttpStatusCode?", - "isRequired": false - }, - { - "name": "MaxExecutionDuration", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "MinExecutionDuration", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "HasException", - "jsonName": null, - "type": "System.Boolean?", - "typeSimple": "boolean?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.PagedResultRequestDto": { - "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "SkipCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DefaultMaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxMaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxResultCount", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "System.Nullable": { - "baseType": "System.ValueType", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "HasValue", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "T", - "typeSimple": "T", - "isRequired": false - } - ] - }, - "System.Net.HttpStatusCode": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Continue", - "SwitchingProtocols", - "Processing", - "EarlyHints", - "OK", - "Created", - "Accepted", - "NonAuthoritativeInformation", - "NoContent", - "ResetContent", - "PartialContent", - "MultiStatus", - "AlreadyReported", - "IMUsed", - "MultipleChoices", - "Ambiguous", - "MovedPermanently", - "Moved", - "Found", - "Redirect", - "SeeOther", - "RedirectMethod", - "NotModified", - "UseProxy", - "Unused", - "TemporaryRedirect", - "RedirectKeepVerb", - "PermanentRedirect", - "BadRequest", - "Unauthorized", - "PaymentRequired", - "Forbidden", - "NotFound", - "MethodNotAllowed", - "NotAcceptable", - "ProxyAuthenticationRequired", - "RequestTimeout", - "Conflict", - "Gone", - "LengthRequired", - "PreconditionFailed", - "RequestEntityTooLarge", - "RequestUriTooLong", - "UnsupportedMediaType", - "RequestedRangeNotSatisfiable", - "ExpectationFailed", - "MisdirectedRequest", - "UnprocessableEntity", - "Locked", - "FailedDependency", - "UpgradeRequired", - "PreconditionRequired", - "TooManyRequests", - "RequestHeaderFieldsTooLarge", - "UnavailableForLegalReasons", - "InternalServerError", - "NotImplemented", - "BadGateway", - "ServiceUnavailable", - "GatewayTimeout", - "HttpVersionNotSupported", - "VariantAlsoNegotiates", - "InsufficientStorage", - "LoopDetected", - "NotExtended", - "NetworkAuthenticationRequired" - ], - "enumValues": [ - 100, - 101, - 102, - 103, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 226, - 300, - 300, - 301, - 301, - 302, - 302, - 303, - 303, - 304, - 305, - 306, - 307, - 307, - 308, - 400, - 401, - 402, - 403, - 404, - 405, - 406, - 407, - 408, - 409, - 410, - 411, - 412, - 413, - 414, - 415, - 416, - 417, - 421, - 422, - 423, - 424, - 426, - 428, - 429, - 431, - 451, - 500, - 501, - 502, - 503, - 504, - 505, - 506, - 507, - 508, - 510, - 511 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.Application.Dtos.PagedResultDto": { - "baseType": "Volo.Abp.Application.Dtos.ListResultDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "TotalCount", - "jsonName": null, - "type": "System.Int64", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "T" - ], - "properties": [ - { - "name": "Items", - "jsonName": null, - "type": "[T]", - "typeSimple": "[T]", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.AuditLogDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ImpersonatorUserId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ImpersonatorTenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ExecutionTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ExecutionDuration", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "ClientIpAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BrowserInfo", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "HttpMethod", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Url", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Exceptions", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Comments", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "HttpStatusCode", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityChanges", - "jsonName": null, - "type": "[Volo.Abp.AuditLogging.EntityChangeDto]", - "typeSimple": "[Volo.Abp.AuditLogging.EntityChangeDto]", - "isRequired": false - }, - { - "name": "Actions", - "jsonName": null, - "type": "[Volo.Abp.AuditLogging.AuditLogActionDto]", - "typeSimple": "[Volo.Abp.AuditLogging.AuditLogActionDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.EntityChangeDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "AuditLogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ChangeTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ChangeType", - "jsonName": null, - "type": "Volo.Abp.Auditing.EntityChangeType", - "typeSimple": "Volo.Abp.Auditing.EntityChangeType", - "isRequired": false - }, - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PropertyChanges", - "jsonName": null, - "type": "[Volo.Abp.AuditLogging.EntityPropertyChangeDto]", - "typeSimple": "[Volo.Abp.AuditLogging.EntityPropertyChangeDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.Auditing.EntityChangeType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Created", - "Updated", - "Deleted" - ], - "enumValues": [ - 0, - 1, - 2 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.AuditLogging.EntityPropertyChangeDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "EntityChangeId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "NewValue", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "OriginalValue", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PropertyName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PropertyTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.EntityDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TKey" - ], - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "TKey", - "typeSimple": "TKey", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.EntityDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.AuditLogging.AuditLogActionDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "AuditLogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ServiceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "MethodName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Parameters", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ExecutionTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ExecutionDuration", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetErrorRateFilter": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetErrorRateOutput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Data", - "jsonName": null, - "type": "{System.String:System.Int64}", - "typeSimple": "{string:number}", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetAverageExecutionDurationPerDayOutput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Data", - "jsonName": null, - "type": "{System.String:System.Double}", - "typeSimple": "{string:number}", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.GetEntityChangesDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "AuditLogId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "EntityChangeType", - "jsonName": null, - "type": "Volo.Abp.Auditing.EntityChangeType?", - "typeSimple": "Volo.Abp.Auditing.EntityChangeType?", - "isRequired": false - }, - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "StartDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "EndDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.EntityChangeFilter": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityTypeFullName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.AuditLogging.EntityChangeWithUsernameDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityChange", - "jsonName": null, - "type": "Volo.Abp.AuditLogging.EntityChangeDto", - "typeSimple": "Volo.Abp.AuditLogging.EntityChangeDto", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetIdentityClaimTypesInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.ClaimTypeDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsStatic", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Regex", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RegexDescription", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ValueType", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityClaimValueType", - "typeSimple": "Volo.Abp.Identity.IdentityClaimValueType", - "isRequired": false - }, - { - "name": "ValueTypeAsString", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityClaimValueType": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "String", - "Int", - "Boolean", - "DateTime" - ], - "enumValues": [ - 0, - 1, - 2, - 3 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.Identity.CreateClaimTypeDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Regex", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RegexDescription", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ValueType", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityClaimValueType", - "typeSimple": "Volo.Abp.Identity.IdentityClaimValueType", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.UpdateClaimTypeDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Regex", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RegexDescription", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ValueType", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityClaimValueType", - "typeSimple": "Volo.Abp.Identity.IdentityClaimValueType", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.LinkUserInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Token", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Identity.UnLinkUserInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IsLinkedInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.VerifyLinkTokenInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Token", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Identity.LinkUserDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TargetUserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TargetUserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TargetTenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "TargetTenantName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DirectlyLinked", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityRoleDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsDefault", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsStatic", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsPublic", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ConcurrencyStamp", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityRoleCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "IsDefault", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsPublic", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityRoleUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ConcurrencyStamp", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetIdentityRoleListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityRoleClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RoleId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClaimType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClaimValue", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetIdentitySecurityLogListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "StartTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "EndTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Identity", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Action", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentitySecurityLogDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "ApplicationName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Identity", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Action", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CorrelationId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientIpAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BrowserInfo", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ExtraProperties", - "jsonName": null, - "type": "{System.String:System.Object}", - "typeSimple": "{string:object}", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentitySettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Password", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityPasswordSettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentityPasswordSettingsDto", - "isRequired": false - }, - { - "name": "Lockout", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityLockoutSettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentityLockoutSettingsDto", - "isRequired": false - }, - { - "name": "SignIn", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentitySignInSettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentitySignInSettingsDto", - "isRequired": false - }, - { - "name": "User", - "jsonName": null, - "type": "Volo.Abp.Identity.IdentityUserSettingsDto", - "typeSimple": "Volo.Abp.Identity.IdentityUserSettingsDto", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityPasswordSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RequiredLength", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "RequiredUniqueChars", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "RequireNonAlphanumeric", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireLowercase", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireUppercase", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireDigit", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityLockoutSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "AllowedForNewUsers", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "LockoutDuration", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "MaxFailedAccessAttempts", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentitySignInSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RequireConfirmedEmail", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "EnablePhoneNumberConfirmation", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireConfirmedPhoneNumber", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IsUserNameUpdateEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsEmailUpdateEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetIdentityUsersInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserCreateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Password", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "SendConfirmationEmail", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LockoutEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RoleNames", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "OrganizationUnitIds", - "jsonName": null, - "type": "[System.Guid]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserUpdateDto": { - "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ConcurrencyStamp", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ParentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Code", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Roles", - "jsonName": null, - "type": "[Volo.Abp.Identity.IdentityRoleDto]", - "typeSimple": "[Volo.Abp.Identity.IdentityRoleDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "IsDeleted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DeleterId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "DeletionTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "LastModificationTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "LastModifierId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClaimType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClaimValue", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ParentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Code", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Roles", - "jsonName": null, - "type": "[Volo.Abp.Identity.OrganizationUnitRoleDto]", - "typeSimple": "[Volo.Abp.Identity.OrganizationUnitRoleDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitRoleDto": { - "baseType": "Volo.Abp.Application.Dtos.CreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "OrganizationUnitId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RoleId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.CreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RoleNames", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": true - } - ] - }, - "Volo.Abp.Identity.IdentityUserUpdatePasswordInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "NewPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Users.UserData": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EmailConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumberConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.UserLookupSearchInputDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Sorting", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.UserLookupCountInputDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitRoleInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "RoleIds", - "jsonName": null, - "type": "[System.Guid]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitUserInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserIds", - "jsonName": null, - "type": "[System.Guid]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitCreateDto": { - "baseType": "Volo.Abp.Identity.OrganizationUnitCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ParentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.Identity.GetOrganizationUnitInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitMoveInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "NewParentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetAvailableUsersInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.GetAvailableRolesInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.OrganizationUnitUpdateDto": { - "baseType": "Volo.Abp.Identity.OrganizationUnitCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Abp.Identity.ProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EmailConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumberConfirmed", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsExternal", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "HasPassword", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.UpdateProfileDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PhoneNumber", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Identity.ChangePasswordInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "CurrentPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "NewPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.GetApiResourceListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowedAccessTokenSigningAlgorithms", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Secrets", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceSecretDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceSecretDto]", - "isRequired": false - }, - { - "name": "Scopes", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceScopeDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceScopeDto]", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourcePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourcePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceSecretDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Expiration", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceScopeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Scope", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourcePropertyDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Key", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.CreateApiResourceDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "AllowedAccessTokenSigningAlgorithms", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiResource.Dtos.UpdateApiResourceDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "AllowedAccessTokenSigningAlgorithms", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Secrets", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceSecretDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceSecretDto]", - "isRequired": false - }, - { - "name": "Scopes", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceScopeDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceScopeDto]", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourceClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourcePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiResource.Dtos.ApiResourcePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.GetApiScopeListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiScopeId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ApiScopeId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Key", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.CreateApiScopeDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ApiScope.Dtos.UpdateApiScopeDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopeClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.ApiScope.Dtos.ApiScopePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.GetClientListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LogoUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ProtocolType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RequireClientSecret", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireConsent", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowRememberConsent", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AlwaysIncludeUserClaimsInIdToken", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequirePkce", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowPlainTextPkce", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireRequestObject", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowAccessTokensViaBrowser", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "FrontChannelLogoutUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FrontChannelLogoutSessionRequired", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "BackChannelLogoutUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BackChannelLogoutSessionRequired", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowOfflineAccess", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IdentityTokenLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "AllowedIdentityTokenSigningAlgorithms", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "AccessTokenLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "AuthorizationCodeLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "ConsentLifetime", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "AbsoluteRefreshTokenLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "SlidingRefreshTokenLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "RefreshTokenUsage", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "UpdateAccessTokenClaimsOnRefresh", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RefreshTokenExpiration", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "AccessTokenType", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "EnableLocalLogin", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IncludeJwtId", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AlwaysSendClientClaims", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ClientClaimsPrefix", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PairWiseSubjectSalt", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserSsoLifetime", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "UserCodeType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DeviceCodeLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "ClientSecrets", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "isRequired": false - }, - { - "name": "AllowedScopes", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientScopeDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientScopeDto]", - "isRequired": false - }, - { - "name": "Claims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientClaimDto]", - "isRequired": false - }, - { - "name": "AllowedGrantTypes", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientGrantTypeDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientGrantTypeDto]", - "isRequired": false - }, - { - "name": "IdentityProviderRestrictions", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientIdentityProviderRestrictionDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientIdentityProviderRestrictionDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPropertyDto]", - "isRequired": false - }, - { - "name": "AllowedCorsOrigins", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientCorsOriginDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientCorsOriginDto]", - "isRequired": false - }, - { - "name": "RedirectUris", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientRedirectUriDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientRedirectUriDto]", - "isRequired": false - }, - { - "name": "PostLogoutRedirectUris", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPostLogoutRedirectUriDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPostLogoutRedirectUriDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Expiration", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientScopeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Scope", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientGrantTypeDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "GrantType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientIdentityProviderRestrictionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Provider", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientPropertyDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Key", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientCorsOriginDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Origin", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientRedirectUriDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RedirectUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.ClientPostLogoutRedirectUriDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "PostLogoutRedirectUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.CreateClientDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "ClientName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LogoUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RequireConsent", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "CallbackUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LogoutUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Secrets", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "isRequired": false - }, - { - "name": "Scopes", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.Client.Dtos.UpdateClientDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ClientName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ClientUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "LogoUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireConsent", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowOfflineAccess", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowRememberConsent", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequirePkce", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireClientSecret", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "RequireRequestObject", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AccessTokenLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "ConsentLifetime", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "AccessTokenType", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "EnableLocalLogin", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "FrontChannelLogoutUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FrontChannelLogoutSessionRequired", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "BackChannelLogoutUri", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "AllowedIdentityTokenSigningAlgorithms", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BackChannelLogoutSessionRequired", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IncludeJwtId", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AlwaysSendClientClaims", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "PairWiseSubjectSalt", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserSsoLifetime", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isRequired": false - }, - { - "name": "UserCodeType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DeviceCodeLifetime", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "ClientSecrets", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientSecretDto]", - "isRequired": false - }, - { - "name": "Claims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.Client.Dtos.ClientPropertyDto]", - "isRequired": false - }, - { - "name": "AllowedGrantTypes", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "IdentityProviderRestrictions", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "Scopes", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "AllowedCorsOrigins", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "RedirectUris", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "PostLogoutRedirectUris", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.GetIdentityResourceListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IdentityResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Type", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "IdentityResourceId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Key", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.CreateIdentityResourceDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.IdentityResource.Dtos.UpdateIdentityResourceDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Description", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Enabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Required", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Emphasize", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "ShowInDiscoveryDocument", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "UserClaims", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourceClaimDto]", - "isRequired": false - }, - { - "name": "Properties", - "jsonName": null, - "type": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "typeSimple": "[Volo.Abp.IdentityServer.IdentityResource.Dtos.IdentityResourcePropertyDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.IdentityServer.ClaimType.Dtos.IdentityClaimTypeDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.LanguageDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UiCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FlagIcon", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "IsDefaultLanguage", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.GetLanguagesTextsInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ResourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BaseCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "TargetCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "GetOnlyEmptyValues", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.CreateLanguageDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UiCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FlagIcon", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.UpdateLanguageDto": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "FlagIcon", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnabled", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.LanguageResourceDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.CultureInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.LanguageManagement.Dto.LanguageTextDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ResourceName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BaseCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BaseValue", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Value", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.LeptonTheme.Management.LeptonThemeSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "BoxedLayout", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "MenuPlacement", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.MenuPlacement", - "typeSimple": "Volo.Abp.LeptonTheme.Management.MenuPlacement", - "isRequired": false - }, - { - "name": "MenuStatus", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.MenuStatus", - "typeSimple": "Volo.Abp.LeptonTheme.Management.MenuStatus", - "isRequired": false - }, - { - "name": "Style", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "typeSimple": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "isRequired": false - }, - { - "name": "PublicLayoutStyle", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "typeSimple": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "isRequired": false - } - ] - }, - "Volo.Abp.LeptonTheme.Management.MenuPlacement": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Left", - "Top" - ], - "enumValues": [ - 0, - 1 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.LeptonTheme.Management.MenuStatus": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "AlwaysOpened", - "OpenOnHover" - ], - "enumValues": [ - 0, - 1 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.LeptonTheme.Management.LeptonStyle": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Style1", - "Style2", - "Style3", - "Style4", - "Style5", - "Style6" - ], - "enumValues": [ - 0, - 1, - 2, - 3, - 4, - 5 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Abp.LeptonTheme.Management.UpdateLeptonThemeSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "BoxedLayout", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "MenuPlacement", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.MenuPlacement", - "typeSimple": "Volo.Abp.LeptonTheme.Management.MenuPlacement", - "isRequired": false - }, - { - "name": "MenuStatus", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.MenuStatus", - "typeSimple": "Volo.Abp.LeptonTheme.Management.MenuStatus", - "isRequired": false - }, - { - "name": "Style", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "typeSimple": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "isRequired": false - }, - { - "name": "PublicLayoutStyle", - "jsonName": null, - "type": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "typeSimple": "Volo.Abp.LeptonTheme.Management.LeptonStyle", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityDisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Groups", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.PermissionGroupDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Permissions", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ParentName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsGranted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "AllowedProviders", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - }, - { - "name": "GrantedProviders", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.ProviderInfoDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ProviderName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ProviderKey", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Permissions", - "jsonName": null, - "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", - "isRequired": false - } - ] - }, - "Volo.Abp.PermissionManagement.UpdatePermissionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsGranted", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.Abp.SettingManagement.EmailSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "SmtpHost", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpPort", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "SmtpUserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpDomain", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpEnableSsl", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "SmtpUseDefaultCredentials", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultFromAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DefaultFromDisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "SmtpHost", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpPort", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "SmtpUserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpPassword", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpDomain", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SmtpEnableSsl", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "SmtpUseDefaultCredentials", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultFromAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "DefaultFromDisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateContentInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TemplateName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.TextTemplateContentDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Content", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.RestoreTemplateContentInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TemplateName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.UpdateTemplateContentInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TemplateName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "CultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Content", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.GetTemplateDefinitionListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "FilterText", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.TextTemplateManagement.TextTemplates.TemplateDefinitionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsLayout", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "Layout", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsInlineLocalized", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false - }, - { - "name": "DefaultCultureName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsRequestInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Newsletters.NewsletterRecordDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Newsletters.NewsletterRecordWithDetailsDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Preferences", - "jsonName": null, - "type": "[Volo.CmsKit.Admin.Newsletters.NewsletterPreferenceDto]", - "typeSimple": "[Volo.CmsKit.Admin.Newsletters.NewsletterPreferenceDto]", - "isRequired": false - }, - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Newsletters.NewsletterPreferenceDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "SourceUrl", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Newsletters.GetNewsletterRecordsCsvRequestInput": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Source", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Contact.CmsKitContactSettingDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ReceiverEmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Contact.UpdateCmsKitContactSettingDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ReceiverEmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Admin.Tags.EntityTagCreateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TagName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Admin.Tags.EntityTagRemoveDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "TagId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Admin.Tags.EntityTagSetDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Tags", - "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Tags.TagCreateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Tags.TagDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Tags.TagGetListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Tags.TagUpdateDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Admin.Tags.TagDefinitionDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Pages.PageDto": { - "baseType": "Volo.Abp.Application.Dtos.AuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Title", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Slug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Content", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Script", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Style", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.AuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.CreationAuditedEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "LastModificationTime", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "LastModifierId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Abp.Application.Dtos.CreationAuditedEntityDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": [ - "TPrimaryKey" - ], - "properties": [ - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Pages.GetPagesInputDto": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Pages.CreatePageInputDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Title", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Slug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Content", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Script", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Style", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Pages.UpdatePageInputDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Title", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Slug", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Content", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Script", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Style", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.MediaDescriptors.CreateMediaInputWithStream": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "File", - "jsonName": null, - "type": "Volo.Abp.Content.IRemoteStreamContent", - "typeSimple": "Volo.Abp.Content.IRemoteStreamContent", - "isRequired": false - } - ] - }, - "Volo.Abp.Content.IRemoteStreamContent": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "ContentType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ContentLength", - "jsonName": null, - "type": "System.Int64?", - "typeSimple": "number?", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.MediaDescriptors.MediaDescriptorDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "MimeType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Size", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Comments.CommentGetListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Text", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RepliedCommentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "Author", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreationStartDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "CreationEndDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Comments.CommentWithAuthorDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityId", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Text", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "RepliedCommentId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Author", - "jsonName": null, - "type": "Volo.CmsKit.Admin.Comments.CmsUserDto", - "typeSimple": "Volo.CmsKit.Admin.Comments.CmsUserDto", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Comments.CmsUserDto": { - "baseType": null, + } + }, + "types": { + "Volo.Abp.Account.RegisterDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ - { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Name", + "name": "EmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Surname", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Blogs.BlogDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Name", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "AppName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.BlogGetListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.ObjectExtending.ExtensibleObject": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "ExtraProperties", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "{System.String:System.Object}", + "typeSimple": "{string:object}", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.CreateBlogDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", + "name": "TenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Admin.Blogs.UpdateBlogDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - } - ] - }, - "Volo.CmsKit.Blogs.BlogFeatureDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "FeatureName", + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "IsEnabled", + "name": "EmailConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Blogs.BlogFeatureInputDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "FeatureName", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "IsEnabled", + "name": "PhoneNumberConfirmed", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false - } - ] - }, - "Volo.CmsKit.Admin.Blogs.CreateBlogPostDto": { - "baseType": null, - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "BlogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Title", + "name": "IsActive", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "LockoutEnabled", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ShortDescription", + "name": "LockoutEnd", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.DateTimeOffset?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Content", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "CoverImageMediaId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.BlogPostDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "Volo.Abp.Application.Dtos.ExtensibleFullAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": null, + "genericArguments": [ + "TPrimaryKey" + ], "properties": [ { - "name": "BlogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Title", + "name": "IsDeleted", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "DeleterId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ShortDescription", + "name": "DeletionTime", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ { - "name": "Content", + "name": "LastModificationTime", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.DateTime?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CoverImageMediaId", + "name": "LastModifierId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Application.Dtos.ExtensibleCreationAuditedEntityDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "TPrimaryKey" + ], + "properties": [ { "name": "CreationTime", "jsonName": null, "type": "System.DateTime", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "LastModificationTime", + "name": "CreatorId", "jsonName": null, - "type": "System.DateTime?", + "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.BlogPostGetListInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.Application.Dtos.ExtensibleEntityDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": null, + "genericArguments": [ + "TKey" + ], "properties": [ { - "name": "Filter", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "BlogId", + "name": "Id", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "TKey", + "typeSimple": "TKey", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.BlogPostListDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "Volo.Abp.Account.SendPasswordResetCodeDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "BlogId", + "name": "Email", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "BlogName", + "name": "AppName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Title", + "name": "ReturnUrl", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "ReturnUrlHash", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.ResetPasswordDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserId", + "jsonName": null, + "type": "System.Guid", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ShortDescription", + "name": "ResetToken", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Content", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.UserLoginInfo": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "CoverImageMediaId", + "name": "UserNameOrEmailAddress", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 255, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CreationTime", + "name": "Password", "jsonName": null, - "type": "System.DateTime", + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 32, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "LastModificationTime", + "name": "RememberMe", "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Admin.Blogs.UpdateBlogPostDto": { + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.AbpLoginResult": { "baseType": null, "isEnum": false, "enumNames": null, @@ -18559,94 +2755,238 @@ "genericArguments": null, "properties": [ { - "name": "Title", + "name": "Result", + "jsonName": null, + "type": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", + "typeSimple": "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Description", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Account.Web.Areas.Account.Controllers.Models.LoginResultType": { + "baseType": "System.Enum", + "isEnum": true, + "enumNames": [ + "Success", + "InvalidUserNameOrPassword", + "NotAllowed", + "LockedOut", + "RequiresTwoFactor" + ], + "enumValues": [ + 1, + 2, + 3, + 4, + 5 + ], + "genericArguments": null, + "properties": null + }, + "Volo.Abp.Account.ProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "UserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ShortDescription", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Content", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CoverImageMediaId", + "name": "IsExternal", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "HasPassword", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Newsletters.CreateNewsletterRecordInput": { - "baseType": null, + "Volo.Abp.Account.UpdateProfileDto": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "EmailAddress", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Preference", + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Source", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "SourceUrl", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "PrivacyPolicyUrl", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "AdditionalPreferences", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Newsletters.NewsletterPreferenceDetailsDto": { + "Volo.Abp.Account.ChangePasswordInput": { "baseType": null, "isEnum": false, "enumNames": null, @@ -18654,36 +2994,32 @@ "genericArguments": null, "properties": [ { - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "DisplayPreference", + "name": "CurrentPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Definition", + "name": "NewPassword", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsSelectedByEmailAddress", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Newsletters.UpdatePreferenceRequestInput": { + "Volo.Abp.AspNetCore.Mvc.MultiTenancy.FindTenantResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -18691,177 +3027,211 @@ "genericArguments": null, "properties": [ { - "name": "EmailAddress", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "PreferenceDetails", + "name": "Success", "jsonName": null, - "type": "[Volo.CmsKit.Public.Newsletters.PreferenceDetailsDto]", - "typeSimple": "[Volo.CmsKit.Public.Newsletters.PreferenceDetailsDto]", - "isRequired": true + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Source", + "name": "TenantId", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "SourceUrl", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "SecurityCode", + "name": "IsActive", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Newsletters.PreferenceDetailsDto": { + "Volo.Abp.Application.Dtos.ListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": null, + "genericArguments": [ + "T" + ], "properties": [ { - "name": "Preference", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "IsEnabled", + "name": "Items", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "[T]", + "typeSimple": "[T]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Newsletters.NewsletterEmailOptionsDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "PrivacyPolicyConfirmation", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "WidgetViewPath", + "name": "IsDefault", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "AdditionalPreferences", + "name": "IsStatic", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "DisplayAdditionalPreferences", + "name": "IsPublic", "jsonName": null, - "type": "[System.String]", - "typeSimple": "[string]", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ConcurrencyStamp", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Contact.ContactCreateInput": { - "baseType": null, + "Volo.Abp.Identity.GetIdentityRolesInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Name", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Subject", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Email", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": true - }, - { - "name": "Message", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "RecaptchaToken", + "name": "Sorting", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Reactions.ReactionWithSelectionDto": { - "baseType": null, + "Volo.Abp.Application.Dtos.PagedResultRequestDto": { + "baseType": "Volo.Abp.Application.Dtos.LimitedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Reaction", - "jsonName": null, - "type": "Volo.CmsKit.Public.Reactions.ReactionDto", - "typeSimple": "Volo.CmsKit.Public.Reactions.ReactionDto", - "isRequired": false - }, - { - "name": "Count", + "name": "SkipCount", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false - }, - { - "name": "IsSelectedByCurrentUser", - "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "0", + "maximum": "2147483647", + "regex": null } ] }, - "Volo.CmsKit.Public.Reactions.ReactionDto": { + "Volo.Abp.Application.Dtos.LimitedResultRequestDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -18869,228 +3239,342 @@ "genericArguments": null, "properties": [ { - "name": "Name", + "name": "DefaultMaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "DisplayName", + "name": "MaxMaxResultCount", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MaxResultCount", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "2147483647", + "regex": null } ] }, - "Volo.CmsKit.Public.Ratings.CreateUpdateRatingInput": { - "baseType": null, + "Volo.Abp.Application.Dtos.PagedResultDto": { + "baseType": "Volo.Abp.Application.Dtos.ListResultDto", "isEnum": false, "enumNames": null, "enumValues": null, - "genericArguments": null, + "genericArguments": [ + "T" + ], "properties": [ { - "name": "StarCount", + "name": "TotalCount", "jsonName": null, - "type": "System.Int16", + "type": "System.Int64", "typeSimple": "number", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Ratings.RatingDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityRoleCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [] + }, + "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityType", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "EntityId", + "name": "IsDefault", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "StarCount", + "name": "IsPublic", "jsonName": null, - "type": "System.Int16", - "typeSimple": "number", - "isRequired": false - }, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Identity.IdentityRoleUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityRoleCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "CreatorId", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.Guid", + "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Identity.GetIdentityUsersInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "CreationTime", + "name": "Filter", "jsonName": null, - "type": "System.DateTime", + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Ratings.RatingWithStarCountDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserCreateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "StarCount", - "jsonName": null, - "type": "System.Int16", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "Count", - "jsonName": null, - "type": "System.Int32", - "typeSimple": "number", - "isRequired": false - }, - { - "name": "IsSelectedByCurrentUser", + "name": "Password", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Pages.PageDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Title", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Content", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Script", + "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": 0, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Style", + "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 16, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsActive", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "LockoutEnabled", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "RoleNames", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Comments.CommentWithDetailsDto": { - "baseType": null, + "Volo.Abp.Identity.IdentityUserUpdateDto": { + "baseType": "Volo.Abp.Identity.IdentityUserCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "EntityId", + "name": "Password", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": 0, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Text", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreatorId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "CreationTime", - "jsonName": null, - "type": "System.DateTime", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Replies", - "jsonName": null, - "type": "[Volo.CmsKit.Public.Comments.CommentDto]", - "typeSimple": "[Volo.CmsKit.Public.Comments.CommentDto]", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Identity.IdentityUserUpdateRolesDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Author", + "name": "RoleNames", "jsonName": null, - "type": "Volo.CmsKit.Public.Comments.CmsUserDto", - "typeSimple": "Volo.CmsKit.Public.Comments.CmsUserDto", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Comments.CommentDto": { + "Volo.Abp.Users.UserData": { "baseType": null, "isEnum": false, "enumNames": null, @@ -19102,97 +3586,154 @@ "jsonName": null, "type": "System.Guid", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "TenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "EntityType", + "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "EntityId", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Text", + "name": "Surname", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "RepliedCommentId", + "name": "Email", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CreatorId", + "name": "EmailConfirmed", "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CreationTime", + "name": "PhoneNumber", "jsonName": null, - "type": "System.DateTime", + "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Author", + "name": "PhoneNumberConfirmed", "jsonName": null, - "type": "Volo.CmsKit.Public.Comments.CmsUserDto", - "typeSimple": "Volo.CmsKit.Public.Comments.CmsUserDto", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Comments.CmsUserDto": { - "baseType": null, + "Volo.Abp.Identity.UserLookupSearchInputDto": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Id", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.Identity.UserLookupCountInputDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "Surname", + "name": "Filter", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Comments.CreateCommentInput": { + "Volo.Abp.PermissionManagement.GetPermissionListResultDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -19200,22 +3741,32 @@ "genericArguments": null, "properties": [ { - "name": "Text", + "name": "EntityDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "RepliedCommentId", + "name": "Groups", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGroupDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Comments.UpdateCommentInput": { + "Volo.Abp.PermissionManagement.PermissionGroupDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -19223,110 +3774,158 @@ "genericArguments": null, "properties": [ { - "name": "Text", + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Permissions", + "jsonName": null, + "type": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.PermissionGrantInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Public.Blogs.BlogPostPublicDto": { - "baseType": "Volo.Abp.Application.Dtos.AuditedEntityDto", + "Volo.Abp.PermissionManagement.PermissionGrantInfoDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "BlogId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Title", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Slug", + "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ShortDescription", + "name": "ParentName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Content", + "name": "IsGranted", "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "CoverImageMediaId", + "name": "AllowedProviders", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Author", + "name": "GrantedProviders", "jsonName": null, - "type": "Volo.CmsKit.Users.CmsUserDto", - "typeSimple": "Volo.CmsKit.Users.CmsUserDto", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.ProviderInfoDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.CmsKit.Users.CmsUserDto": { - "baseType": "Volo.Abp.Application.Dtos.EntityDto", + "Volo.Abp.PermissionManagement.ProviderInfoDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "TenantId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false - }, - { - "name": "UserName", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "Name", + "name": "ProviderName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Surname", + "name": "ProviderKey", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Abp.Content.RemoteStreamContent": { + "Volo.Abp.PermissionManagement.UpdatePermissionsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -19334,86 +3933,170 @@ "genericArguments": null, "properties": [ { - "name": "ContentType", - "jsonName": null, - "type": "System.String", - "typeSimple": "string", - "isRequired": false - }, - { - "name": "ContentLength", + "name": "Permissions", "jsonName": null, - "type": "System.Int64?", - "typeSimple": "number?", - "isRequired": false + "type": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", + "typeSimple": "[Volo.Abp.PermissionManagement.UpdatePermissionDto]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.EditionDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", + "Volo.Abp.PermissionManagement.UpdatePermissionDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "DisplayName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsGranted", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.GetEditionsInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", + "Volo.Abp.SettingManagement.EmailSettingsDto": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Filter", + "name": "SmtpHost", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpPort", + "jsonName": null, + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpUserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpPassword", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpDomain", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpEnableSsl", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpUseDefaultCredentials", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "DefaultFromAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - } - ] - }, - "Volo.Saas.Host.Dtos.EditionCreateDto": { - "baseType": "Volo.Saas.Host.Dtos.EditionCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Saas.Host.Dtos.EditionCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, { - "name": "DisplayName", + "name": "DefaultFromDisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.EditionUpdateDto": { - "baseType": "Volo.Saas.Host.Dtos.EditionCreateOrUpdateDtoBase", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [] - }, - "Volo.Saas.Host.GetEditionUsageStatisticsResult": { + "Volo.Abp.SettingManagement.UpdateEmailSettingsDto": { "baseType": null, "isEnum": false, "enumNames": null, @@ -19421,136 +4104,174 @@ "genericArguments": null, "properties": [ { - "name": "Data", + "name": "SmtpHost", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "SmtpPort", "jsonName": null, - "type": "{System.String:System.Int32}", - "typeSimple": "{string:number}", - "isRequired": false - } - ] - }, - "Volo.Saas.Host.Dtos.SaasTenantDto": { - "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ + "type": "System.Int32", + "typeSimple": "number", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": "1", + "maximum": "65535", + "regex": null + }, { - "name": "Name", + "name": "SmtpUserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "EditionId", + "name": "SmtpPassword", "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "EditionName", + "name": "SmtpDomain", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "HasDefaultConnectionString", + "name": "SmtpEnableSsl", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ActivationState", + "name": "SmtpUseDefaultCredentials", "jsonName": null, - "type": "Volo.Saas.TenantActivationState", - "typeSimple": "Volo.Saas.TenantActivationState", - "isRequired": false + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ActivationEndDate", - "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false - } - ] - }, - "Volo.Saas.TenantActivationState": { - "baseType": "System.Enum", - "isEnum": true, - "enumNames": [ - "Active", - "ActiveWithLimitedTime", - "Passive" - ], - "enumValues": [ - 0, - 1, - 2 - ], - "genericArguments": null, - "properties": null - }, - "Volo.Saas.Host.Dtos.GetTenantsInput": { - "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", - "isEnum": false, - "enumNames": null, - "enumValues": null, - "genericArguments": null, - "properties": [ - { - "name": "Filter", + "name": "DefaultFromAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "GetEditionNames", + "name": "DefaultFromDisplayName", "jsonName": null, - "type": "System.Boolean", - "typeSimple": "boolean", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": 1024, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.SaasTenantCreateDto": { - "baseType": "Volo.Saas.Host.Dtos.SaasTenantCreateOrUpdateDtoBase", + "Volo.Abp.SettingManagement.SendTestEmailInput": { + "baseType": null, "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "AdminEmailAddress", + "name": "SenderEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "AdminPassword", + "name": "TargetEmailAddress", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Subject", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true + "isRequired": true, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "DefaultConnectionString", + "name": "Body", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.SaasTenantCreateOrUpdateDtoBase": { - "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", + "Volo.Abp.TenantManagement.TenantDto": { + "baseType": "Volo.Abp.Application.Dtos.ExtensibleEntityDto", "isEnum": false, "enumNames": null, "enumValues": null, @@ -19561,82 +4282,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": true - }, - { - "name": "EditionId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "ActivationState", - "jsonName": null, - "type": "Volo.Saas.TenantActivationState", - "typeSimple": "Volo.Saas.TenantActivationState", - "isRequired": false - }, - { - "name": "ActivationEndDate", + "name": "ConcurrencyStamp", "jsonName": null, - "type": "System.DateTime?", - "typeSimple": "string?", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.SaasTenantUpdateDto": { - "baseType": "Volo.Saas.Host.Dtos.SaasTenantCreateOrUpdateDtoBase", + "Volo.Abp.TenantManagement.GetTenantsInput": { + "baseType": "Volo.Abp.Application.Dtos.PagedAndSortedResultRequestDto", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, - "properties": [] + "properties": [ + { + "name": "Filter", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] }, - "Volo.Saas.Host.Dtos.SaasTenantConnectionStringsDto": { - "baseType": null, + "Volo.Abp.TenantManagement.TenantCreateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "Default", + "name": "AdminEmailAddress", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": true, + "minLength": null, + "maxLength": 256, + "minimum": null, + "maximum": null, + "regex": null }, { - "name": "Databases", + "name": "AdminPassword", "jsonName": null, - "type": "[Volo.Saas.Host.Dtos.SaasTenantDatabaseConnectionStringsDto]", - "typeSimple": "[Volo.Saas.Host.Dtos.SaasTenantDatabaseConnectionStringsDto]", - "isRequired": false + "type": "System.String", + "typeSimple": "string", + "isRequired": true, + "minLength": null, + "maxLength": 128, + "minimum": null, + "maximum": null, + "regex": null } ] }, - "Volo.Saas.Host.Dtos.SaasTenantDatabaseConnectionStringsDto": { - "baseType": null, + "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase": { + "baseType": "Volo.Abp.ObjectExtending.ExtensibleObject", "isEnum": false, "enumNames": null, "enumValues": null, "genericArguments": null, "properties": [ { - "name": "DatabaseName", + "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false - }, + "isRequired": true, + "minLength": 0, + "maxLength": 64, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.TenantManagement.TenantUpdateDto": { + "baseType": "Volo.Abp.TenantManagement.TenantCreateOrUpdateDtoBase", + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ { - "name": "ConnectionString", + "name": "ConcurrencyStamp", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19652,7 +4411,12 @@ "jsonName": null, "type": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", "typeSimple": "[Volo.Abp.FeatureManagement.FeatureGroupDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19668,21 +4432,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Features", "jsonName": null, "type": "[Volo.Abp.FeatureManagement.FeatureDto]", "typeSimple": "[Volo.Abp.FeatureManagement.FeatureDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19698,56 +4477,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Provider", "jsonName": null, "type": "Volo.Abp.FeatureManagement.FeatureProviderDto", "typeSimple": "Volo.Abp.FeatureManagement.FeatureProviderDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Description", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ValueType", "jsonName": null, "type": "Volo.Abp.Validation.StringValues.IStringValueType", "typeSimple": "Volo.Abp.Validation.StringValues.IStringValueType", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Depth", "jsonName": null, "type": "System.Int32", "typeSimple": "number", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ParentName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19763,14 +4582,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Key", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19786,28 +4615,48 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Item", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Validator", "jsonName": null, "type": "Volo.Abp.Validation.StringValues.IValueValidator", "typeSimple": "Volo.Abp.Validation.StringValues.IValueValidator", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19823,21 +4672,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Item", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19853,7 +4717,12 @@ "jsonName": null, "type": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", "typeSimple": "[Volo.Abp.FeatureManagement.UpdateFeatureDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19869,14 +4738,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19892,70 +4771,132 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Auth", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Setting", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationSettingConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentUser", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentUserDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Features", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationFeatureConfigurationDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "GlobalFeatures", + "jsonName": null, + "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "MultiTenancy", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.MultiTenancyInfoDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentTenant", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.MultiTenancy.CurrentTenantDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Timing", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimingDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Clock", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ClockDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ObjectExtensions", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ObjectExtensionsDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -19971,42 +4912,72 @@ "jsonName": null, "type": "{System.String:System.Collections.Generic.Dictionary}", "typeSimple": "{string:System.Collections.Generic.Dictionary}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Languages", "jsonName": null, "type": "[Volo.Abp.Localization.LanguageInfo]", "typeSimple": "[Volo.Abp.Localization.LanguageInfo]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CurrentCulture", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.CurrentCultureDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultResourceName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LanguagesMap", "jsonName": null, "type": "{System.String:[Volo.Abp.NameValue]}", "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LanguageFilesMap", "jsonName": null, "type": "{System.String:[Volo.Abp.NameValue]}", "typeSimple": "{string:[Volo.Abp.NameValue]}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20022,28 +4993,48 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UiCultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FlagIcon", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20059,63 +5050,108 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnglishName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ThreeLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TwoLetterIsoLanguageName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsRightToLeft", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "CultureName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "NativeName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateTimeFormat", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.DateTimeFormatDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20131,49 +5167,84 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateTimeFormatLong", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ShortDatePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FullDateTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DateSeparator", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ShortTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LongTimePattern", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20185,6 +5256,41 @@ "genericArguments": null, "properties": [] }, + "Volo.Abp.NameValue": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": [ + "T" + ], + "properties": [ + { + "name": "Name", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Value", + "jsonName": null, + "type": "T", + "typeSimple": "T", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationAuthConfigurationDto": { "baseType": null, "isEnum": false, @@ -20197,14 +5303,24 @@ "jsonName": null, "type": "{System.String:System.Boolean}", "typeSimple": "{string:boolean}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "GrantedPolicies", "jsonName": null, "type": "{System.String:System.Boolean}", "typeSimple": "{string:boolean}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20220,7 +5336,12 @@ "jsonName": null, "type": "{System.String:System.String}", "typeSimple": "{string:string}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20236,77 +5357,180 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Id", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TenantId", "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorUserId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorTenantId", + "jsonName": null, + "type": "System.Guid?", + "typeSimple": "string?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorUserName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImpersonatorTenantName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "UserName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SurName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Email", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EmailVerified", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumber", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "PhoneNumberVerified", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Roles", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20322,7 +5546,33 @@ "jsonName": null, "type": "{System.String:System.String}", "typeSimple": "{string:string}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + } + ] + }, + "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationGlobalFeatureConfigurationDto": { + "baseType": null, + "isEnum": false, + "enumNames": null, + "enumValues": null, + "genericArguments": null, + "properties": [ + { + "name": "EnabledFeatures", + "jsonName": null, + "type": "[System.String]", + "typeSimple": "[string]", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20338,7 +5588,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20354,21 +5609,36 @@ "jsonName": null, "type": "System.Guid?", "typeSimple": "string?", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsAvailable", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20384,7 +5654,12 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.TimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20400,14 +5675,24 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.IanaTimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Windows", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.WindowsTimeZone", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20423,7 +5708,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20439,7 +5729,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20455,7 +5750,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20471,14 +5771,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ModuleExtensionDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Enums", "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20494,14 +5804,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.EntityExtensionDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20517,14 +5837,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", "typeSimple": "{string:Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyDto}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20540,56 +5870,96 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayName", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.LocalizableStringDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Api", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Ui", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Attributes", "jsonName": null, "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyAttributeDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Configuration", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultValue", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20605,14 +5975,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Resource", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20628,21 +6008,36 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiGetDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnCreate", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiCreateDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnUpdate", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyApiUpdateDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20658,7 +6053,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20674,7 +6074,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20690,7 +6095,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20706,28 +6116,48 @@ "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiTableDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnCreateForm", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "OnEditForm", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiFormDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Lookup", "jsonName": null, "type": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", "typeSimple": "Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionPropertyUiLookupDto", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20743,7 +6173,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20759,7 +6194,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20775,35 +6215,60 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ResultListPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DisplayPropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ValuePropertyName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "FilterParamName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20819,14 +6284,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Config", "jsonName": null, "type": "{System.String:System.Object}", "typeSimple": "{string:object}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20842,14 +6317,24 @@ "jsonName": null, "type": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", "typeSimple": "[Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ObjectExtending.ExtensionEnumFieldDto]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "LocalizationResource", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20865,14 +6350,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Value", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20888,7 +6383,12 @@ "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20904,14 +6404,24 @@ "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ModuleApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Types", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.TypeApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20927,21 +6437,36 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "RemoteServiceName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Controllers", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ControllerApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20957,28 +6482,84 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ControllerGroupName", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "IsRemoteService", + "jsonName": null, + "type": "System.Boolean", + "typeSimple": "boolean", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ApiVersion", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Interfaces", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.ControllerInterfaceApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Actions", "jsonName": null, "type": "{System.String:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", "typeSimple": "{string:Volo.Abp.Http.Modeling.ActionApiDescriptionModel}", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -20994,7 +6575,12 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21010,56 +6596,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "HttpMethod", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Url", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "SupportedVersions", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ParametersOnMethod", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.MethodParameterApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Parameters", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.ParameterApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ReturnValue", "jsonName": null, "type": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", "typeSimple": "Volo.Abp.Http.Modeling.ReturnValueApiDescriptionModel", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "AllowAnonymous", + "jsonName": null, + "type": "System.Boolean?", + "typeSimple": "boolean?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "ImplementFrom", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21075,42 +6725,72 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeAsString", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsOptional", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultValue", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21126,70 +6806,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Name", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsOptional", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DefaultValue", "jsonName": null, "type": "System.Object", "typeSimple": "object", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "ConstraintTypes", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "BindingSourceId", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "DescriptorName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21205,14 +6935,24 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21228,42 +6968,72 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsEnum", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnumNames", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "EnumValues", "jsonName": null, "type": "[System.Object]", "typeSimple": "[object]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "GenericArguments", "jsonName": null, "type": "[System.String]", "typeSimple": "[string]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Properties", "jsonName": null, "type": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", "typeSimple": "[Volo.Abp.Http.Modeling.PropertyApiDescriptionModel]", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] }, @@ -21279,35 +7049,120 @@ "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "JsonName", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "Type", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "TypeSimple", "jsonName": null, "type": "System.String", "typeSimple": "string", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null }, { "name": "IsRequired", "jsonName": null, "type": "System.Boolean", "typeSimple": "boolean", - "isRequired": false + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MinLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "MaxLength", + "jsonName": null, + "type": "System.Int32?", + "typeSimple": "number?", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Minimum", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Maximum", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null + }, + { + "name": "Regex", + "jsonName": null, + "type": "System.String", + "typeSimple": "string", + "isRequired": false, + "minLength": null, + "maxLength": null, + "minimum": null, + "maximum": null, + "regex": null } ] } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts index 99aa704ed1..5cce753553 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.ts @@ -8,25 +8,19 @@ import type { FindTenantResultDto } from '../../../volo/abp/asp-net-core/mvc/mul export class AbpTenantService { apiName = 'abp'; - findTenantById = (id: string, headers: Record) => - this.restService.request( - { - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, - headers, - }, - { apiName: this.apiName }, - ); + findTenantById = (id: string) => + this.restService.request({ + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-id/${id}`, + }, + { apiName: this.apiName }); - findTenantByName = (name: string, headers: Record) => - this.restService.request( - { - method: 'GET', - url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, - headers, - }, - { apiName: this.apiName }, - ); + findTenantByName = (name: string) => + this.restService.request({ + method: 'GET', + url: `/api/abp/multi-tenancy/tenants/by-name/${name}`, + }, + { apiName: this.apiName }); - constructor(private restService: RestService) {} + constructor(private restService: RestService) { } } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts index f11414cba3..ae578093a9 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.ts @@ -1,9 +1,6 @@ -import { Injectable } from '@angular/core'; import { RestService } from '../../../../../../services/rest.service'; -import type { - ApplicationApiDescriptionModel, - ApplicationApiDescriptionModelRequestDto, -} from '../../../http/modeling/models'; +import { Injectable } from '@angular/core'; +import type { ApplicationApiDescriptionModel, ApplicationApiDescriptionModelRequestDto } from '../../../http/modeling/models'; @Injectable({ providedIn: 'root', @@ -12,14 +9,12 @@ export class AbpApiDefinitionService { apiName = 'abp'; getByModel = (model: ApplicationApiDescriptionModelRequestDto) => - this.restService.request( - { - method: 'GET', - url: '/api/abp/api-definition', - params: { includeTypes: model.includeTypes }, - }, - { apiName: this.apiName }, - ); + this.restService.request({ + method: 'GET', + url: '/api/abp/api-definition', + params: { includeTypes: model.includeTypes }, + }, + { apiName: this.apiName }); - constructor(private restService: RestService) {} + constructor(private restService: RestService) { } } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts index f9ac9fbb79..0a8fcd889c 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.ts @@ -1,6 +1,6 @@ -import { Injectable } from '@angular/core'; -import { RestService } from '../../../../../../services/rest.service'; import type { ApplicationConfigurationDto } from './models'; +import { RestService } from '../../../../../../services/rest.service'; +import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root', @@ -8,15 +8,12 @@ import type { ApplicationConfigurationDto } from './models'; export class AbpApplicationConfigurationService { apiName = 'abp'; - get() { - return this.restService.request( - { - method: 'GET', - url: '/api/abp/application-configuration', - }, - { apiName: this.apiName }, - ); - } + get = () => + this.restService.request({ + method: 'GET', + url: '/api/abp/application-configuration', + }, + { apiName: this.apiName }); - constructor(private restService: RestService) {} + constructor(private restService: RestService) { } } diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts index f760cd1946..2a9a2f1eb2 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.ts @@ -1,7 +1,7 @@ -import type { LanguageInfo } from '../../../localization/models'; -import type { NameValue } from '../../../models'; import type { CurrentTenantDto, MultiTenancyInfoDto } from '../multi-tenancy/models'; import type { ObjectExtensionsDto } from './object-extending/models'; +import type { LanguageInfo } from '../../../localization/models'; +import type { NameValue } from '../../../models'; export interface ApplicationAuthConfigurationDto { policies: Record; @@ -14,6 +14,7 @@ export interface ApplicationConfigurationDto { setting: ApplicationSettingConfigurationDto; currentUser: CurrentUserDto; features: ApplicationFeatureConfigurationDto; + globalFeatures: ApplicationGlobalFeatureConfigurationDto; multiTenancy: MultiTenancyInfoDto; currentTenant: CurrentTenantDto; timing: TimingDto; @@ -25,6 +26,10 @@ export interface ApplicationFeatureConfigurationDto { values: Record; } +export interface ApplicationGlobalFeatureConfigurationDto { + enabledFeatures: string[]; +} + export interface ApplicationLocalizationConfigurationDto { values: Record>; languages: LanguageInfo[]; @@ -58,6 +63,10 @@ export interface CurrentUserDto { isAuthenticated: boolean; id?: string; tenantId?: string; + impersonatorUserId?: string; + impersonatorTenantId?: string; + impersonatorUserName?: string; + impersonatorTenantName?: string; userName?: string; name?: string; surName?: string; @@ -66,8 +75,6 @@ export interface CurrentUserDto { phoneNumber?: string; phoneNumberVerified: boolean; roles: string[]; - impersonatorUserId?: string; - impersonatorTenantId?: string; } export interface DateTimeFormatDto { diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts index b16411f5a3..c72a9abc9b 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/ban-types */ export interface EntityExtensionDto { properties: Record; diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts index a88493c5c7..2c948099b4 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.ts @@ -1,3 +1,4 @@ + export interface FindTenantResultDto { success: boolean; tenantId?: string; diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts index c4b1e9b5ee..ce40c21117 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/http/modeling/models.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/ban-types */ export interface ActionApiDescriptionModel { uniqueName?: string; @@ -9,6 +8,8 @@ export interface ActionApiDescriptionModel { parametersOnMethod: MethodParameterApiDescriptionModel[]; parameters: ParameterApiDescriptionModel[]; returnValue: ReturnValueApiDescriptionModel; + allowAnonymous?: boolean; + implementFrom?: string; } export interface ApplicationApiDescriptionModel { @@ -22,6 +23,9 @@ export interface ApplicationApiDescriptionModelRequestDto { export interface ControllerApiDescriptionModel { controllerName?: string; + controllerGroupName?: string; + isRemoteService: boolean; + apiVersion?: string; type?: string; interfaces: ControllerInterfaceApiDescriptionModel[]; actions: Record; @@ -65,6 +69,11 @@ export interface PropertyApiDescriptionModel { type?: string; typeSimple?: string; isRequired: boolean; + minLength?: number; + maxLength?: number; + minimum?: string; + maximum?: string; + regex?: string; } export interface ReturnValueApiDescriptionModel { diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts index e46e9b6d3c..c881e7da2b 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/localization/models.ts @@ -1,3 +1,4 @@ + export interface LanguageInfo { cultureName?: string; uiCultureName?: string; diff --git a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts index f6f19c97ad..5f16437958 100644 --- a/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts +++ b/npm/ng-packs/packages/core/src/lib/proxy/volo/abp/models.ts @@ -1,3 +1,4 @@ + export interface NameValue { name?: string; value: T; diff --git a/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts b/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts index 4223ea97de..552b96ed05 100644 --- a/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/config-state.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { map, switchMap, take } from 'rxjs/operators'; import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service'; -import { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models'; +import { ApplicationConfigurationDto, ApplicationGlobalFeatureConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models'; import { InternalStore } from '../utils/internal-store-utils'; @Injectable({ @@ -138,6 +138,30 @@ export class ConfigStateService { }), ); } + + getGlobalFeatures() { + return this.store.state.globalFeatures; + } + + getGlobalFeatures$() { + return this.store.sliceState(state => state.globalFeatures); + } + + private isGlobalFeatureEnabled(key: string, globalFeatures: ApplicationGlobalFeatureConfigurationDto) { + const features = globalFeatures.enabledFeatures || [] + return features.some(f => key === f); + } + + getGlobalFeatureIsEnabled(key: string) { + return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures); + } + + getGlobalFeatureIsEnabled$(key: string) { + return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures)); + } + + + } function splitKeys(keys: string[] | string): string[] { diff --git a/npm/ng-packs/packages/core/src/lib/services/multi-tenancy.service.ts b/npm/ng-packs/packages/core/src/lib/services/multi-tenancy.service.ts index 00b056ec8c..979ef3bc43 100644 --- a/npm/ng-packs/packages/core/src/lib/services/multi-tenancy.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/multi-tenancy.service.ts @@ -29,17 +29,17 @@ export class MultiTenancyService { private tenantService: AbpTenantService, private configStateService: ConfigStateService, @Inject(TENANT_KEY) public tenantKey: string, - ) {} + ) { } setTenantByName(tenantName: string) { return this.tenantService - .findTenantByName(tenantName, { [this.tenantKey]: '' }) + .findTenantByName(tenantName) .pipe(switchMap(this.setTenantToState)); } setTenantById(tenantId: string) { return this.tenantService - .findTenantById(tenantId, { [this.tenantKey]: '' }) + .findTenantById(tenantId) .pipe(switchMap(this.setTenantToState)); } } diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 81c3763ffc..b25f7e95fd 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index 94e85bbeff..801c4c4376 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.permission-management": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index a11fd3a7ba..1a22192b9b 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index de74fcd725..b2931fa5a4 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 3528eca556..f95fc32987 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.components": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 84d7fcd6eb..718c97d605 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.feature-management": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index cea710df2b..671b5e5fb5 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account.core": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 7b57f7639f..e521ab0531 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~5.3.0-rc.1", + "@abp/ng.core": "~5.3.0-rc.2", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "~12.0.0-beta.4", "@ngx-validate/core": "^0.1.1", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index 3fc7fbc0be..f4ba2b0583 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,72 +2,72 @@ # yarn lockfile v1 -"@abp/ng.account.core@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.2.1.tgz#6188a048339abfca385a79659b4ea6aa90692ccd" - integrity sha512-hzcs6XwEf9CEs7K2ItGaBCoNVLVDgcOQt+i1jcyOAbVjdJgvywzN3UvHCk4TiVAbbO6c0DW3yaF1SDjwLvfRKA== +"@abp/ng.account.core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.3.0-rc.1.tgz#47e80a8ae2c913d1ef123b0d9456424d8630bc16" + integrity sha512-qoWEBSWhdn7fi7RnUiuzegLZeHNaMuBho4/zPoR/owsai+HtDm0RiNapKCZMHat1mqeZI1Mw/THLkZ2lLBgyKg== dependencies: tslib "^2.0.0" -"@abp/ng.account@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.2.1.tgz#327c69717aa2bc598fc51bcbb98e7541b3d46222" - integrity sha512-SzjwSk+qqoktcnKbGavr853Ne+RqIg0OJ1buzXSjwE/SweTEWi7HEyKsyd2DzSF9MOWgxNr4Qdd6yBSJG6MZ/Q== +"@abp/ng.account@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.3.0-rc.1.tgz#b1c197fd1e8d015fc07a1a026a3e8602e8356b37" + integrity sha512-7X66FBR77OjSzDuGGkI5zVL68qzhP0/ZrYF0WIk2sNSvcJW//KaaSqk44XEqZ7FzzUPwNePMCtxPtgFWdeXqnw== dependencies: - "@abp/ng.account.core" "~5.2.1" - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.account.core" "~5.3.0-rc.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.components@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-5.2.1.tgz#3f1c7d220d7d132e74881da5e52d1c132504e0a6" - integrity sha512-HKIB6CZ4ufaW/t3AHeNpr7vXFUunCry1s5yXevrQXuTmz7UrmPjFumf4nRmNLhFNXPfzUfkYEmgx0/syQtVGnA== +"@abp/ng.components@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-5.3.0-rc.1.tgz#a4ac86ca92f21b0ceb787f06bdc9624bd314159c" + integrity sha512-gBv8Y5SUAhUkORSprI0+obkPJuFs8zyyLu3QkNgAb+F2dHBkmpHZyDDE46uZ4kDTjVerEDdJ32sjcfNBGRUpiw== dependencies: chart.js "^3.5.1" ng-zorro-antd "^13.0.0" tslib "^2.0.0" -"@abp/ng.core@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.2.1.tgz#e74d65ee5db90391db572a7b6350ab2bb0c89408" - integrity sha512-7gFmJ3oulh+9/pwcOEzF5O0BRqqCLanicP8bkJ1jMoJMjf+ji9mn869PL24Pq2I8Wk/moDZ2t5rpcjzVIio8Uw== +"@abp/ng.core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.3.0-rc.1.tgz#17eb15e7898f085f91ffae831aac4f94c10443d9" + integrity sha512-yfsrGyCuSbq8PR1GkmCPlMTn9+DIpiHB78MTA7G4KkrQukaIG3qlyeWEORrpc6XcUSePYZN8MiFLfpoUavBQ3A== dependencies: - "@abp/utils" "~5.2.1" + "@abp/utils" "~5.3.0-rc.1" angular-oauth2-oidc "^13.0.1" just-clone "^3.2.1" just-compare "^1.4.0" ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.2.1.tgz#d3e2a5e7e52a8dc0a40a7924907ad36b8c51f6ea" - integrity sha512-Sew5VwgSgmqjOcr6TDQb6xyW/S9+cBopuqzStvBeHUn3rYPE8g4BNmdlwNkGhuI+1Lt3fXfS7OUrwKg8MmY8dw== +"@abp/ng.feature-management@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.3.0-rc.1.tgz#87e416e7a9b99e365262bbd4f6d7792181a63242" + integrity sha512-Ht+apAMaZeIPHaaHR/fuMa2Hb4P1XFMlFz4Cph04dIaqut5k7WYSEbXglZdwZynY5UE3cRaQlPRIjSM7IlTDVA== dependencies: - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.identity@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.2.1.tgz#732d7cc10022dc8108f442f3eff8e7d7a7adb93f" - integrity sha512-DIS8uVKrRU3K7Lw8kBnbp8RdnU16W/n6bT+IzJkQKvTF7UTPVtB7kqcjPSepzVIvY4UnsFZrZxyNZsm2J4bBuw== +"@abp/ng.identity@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.3.0-rc.1.tgz#ff8cfd151b34cef01ec56b1e5976c7f59be29557" + integrity sha512-126mfJnfFPQZJPJ1HdKm5yjsq/QorKwgtV3UbN8gI8q5l2incOKgh2M1IHS/9KX5Qt9quKAyX8RKHZ2n50HxEQ== dependencies: - "@abp/ng.permission-management" "~5.2.1" - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.permission-management" "~5.3.0-rc.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.permission-management@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.2.1.tgz#9e539d63b66b06ede5e572a1277865b7c7ef72b4" - integrity sha512-lyCMKvIZTUVX8QprMjU1Q7+LoTL+Xwxb5gWWA4qI82gAJtAfqP/apDicP76BMlqkPVjG4OVLYfPDz0ZaZ7a65w== +"@abp/ng.permission-management@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.3.0-rc.1.tgz#163c329019ef39fc6f2fbd5dd48cda8d72d4f784" + integrity sha512-+o/PDXcN3Uk3ctYdk3htseNPIzOOvAIbJHn/brjMQVfovMvRGEU/eX+b7u3GKlQWQdcTPNoLtNEzBPDCuuzhkw== dependencies: - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.schematics@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.2.1.tgz#c20eec2d3c3c0431ebb6ee07adefe505ea199091" - integrity sha512-ug7FM8cGgmpbbgwKUWY/dC3qUs2zLolB2iKmNiB7r4786aDS9sCzsHOzLtUbfG8tbrrGbG1MDUu7kCY12eqwRw== +"@abp/ng.schematics@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.3.0-rc.1.tgz#f4dfa53e05d34013a3f27786fcff14b972c0affa" + integrity sha512-7uavvwQdmKZMGFSHRvl5Wo5bT+fZcJPGiyUOAuZDzBIf447n6CP+p/l0tLadmWsaV5shHn6W75uJQJg9WeGvWg== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -76,39 +76,39 @@ should-quote "^1.0.0" typescript "~3.9.2" -"@abp/ng.setting-management@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.2.1.tgz#052805b5769a0aed03a0374cf6287b54f0d067a1" - integrity sha512-Fe3U/FsqYGgZONlLGxxlHI6Q0oTVZQwxUlvRcQ5m1MEI2ueGfLAUycvJlz1Jyy6Qpd8te3lwdsjTVzC8sbG8+A== +"@abp/ng.setting-management@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.3.0-rc.1.tgz#6c5df22b5485f4af034c3fa741476e3900d5a72a" + integrity sha512-m3wr5N4U3lFV5d0DouyWKUfrd9mQu/QcPIWwa7rRkhPlQl2848qv82aByGhoMLt/Q+XVH3HkzMlxH75FnuYw1A== dependencies: - "@abp/ng.components" "~5.2.1" - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.components" "~5.3.0-rc.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.tenant-management@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.2.1.tgz#cee456be41e116a02eb22fb615ada9c63a43d4c0" - integrity sha512-tD5v8/l1idY9CmXw2nGjH9V2BYlKmlYHTci8jcYNMUdDx30srIBJJI2tM/VoeYYIZXvvmUMLtz3EhXmIsXmQUA== +"@abp/ng.tenant-management@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.3.0-rc.1.tgz#9877bd91627f184bd4d976c6b8054d310bbfe475" + integrity sha512-tEVdpX9xDTbU0gn4TC87TzrzKT/G3c4NQPxDo1UNNHSYZv3ABlSlhEG89tG3XkEondhQfxssHTtdioh4RL6YSw== dependencies: - "@abp/ng.feature-management" "~5.2.1" - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.feature-management" "~5.3.0-rc.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.basic@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.2.1.tgz#f1175aee9e06d23a92d031b7458f52f9bde88488" - integrity sha512-9mUVDYuMlV+IDq57wYSUnwznQhVLVoaIIQQAb/Rj85OTPNGHr1X24A8mTpasKAsyhNSUddnCRdRbd8AozBVJ8g== +"@abp/ng.theme.basic@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.3.0-rc.1.tgz#c60d7a8e4b461da50968bcf24ec1eca78e88c935" + integrity sha512-Igpxm+tH9pLjxBJBziOqDstBmfkbfNJhNLER9ekhSwCFm7LppWro8LVc15zrIg59JegP/W/Zbxia8FtDL3j1gA== dependencies: - "@abp/ng.account.core" "~5.2.1" - "@abp/ng.theme.shared" "~5.2.1" + "@abp/ng.account.core" "~5.3.0-rc.1" + "@abp/ng.theme.shared" "~5.3.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.shared@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.2.1.tgz#9c13605b0f3a02e6b46564971b4c4fd8ed74f291" - integrity sha512-Gu11L7xx6AsKbjs/VsKMbkWmXvMw0+0ZPVJPZo5KvyJjF5GqYamBhkNC9gNgLmAl+VvZBFiYOfTYU195ecHrlQ== +"@abp/ng.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.3.0-rc.1.tgz#c4e6ba2525d87316aaa2080b1b01d0bb08b35255" + integrity sha512-QsFy2/LMLlkC4CSATqF+ILZriRW/FPrUY4FUlSbqzus8d2LmDtZm9+qY10bGQu32mCkMiyD20YewCzZxDJCywA== dependencies: - "@abp/ng.core" "~5.2.1" + "@abp/ng.core" "~5.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.15.4" "@ng-bootstrap/ng-bootstrap" "~12.0.0-beta.4" "@ngx-validate/core" "^0.1.1" @@ -117,13 +117,6 @@ bootstrap "^5.1.1" tslib "^2.0.0" -"@abp/utils@~5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.2.1.tgz#7c2d20f1bcc8cf9f90c060ed31ed3a114a463064" - integrity sha512-9hxI24aRZCnxCP+WsOoCltSg4YqG9WtW06t9/f6hFO9B0udXIKyV+95Ndipca/R1G94Snx81ifSwAa+DHbFfvQ== - dependencies: - just-compare "^1.3.0" - "@abp/utils@~5.3.0-rc.1": version "5.3.0-rc.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" @@ -131,6 +124,13 @@ dependencies: just-compare "^1.3.0" +"@abp/utils@~5.3.0-rc.2": + version "5.3.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.2.tgz#cbdf34bb32f99396c2a7f6dd2f0fa0b5239413bb" + integrity sha512-0BgsxKwkiNcbBSDJIfxBObM4QYTk1umZ/WnKUdvSyv0Fe4hKK+gDvsBzk97O+ZVyBHIflvcln3dKpS3eIVwhIg== + dependencies: + just-compare "^1.3.0" + "@ampproject/remapping@2.2.0", "@ampproject/remapping@^2.0.0", "@ampproject/remapping@^2.1.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 0f8c7a1a0d..3ed0a88f02 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "anchor-js": "^4.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index a2aabb2a01..d19a262d47 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~5.3.0-rc.1" + "@abp/aspnetcore.components.server.theming": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index fdf4b32ce9..bf6d6e22ed 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~5.3.0-rc.1", - "@abp/font-awesome": "~5.3.0-rc.1" + "@abp/bootstrap": "~5.3.0-rc.2", + "@abp/font-awesome": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 9133ccbc63..0df45ce1f3 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 6d71cc43b9..d9f4279e35 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "repository": { "type": "git", @@ -10,20 +10,20 @@ "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~5.3.0-rc.1", - "@abp/bootstrap": "~5.3.0-rc.1", - "@abp/bootstrap-datepicker": "~5.3.0-rc.1", - "@abp/datatables.net-bs5": "~5.3.0-rc.1", - "@abp/font-awesome": "~5.3.0-rc.1", - "@abp/jquery-form": "~5.3.0-rc.1", - "@abp/jquery-validation-unobtrusive": "~5.3.0-rc.1", - "@abp/lodash": "~5.3.0-rc.1", - "@abp/luxon": "~5.3.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~5.3.0-rc.1", - "@abp/select2": "~5.3.0-rc.1", - "@abp/sweetalert2": "~5.3.0-rc.1", - "@abp/timeago": "~5.3.0-rc.1", - "@abp/toastr": "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui": "~5.3.0-rc.2", + "@abp/bootstrap": "~5.3.0-rc.2", + "@abp/bootstrap-datepicker": "~5.3.0-rc.2", + "@abp/datatables.net-bs5": "~5.3.0-rc.2", + "@abp/font-awesome": "~5.3.0-rc.2", + "@abp/jquery-form": "~5.3.0-rc.2", + "@abp/jquery-validation-unobtrusive": "~5.3.0-rc.2", + "@abp/lodash": "~5.3.0-rc.2", + "@abp/luxon": "~5.3.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~5.3.0-rc.2", + "@abp/select2": "~5.3.0-rc.2", + "@abp/sweetalert2": "~5.3.0-rc.2", + "@abp/timeago": "~5.3.0-rc.2", + "@abp/toastr": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 8fe679a6b6..04582fc745 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 523e0bd759..b1d564a6a8 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/aspnetcore.mvc.ui", "repository": { "type": "git", diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index c01b119249..7c91c01a0d 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~5.3.0-rc.1", - "@abp/owl.carousel": "~5.3.0-rc.1", - "@abp/prismjs": "~5.3.0-rc.1", - "@abp/tui-editor": "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~5.3.0-rc.2", + "@abp/owl.carousel": "~5.3.0-rc.2", + "@abp/prismjs": "~5.3.0-rc.2", + "@abp/tui-editor": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 63b9cc45d2..835229ff8b 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/bootstrap-datepicker", "repository": { "type": "git", diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 92c7777842..ad64c80a77 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/bootstrap", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "bootstrap": "^5.1.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index ae94c81890..084df73b26 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 9ca832f804..fae812fb57 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "clipboard": "^2.0.8" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index 8568d81252..cc1668fba9 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,15 +1,15 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~5.3.0-rc.1", - "@abp/jstree": "~5.3.0-rc.1", - "@abp/slugify": "~5.3.0-rc.1", - "@abp/tui-editor": "~5.3.0-rc.1", - "@abp/uppy": "~5.3.0-rc.1" + "@abp/codemirror": "~5.3.0-rc.2", + "@abp/jstree": "~5.3.0-rc.2", + "@abp/slugify": "~5.3.0-rc.2", + "@abp/tui-editor": "~5.3.0-rc.2", + "@abp/uppy": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index 4a53341291..c4df11f103 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~5.3.0-rc.1", - "@abp/star-rating-svg": "~5.3.0-rc.1" + "@abp/highlight.js": "~5.3.0-rc.2", + "@abp/star-rating-svg": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index 8b4bb7d2f6..232f063a9f 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~5.3.0-rc.1", - "@abp/cms-kit.public": "~5.3.0-rc.1" + "@abp/cms-kit.admin": "~5.3.0-rc.2", + "@abp/cms-kit.public": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 24f4f0b3c1..420723c2be 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "codemirror": "^5.65.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 9c30a65869..9bb001240d 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/core", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/utils": "~5.3.0-rc.1" + "@abp/utils": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/core/src/abp.js b/npm/packs/core/src/abp.js index 7cb0782f1a..b028c013d6 100644 --- a/npm/packs/core/src/abp.js +++ b/npm/packs/core/src/abp.js @@ -773,4 +773,14 @@ var abp = abp || {}; return abp.features.values[name]; }; + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + })(); diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index d6b822e95c..55451153d2 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "cropperjs": "^1.5.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 7faba34e17..18514d4983 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/datatables.net-bs4", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/datatables.net": "~5.3.0-rc.1", + "@abp/datatables.net": "~5.3.0-rc.2", "datatables.net-bs4": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs5/package.json b/npm/packs/datatables.net-bs5/package.json index e9a0dbaad6..a6bc0d1dcb 100644 --- a/npm/packs/datatables.net-bs5/package.json +++ b/npm/packs/datatables.net-bs5/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/datatables.net-bs5", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~5.3.0-rc.1", + "@abp/datatables.net": "~5.3.0-rc.2", "datatables.net-bs5": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 5d73dc54b4..d936a92caf 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/datatables.net", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "datatables.net": "^1.11.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index fabbfac295..ac23c779cb 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~5.3.0-rc.1", - "@abp/clipboard": "~5.3.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~5.3.0-rc.1", - "@abp/popper.js": "~5.3.0-rc.1", - "@abp/prismjs": "~5.3.0-rc.1" + "@abp/anchor-js": "~5.3.0-rc.2", + "@abp/clipboard": "~5.3.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~5.3.0-rc.2", + "@abp/popper.js": "~5.3.0-rc.2", + "@abp/prismjs": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index c75915fbd0..eeb64b7474 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 0aaf358dce..f4aa0c745e 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/font-awesome", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "@fortawesome/fontawesome-free": "^5.15.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 58ed646b2c..fd1e10e579 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "@highlightjs/cdn-assets": "~11.4.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 7e03aa0d2a..c85000c281 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/jquery-form", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 511f0208c8..d3f387d85e 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/jquery-validation-unobtrusive", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~5.3.0-rc.1", + "@abp/jquery-validation": "~5.3.0-rc.2", "jquery-validation-unobtrusive": "^3.2.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 149c739724..a6ef81298b 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/jquery-validation", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "jquery-validation": "^1.19.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 01ee351f99..dde71cd7bb 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/jquery", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "jquery": "~3.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 76c20d13e4..b2868122b1 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "jstree": "^3.3.12" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 0119cf2400..32cb462a2b 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/lodash", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "lodash": "^4.17.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 8ede864304..63cf6710db 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/luxon", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "luxon": "^2.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index ba67d422a4..8ab4cff524 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/malihu-custom-scrollbar-plugin", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index afe3f1867e..e022c54ff9 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "markdown-it": "^12.3.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index b1e0936283..364760d2c4 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 96e20b7ba8..b4edbe1cda 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "@popperjs/core": "^2.11.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index e743511f73..6fefc56c8e 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~5.3.0-rc.1", - "@abp/core": "~5.3.0-rc.1", + "@abp/clipboard": "~5.3.0-rc.2", + "@abp/core": "~5.3.0-rc.2", "prismjs": "^1.26.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 1cc32ccd85..e14f206669 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/select2", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index dc8e9f3684..503dd4ac3b 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "@microsoft/signalr": "~6.0.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 22b7620f32..77276e3c11 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 7febb9673e..7bdb8406ad 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index fb5348cc96..5ad16cb5ac 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" @@ -10,7 +10,7 @@ "directory": "npm/packs/sweetalert2" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "sweetalert2": "^11.3.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index d59a99dff4..056d0f06f3 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/timeago", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 9817fb0fa1..ebf8124247 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/toastr", "repository": { "type": "git", @@ -10,7 +10,7 @@ "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", + "@abp/jquery": "~5.3.0-rc.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 7399669232..e56820a7d8 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.3.0-rc.1", - "@abp/prismjs": "~5.3.0-rc.1" + "@abp/jquery": "~5.3.0-rc.2", + "@abp/prismjs": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index afbd3a30cb..99af0cdfc6 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.3.0-rc.1", + "@abp/core": "~5.3.0-rc.2", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index f3641292a1..25fa739215 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "scripts": { "prepublishOnly": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index bbcf3bc98f..88f198dd2b 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~5.3.0-rc.1", + "@abp/vue": "~5.3.0-rc.2", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 46fc05cb8f..dd8d5fa51f 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~5.3.0-rc.1", - "@abp/prismjs": "~5.3.0-rc.1" + "@abp/clipboard": "~5.3.0-rc.2", + "@abp/prismjs": "~5.3.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index 012c855712..265414cf95 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "5.3.0-rc.1", + "version": "5.3.0-rc.2", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 6d1214918c..d0dc8e9359 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -202,6 +202,7 @@ $projects = ( "framework/src/Volo.Abp.ObjectMapping", "framework/src/Volo.Abp.Quartz", "framework/src/Volo.Abp.RabbitMQ", + "framework/src/Volo.Abp.RemoteServices", "framework/src/Volo.Abp.Security", "framework/src/Volo.Abp.Serialization", "framework/src/Volo.Abp.Settings", diff --git a/templates/app-nolayers/angular/package.json b/templates/app-nolayers/angular/package.json index c9c1f95ef6..30ca284adb 100644 --- a/templates/app-nolayers/angular/package.json +++ b/templates/app-nolayers/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.3.0-rc.1", - "@abp/ng.components": "~5.3.0-rc.1", - "@abp/ng.core": "~5.3.0-rc.1", - "@abp/ng.identity": "~5.3.0-rc.1", - "@abp/ng.setting-management": "~5.3.0-rc.1", - "@abp/ng.tenant-management": "~5.3.0-rc.1", - "@abp/ng.theme.basic": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account": "~5.3.0-rc.2", + "@abp/ng.components": "~5.3.0-rc.2", + "@abp/ng.core": "~5.3.0-rc.2", + "@abp/ng.identity": "~5.3.0-rc.2", + "@abp/ng.setting-management": "~5.3.0-rc.2", + "@abp/ng.tenant-management": "~5.3.0-rc.2", + "@abp/ng.theme.basic": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "@angular/animations": "~13.1.1", "@angular/common": "~13.1.1", "@angular/compiler": "~13.1.1", @@ -34,7 +34,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~5.3.0-rc.1", + "@abp/ng.schematics": "~5.3.0-rc.2", "@angular-devkit/build-angular": "~13.1.2", "@angular-eslint/builder": "~13.0.1", "@angular-eslint/eslint-plugin": "~13.0.1", diff --git a/templates/app-nolayers/angular/src/environments/environment.prod.ts b/templates/app-nolayers/angular/src/environments/environment.prod.ts index ba01a49280..e6cc007d52 100644 --- a/templates/app-nolayers/angular/src/environments/environment.prod.ts +++ b/templates/app-nolayers/angular/src/environments/environment.prod.ts @@ -10,7 +10,7 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44305', + issuer: 'https://localhost:44305/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', diff --git a/templates/app-nolayers/angular/src/environments/environment.ts b/templates/app-nolayers/angular/src/environments/environment.ts index 96f84eea43..04dc6e89f3 100644 --- a/templates/app-nolayers/angular/src/environments/environment.ts +++ b/templates/app-nolayers/angular/src/environments/environment.ts @@ -10,7 +10,7 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44305', + issuer: 'https://localhost:44305/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj index 8d0ceeb07a..dc5971eb3c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj @@ -9,7 +9,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -33,12 +33,12 @@ - + - + @@ -75,7 +75,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs index 0fb12feed2..c987e5dff6 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs @@ -27,15 +27,15 @@ using Volo.Abp.FeatureManagement.MongoDB; using Volo.Abp.Identity; using Volo.Abp.Identity.Blazor.Server; using Volo.Abp.Identity.MongoDB; -using Volo.Abp.IdentityServer.MongoDB; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict.MongoDB; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.MongoDB; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.Blazor.Server; using Volo.Abp.SettingManagement.MongoDB; @@ -65,15 +65,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityMongoDbModule), - typeof(AbpIdentityServerMongoDbModule), + typeof(AbpOpenIddictMongoDbModule), typeof(AbpIdentityBlazorServerModule), // Audit logging module packages @@ -116,6 +116,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameModule).Assembly ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -329,7 +346,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs index 07e558fb39..d922551429 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs @@ -25,7 +25,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Properties/launchSettings.json index b4be64ba09..d9a1c6d901 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44313/", - "sslPort": 44313 + "applicationUrl": "https://localhost:44300/", + "sslPort": 44300 } }, "profiles": { @@ -19,7 +19,7 @@ "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, - "applicationUrl": "https://localhost:44313/", + "applicationUrl": "https://localhost:44300/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor new file mode 100644 index 0000000000..fe27745143 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/_Imports.razor @@ -0,0 +1,13 @@ +@using System.Net.Http +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using MyCompanyName.MyProjectName.Blazor.Server +@using Blazorise +@using Blazorise.DataGrid +@using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json index f500ef063e..e08d35f224 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/appsettings.json @@ -1,13 +1,13 @@ { "App": { - "SelfUrl": "https://localhost:44313", - "RedirectAllowedUrls": "https://localhost:44313" + "SelfUrl": "https://localhost:44300", + "RedirectAllowedUrls": "https://localhost:44300" }, "ConnectionStrings": { "Default": "mongodb://localhost:27017/MyProjectName", }, "AuthServer": { - "Authority": "https://localhost:44313", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false" }, "StringEncryption": { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index b7d47de013..49176baf14 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Data/MyProjectNameDbContext.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Data/MyProjectNameDbContext.cs index 6265e8ebba..8ae0662ece 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Data/MyProjectNameDbContext.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Data/MyProjectNameDbContext.cs @@ -3,7 +3,7 @@ using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; @@ -27,7 +27,7 @@ public class MyProjectNameDbContext : AbpDbContext builder.ConfigureSettingManagement(); builder.ConfigureAuditLogging(); builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); + builder.ConfigureOpenIddict(); builder.ConfigureFeatureManagement(); builder.ConfigureTenantManagement(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs similarity index 64% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs index 606c549e29..423841ae21 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.Designer.cs @@ -10,10 +10,10 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220119015238_Initial")] + [Migration("20220519051356_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -931,322 +931,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1254,8 +950,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1273,36 +970,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1317,284 +994,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1602,56 +1035,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1680,18 +1126,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1712,51 +1156,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2018,157 +1525,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2215,52 +1587,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs similarity index 60% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs index 61dd143293..906d908cb4 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220519051356_Initial.cs @@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { public partial class Initial : Migration { @@ -256,16 +256,21 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResources", + name: "OpenIddictApplications", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - AllowedAccessTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Permissions = table.Column(type: "nvarchar(max)", nullable: true), + PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Requirements = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -278,130 +283,21 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerApiResources", x => x.Id); + table.PrimaryKey("PK_OpenIddictApplications", x => x.Id); }); migrationBuilder.CreateTable( - name: "IdentityServerApiScopes", + name: "OpenIddictScopes", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClients", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - RequireRequestObject = table.Column(type: "bit", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - AllowedIdentityTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - ConsentLifetime = table.Column(type: "int", nullable: true), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - UserSsoLifetime = table.Column(type: "int", nullable: true), - UserCodeType = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - DeviceCodeLifetime = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClients", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerDeviceFlowCodes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - DeviceCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - UserCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerDeviceFlowCodes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + Descriptions = table.Column(type: "nvarchar(max)", nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Resources = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -414,30 +310,7 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerPersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - ConsumedTime = table.Column(type: "datetime2", nullable: true), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Id = table.Column(type: "uniqueidentifier", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerPersistedGrants", x => x.Key); + table.PrimaryKey("PK_OpenIddictScopes", x => x.Id); }); migrationBuilder.CreateTable( @@ -673,320 +546,35 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceClaims", x => new { x.ApiResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceClaims_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceProperties", + name: "OpenIddictAuthorizations", columns: table => new { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceProperties", x => new { x.ApiResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceProperties_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceScopes", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceScopes", x => new { x.ApiResourceId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceScopes_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceSecrets", x => new { x.ApiResourceId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceSecrets_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeClaims", x => new { x.ApiScopeId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeClaims_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeProperties", - columns: table => new - { - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeProperties", x => new { x.ApiScopeId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeProperties_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientClaims", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientClaims", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientClaims_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientCorsOrigins", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientCorsOrigins", x => new { x.ClientId, x.Origin }); - table.ForeignKey( - name: "FK_IdentityServerClientCorsOrigins_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientGrantTypes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientGrantTypes", x => new { x.ClientId, x.GrantType }); - table.ForeignKey( - name: "FK_IdentityServerClientGrantTypes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientIdPRestrictions", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientIdPRestrictions", x => new { x.ClientId, x.Provider }); - table.ForeignKey( - name: "FK_IdentityServerClientIdPRestrictions_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientPostLogoutRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientPostLogoutRedirectUris", x => new { x.ClientId, x.PostLogoutRedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientPostLogoutRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientProperties", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientProperties", x => new { x.ClientId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientProperties_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientRedirectUris", x => new { x.ClientId, x.RedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientScopes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientScopes", x => new { x.ClientId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerClientScopes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientSecrets", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientSecrets_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceClaims", x => new { x.IdentityResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceClaims_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceProperties", - columns: table => new - { - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Scopes = table.Column(type: "nvarchar(max)", nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResourceProperties", x => new { x.IdentityResourceId, x.Key, x.Value }); + table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id); table.ForeignKey( - name: "FK_IdentityServerIdentityResourceProperties_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); }); migrationBuilder.CreateTable( @@ -1012,6 +600,47 @@ namespace MyCompanyName.MyProjectName.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "OpenIddictTokens", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + AuthorizationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + ExpirationDate = table.Column(type: "datetime2", nullable: true), + Payload = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedemptionDate = table.Column(type: "datetime2", nullable: true), + ReferenceId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictTokens", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId", + column: x => x.AuthorizationId, + principalTable: "OpenIddictAuthorizations", + principalColumn: "Id"); + }); + migrationBuilder.CreateIndex( name: "IX_AbpAuditLogActions_AuditLogId", table: "AbpAuditLogActions", @@ -1166,40 +795,34 @@ namespace MyCompanyName.MyProjectName.Migrations column: "UserName"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerClients_ClientId", - table: "IdentityServerClients", + name: "IX_OpenIddictApplications_ClientId", + table: "OpenIddictApplications", column: "ClientId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_DeviceCode", - table: "IdentityServerDeviceFlowCodes", - column: "DeviceCode", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_Expiration", - table: "IdentityServerDeviceFlowCodes", - column: "Expiration"); + name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type", + table: "OpenIddictAuthorizations", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_UserCode", - table: "IdentityServerDeviceFlowCodes", - column: "UserCode"); + name: "IX_OpenIddictScopes_Name", + table: "OpenIddictScopes", + column: "Name"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_Expiration", - table: "IdentityServerPersistedGrants", - column: "Expiration"); + name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type", + table: "OpenIddictTokens", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); + name: "IX_OpenIddictTokens_AuthorizationId", + table: "OpenIddictTokens", + column: "AuthorizationId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_SessionId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "SessionId", "Type" }); + name: "IX_OpenIddictTokens_ReferenceId", + table: "OpenIddictTokens", + column: "ReferenceId"); } protected override void Down(MigrationBuilder migrationBuilder) @@ -1253,61 +876,10 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUserTokens"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceClaims"); + name: "OpenIddictScopes"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerClientCorsOrigins"); - - migrationBuilder.DropTable( - name: "IdentityServerClientGrantTypes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientIdPRestrictions"); - - migrationBuilder.DropTable( - name: "IdentityServerClientPostLogoutRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerDeviceFlowCodes"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerPersistedGrants"); + name: "OpenIddictTokens"); migrationBuilder.DropTable( name: "AbpEntityChanges"); @@ -1325,19 +897,13 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUsers"); migrationBuilder.DropTable( - name: "IdentityServerApiResources"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopes"); + name: "OpenIddictAuthorizations"); migrationBuilder.DropTable( - name: "IdentityServerClients"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResources"); + name: "AbpAuditLogs"); migrationBuilder.DropTable( - name: "AbpAuditLogs"); + name: "OpenIddictApplications"); } } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs index af4ba29c12..cbb2af9f96 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -9,7 +9,7 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Blazor.Server.Migrations { [DbContext(typeof(MyProjectNameDbContext))] partial class MyProjectNameDbContextModelSnapshot : ModelSnapshot @@ -929,322 +929,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1252,8 +948,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1271,36 +968,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1315,284 +992,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1600,56 +1033,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1678,18 +1124,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1710,51 +1154,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2016,157 +1523,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2213,52 +1585,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index c377099e4f..9c350d2ad2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -9,7 +9,7 @@ - + @@ -26,7 +26,7 @@ - + @@ -34,12 +34,12 @@ - + - + @@ -76,11 +76,11 @@ - + - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs index 9567786a99..b9c8dca8f0 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs @@ -28,15 +28,15 @@ using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity; using Volo.Abp.Identity.Blazor.Server; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.Blazor.Server; using Volo.Abp.SettingManagement.EntityFrameworkCore; @@ -66,15 +66,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpOpenIddictEntityFrameworkCoreModule), typeof(AbpIdentityBlazorServerModule), // Audit logging module packages @@ -117,6 +117,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameModule).Assembly ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -337,7 +354,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs index 4553f8cfd1..8787d01b8e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs @@ -31,7 +31,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json index b4be64ba09..d9a1c6d901 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44313/", - "sslPort": 44313 + "applicationUrl": "https://localhost:44300/", + "sslPort": 44300 } }, "profiles": { @@ -19,7 +19,7 @@ "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, - "applicationUrl": "https://localhost:44313/", + "applicationUrl": "https://localhost:44300/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json index fa0901f6cc..cc9e8226f2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json @@ -1,13 +1,13 @@ { "App": { - "SelfUrl": "https://localhost:44313", - "RedirectAllowedUrls": "https://localhost:44313" + "SelfUrl": "https://localhost:44300", + "RedirectAllowedUrls": "https://localhost:44300" }, "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" }, "AuthServer": { - "Authority": "https://localhost:44313", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false" }, "StringEncryption": { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index b7d47de013..49176baf14 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.2" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/IdentityServerDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/IdentityServerDataSeedContributor.cs deleted file mode 100644 index 401134aa1b..0000000000 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/IdentityServerDataSeedContributor.cs +++ /dev/null @@ -1,271 +0,0 @@ -using IdentityServer4.Models; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.IdentityServer.ApiResources; -using Volo.Abp.IdentityServer.ApiScopes; -using Volo.Abp.IdentityServer.Clients; -using Volo.Abp.IdentityServer.IdentityResources; -using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -using Volo.Abp.Uow; -using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; -using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; -using Client = Volo.Abp.IdentityServer.Clients.Client; - -namespace MyCompanyName.MyProjectName.Data; - -public class IdentityServerDataSeedContributor : IDataSeedContributor, ITransientDependency -{ - private readonly IApiResourceRepository _apiResourceRepository; - private readonly IApiScopeRepository _apiScopeRepository; - private readonly IClientRepository _clientRepository; - private readonly IIdentityResourceDataSeeder _identityResourceDataSeeder; - private readonly IGuidGenerator _guidGenerator; - private readonly IPermissionDataSeeder _permissionDataSeeder; - private readonly IConfiguration _configuration; - private readonly ICurrentTenant _currentTenant; - - public IdentityServerDataSeedContributor( - IClientRepository clientRepository, - IApiResourceRepository apiResourceRepository, - IApiScopeRepository apiScopeRepository, - IIdentityResourceDataSeeder identityResourceDataSeeder, - IGuidGenerator guidGenerator, - IPermissionDataSeeder permissionDataSeeder, - IConfiguration configuration, - ICurrentTenant currentTenant) - { - _clientRepository = clientRepository; - _apiResourceRepository = apiResourceRepository; - _apiScopeRepository = apiScopeRepository; - _identityResourceDataSeeder = identityResourceDataSeeder; - _guidGenerator = guidGenerator; - _permissionDataSeeder = permissionDataSeeder; - _configuration = configuration; - _currentTenant = currentTenant; - } - - [UnitOfWork] - public virtual async Task SeedAsync(DataSeedContext context) - { - using (_currentTenant.Change(context?.TenantId)) - { - await _identityResourceDataSeeder.CreateStandardResourcesAsync(); - await CreateApiResourcesAsync(); - await CreateApiScopesAsync(); - await CreateClientsAsync(); - } - } - - private async Task CreateApiScopesAsync() - { - await CreateApiScopeAsync("MyProjectName"); - } - - private async Task CreateApiResourcesAsync() - { - var commonApiUserClaims = new[] {"email", "email_verified", "name", "phone_number", "phone_number_verified", "role"}; - await CreateApiResourceAsync("MyProjectName", commonApiUserClaims); - } - - private async Task CreateApiResourceAsync(string name, IEnumerable claims) - { - var apiResource = await _apiResourceRepository.FindByNameAsync(name); - if (apiResource == null) - { - apiResource = await _apiResourceRepository.InsertAsync( - new ApiResource( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - foreach (var claim in claims) - { - if (apiResource.FindClaim(claim) == null) - { - apiResource.AddUserClaim(claim); - } - } - - return await _apiResourceRepository.UpdateAsync(apiResource); - } - - private async Task CreateApiScopeAsync(string name) - { - var apiScope = await _apiScopeRepository.FindByNameAsync(name); - if (apiScope == null) - { - apiScope = await _apiScopeRepository.InsertAsync( - new ApiScope( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - return apiScope; - } - - private async Task CreateClientsAsync() - { - var commonScopes = new[] - { - "email", - "openid", - "profile", - "role", - "phone", - "address", - "MyProjectName" - }; - - var configurationSection = _configuration.GetSection("IdentityServer:Clients"); - - // Angular Client - var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; - if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); - - await CreateClientAsync( - name: consoleAndAngularClientId, - scopes: commonScopes, - grantTypes: new[] { "password", "client_credentials", "authorization_code" }, - secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), - requireClientSecret: false, - redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - // Swagger Client - var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; - if (!swaggerClientId.IsNullOrWhiteSpace()) - { - var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: swaggerClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } - ); - } - } - - private async Task CreateClientAsync( - string name, - IEnumerable scopes, - IEnumerable grantTypes, - string secret = null, - string redirectUri = null, - string postLogoutRedirectUri = null, - string frontChannelLogoutUri = null, - bool requireClientSecret = true, - bool requirePkce = false, - IEnumerable permissions = null, - IEnumerable corsOrigins = null) - { - var client = await _clientRepository.FindByClientIdAsync(name); - if (client == null) - { - client = await _clientRepository.InsertAsync( - new Client( - _guidGenerator.Create(), - name - ) - { - ClientName = name, - ProtocolType = "oidc", - Description = name, - AlwaysIncludeUserClaimsInIdToken = true, - AllowOfflineAccess = true, - AbsoluteRefreshTokenLifetime = 31536000, //365 days - AccessTokenLifetime = 31536000, //365 days - AuthorizationCodeLifetime = 300, - IdentityTokenLifetime = 300, - RequireConsent = false, - FrontChannelLogoutUri = frontChannelLogoutUri, - RequireClientSecret = requireClientSecret, - RequirePkce = requirePkce - }, - autoSave: true - ); - } - - foreach (var scope in scopes) - { - if (client.FindScope(scope) == null) - { - client.AddScope(scope); - } - } - - foreach (var grantType in grantTypes) - { - if (client.FindGrantType(grantType) == null) - { - client.AddGrantType(grantType); - } - } - - if (!secret.IsNullOrEmpty()) - { - if (client.FindSecret(secret) == null) - { - client.AddSecret(secret); - } - } - - if (redirectUri != null) - { - if (client.FindRedirectUri(redirectUri) == null) - { - client.AddRedirectUri(redirectUri); - } - } - - if (postLogoutRedirectUri != null) - { - if (client.FindPostLogoutRedirectUri(postLogoutRedirectUri) == null) - { - client.AddPostLogoutRedirectUri(postLogoutRedirectUri); - } - } - - if (permissions != null) - { - await _permissionDataSeeder.SeedAsync( - ClientPermissionValueProvider.ProviderName, - name, - permissions, - null - ); - } - - if (corsOrigins != null) - { - foreach (var origin in corsOrigins) - { - if (!origin.IsNullOrWhiteSpace() && client.FindCorsOrigin(origin) == null) - { - client.AddCorsOrigin(origin); - } - } - } - - return await _clientRepository.UpdateAsync(client); - } -} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs new file mode 100644 index 0000000000..c7e2925aa5 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Data/OpenIddictDataSeedContributor.cs @@ -0,0 +1,299 @@ +using JetBrains.Annotations; +using Microsoft.Extensions.Localization; +using OpenIddict.Abstractions; +using Volo.Abp; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; + +namespace MyCompanyName.MyProjectName.Data; + +/* Creates initial data that is needed to property run the application + * and make client-to-server communication possible. + */ +public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IConfiguration _configuration; + private readonly IOpenIddictApplicationManager _applicationManager; + private readonly IOpenIddictScopeManager _scopeManager; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IStringLocalizer L; + + public OpenIddictDataSeedContributor( + IConfiguration configuration, + IOpenIddictApplicationManager applicationManager, + IOpenIddictScopeManager scopeManager, + IPermissionDataSeeder permissionDataSeeder, + IStringLocalizer l) + { + _configuration = configuration; + _applicationManager = applicationManager; + _scopeManager = scopeManager; + _permissionDataSeeder = permissionDataSeeder; + L = l; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + await CreateScopesAsync(); + await CreateApplicationsAsync(); + } + + private async Task CreateScopesAsync() + { + if (await _scopeManager.FindByNameAsync("MyProjectName") == null) + { + await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor + { + Name = "MyProjectName", + DisplayName = "MyProjectName API", + Resources = + { + "MyProjectName" + } + }); + } + } + + private async Task CreateApplicationsAsync() + { + var commonScopes = new List + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles, + "MyProjectName" + }; + + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); + await CreateApplicationAsync( + name: consoleAndAngularClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Console Test / Angular Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.RefreshToken + }, + scopes: commonScopes, + redirectUri: webClientRootUrl, + postLogoutRedirectUri: webClientRootUrl + ); + } + + // Swagger Client + var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: swaggerClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Swagger Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + ); + } + } + + private async Task CreateApplicationAsync( + [NotNull] string name, + [NotNull] string type, + [NotNull] string consentType, + string displayName, + string secret, + List grantTypes, + List scopes, + string redirectUri = null, + string postLogoutRedirectUri = null, + List permissions = null) + { + if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); + } + + if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); + } + + if (!string.IsNullOrEmpty(name) && await _applicationManager.FindByClientIdAsync(name) != null) + { + return; + //throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]); + } + + var client = await _applicationManager.FindByClientIdAsync(name); + if (client == null) + { + var application = new OpenIddictApplicationDescriptor + { + ClientId = name, + Type = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName + }; + + Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); + Check.NotNullOrEmpty(scopes, nameof(scopes)); + + if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); + + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken); + } + } + + if (!redirectUri.IsNullOrWhiteSpace() || !postLogoutRedirectUri.IsNullOrWhiteSpace()) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); + } + + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + } + + var buildInScopes = new [] + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles + }; + + foreach (var scope in scopes) + { + if (buildInScopes.Contains(scope)) + { + application.Permissions.Add(scope); + } + else + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); + } + } + + if (redirectUri != null) + { + if (!redirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidRedirectUri", redirectUri]); + } + + if (application.RedirectUris.All(x => x != uri)) + { + application.RedirectUris.Add(uri); + } + } + } + + if (postLogoutRedirectUri != null) + { + if (!postLogoutRedirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); + } + + if (application.PostLogoutRedirectUris.All(x => x != uri)) + { + application.PostLogoutRedirectUris.Add(uri); + } + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + await _applicationManager.CreateAsync(application); + } + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj index 1e7ab8d272..6262e3f303 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj @@ -7,7 +7,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -32,11 +32,11 @@ - + - + @@ -69,8 +69,8 @@ - - + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs index f8d6fd1d67..6a9474af7b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs @@ -24,16 +24,16 @@ using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement.MongoDB; using Volo.Abp.Identity; using Volo.Abp.Identity.MongoDB; -using Volo.Abp.IdentityServer.MongoDB; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict.MongoDB; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.MongoDB; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.MongoDB; using Volo.Abp.Swashbuckle; @@ -61,15 +61,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityMongoDbModule), - typeof(AbpIdentityServerMongoDbModule), + typeof(AbpOpenIddictMongoDbModule), // Audit logging module packages typeof(AbpAuditLoggingMongoDbModule), @@ -107,6 +107,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameResource) ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -332,7 +349,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs index 6eb33e471a..d09fba6395 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs @@ -24,7 +24,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Properties/launchSettings.json index 56107d9223..fc0d2dd450 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44305", - "sslPort": 44305 + "applicationUrl": "https://localhost:44300", + "sslPort": 44300 } }, "profiles": { @@ -18,7 +18,7 @@ "MyCompanyName.MyProjectName": { "commandName": "Project", "launchBrowser": true, - "applicationUrl": "https://localhost:44305", + "applicationUrl": "https://localhost:44300", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/appsettings.json index 66ddc446d1..a63bc0eeb8 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44305", + "SelfUrl": "https://localhost:44300", "ClientUrl": "http://localhost:4200", "CorsOrigins": "https://*.MyProjectName.com,http://localhost:4200", "RedirectAllowedUrls": "http://localhost:4200" @@ -12,25 +12,22 @@ "Configuration": "127.0.0.1" }, "AuthServer": { - "Authority": "https://localhost:44305", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false", - "SwaggerClientId": "MyProjectName_Swagger", - "SwaggerClientSecret": "1q2w3e*" + "SwaggerClientId": "MyProjectName_Swagger" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" }, - "IdentityServer": { - "Clients": { + "OpenIddict": { + "Applications": { "MyProjectName_App": { "ClientId": "MyProjectName_App", - "ClientSecret": "1q2w3e*", "RootUrl": "http://localhost:4200" }, "MyProjectName_Swagger": { "ClientId": "MyProjectName_Swagger", - "ClientSecret": "1q2w3e*", - "RootUrl": "https://localhost:44305" + "RootUrl": "https://localhost:44300" } } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/IdentityServerDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/IdentityServerDataSeedContributor.cs deleted file mode 100644 index 401134aa1b..0000000000 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/IdentityServerDataSeedContributor.cs +++ /dev/null @@ -1,271 +0,0 @@ -using IdentityServer4.Models; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.IdentityServer.ApiResources; -using Volo.Abp.IdentityServer.ApiScopes; -using Volo.Abp.IdentityServer.Clients; -using Volo.Abp.IdentityServer.IdentityResources; -using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -using Volo.Abp.Uow; -using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; -using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; -using Client = Volo.Abp.IdentityServer.Clients.Client; - -namespace MyCompanyName.MyProjectName.Data; - -public class IdentityServerDataSeedContributor : IDataSeedContributor, ITransientDependency -{ - private readonly IApiResourceRepository _apiResourceRepository; - private readonly IApiScopeRepository _apiScopeRepository; - private readonly IClientRepository _clientRepository; - private readonly IIdentityResourceDataSeeder _identityResourceDataSeeder; - private readonly IGuidGenerator _guidGenerator; - private readonly IPermissionDataSeeder _permissionDataSeeder; - private readonly IConfiguration _configuration; - private readonly ICurrentTenant _currentTenant; - - public IdentityServerDataSeedContributor( - IClientRepository clientRepository, - IApiResourceRepository apiResourceRepository, - IApiScopeRepository apiScopeRepository, - IIdentityResourceDataSeeder identityResourceDataSeeder, - IGuidGenerator guidGenerator, - IPermissionDataSeeder permissionDataSeeder, - IConfiguration configuration, - ICurrentTenant currentTenant) - { - _clientRepository = clientRepository; - _apiResourceRepository = apiResourceRepository; - _apiScopeRepository = apiScopeRepository; - _identityResourceDataSeeder = identityResourceDataSeeder; - _guidGenerator = guidGenerator; - _permissionDataSeeder = permissionDataSeeder; - _configuration = configuration; - _currentTenant = currentTenant; - } - - [UnitOfWork] - public virtual async Task SeedAsync(DataSeedContext context) - { - using (_currentTenant.Change(context?.TenantId)) - { - await _identityResourceDataSeeder.CreateStandardResourcesAsync(); - await CreateApiResourcesAsync(); - await CreateApiScopesAsync(); - await CreateClientsAsync(); - } - } - - private async Task CreateApiScopesAsync() - { - await CreateApiScopeAsync("MyProjectName"); - } - - private async Task CreateApiResourcesAsync() - { - var commonApiUserClaims = new[] {"email", "email_verified", "name", "phone_number", "phone_number_verified", "role"}; - await CreateApiResourceAsync("MyProjectName", commonApiUserClaims); - } - - private async Task CreateApiResourceAsync(string name, IEnumerable claims) - { - var apiResource = await _apiResourceRepository.FindByNameAsync(name); - if (apiResource == null) - { - apiResource = await _apiResourceRepository.InsertAsync( - new ApiResource( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - foreach (var claim in claims) - { - if (apiResource.FindClaim(claim) == null) - { - apiResource.AddUserClaim(claim); - } - } - - return await _apiResourceRepository.UpdateAsync(apiResource); - } - - private async Task CreateApiScopeAsync(string name) - { - var apiScope = await _apiScopeRepository.FindByNameAsync(name); - if (apiScope == null) - { - apiScope = await _apiScopeRepository.InsertAsync( - new ApiScope( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - return apiScope; - } - - private async Task CreateClientsAsync() - { - var commonScopes = new[] - { - "email", - "openid", - "profile", - "role", - "phone", - "address", - "MyProjectName" - }; - - var configurationSection = _configuration.GetSection("IdentityServer:Clients"); - - // Angular Client - var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; - if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); - - await CreateClientAsync( - name: consoleAndAngularClientId, - scopes: commonScopes, - grantTypes: new[] { "password", "client_credentials", "authorization_code" }, - secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), - requireClientSecret: false, - redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - // Swagger Client - var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; - if (!swaggerClientId.IsNullOrWhiteSpace()) - { - var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: swaggerClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } - ); - } - } - - private async Task CreateClientAsync( - string name, - IEnumerable scopes, - IEnumerable grantTypes, - string secret = null, - string redirectUri = null, - string postLogoutRedirectUri = null, - string frontChannelLogoutUri = null, - bool requireClientSecret = true, - bool requirePkce = false, - IEnumerable permissions = null, - IEnumerable corsOrigins = null) - { - var client = await _clientRepository.FindByClientIdAsync(name); - if (client == null) - { - client = await _clientRepository.InsertAsync( - new Client( - _guidGenerator.Create(), - name - ) - { - ClientName = name, - ProtocolType = "oidc", - Description = name, - AlwaysIncludeUserClaimsInIdToken = true, - AllowOfflineAccess = true, - AbsoluteRefreshTokenLifetime = 31536000, //365 days - AccessTokenLifetime = 31536000, //365 days - AuthorizationCodeLifetime = 300, - IdentityTokenLifetime = 300, - RequireConsent = false, - FrontChannelLogoutUri = frontChannelLogoutUri, - RequireClientSecret = requireClientSecret, - RequirePkce = requirePkce - }, - autoSave: true - ); - } - - foreach (var scope in scopes) - { - if (client.FindScope(scope) == null) - { - client.AddScope(scope); - } - } - - foreach (var grantType in grantTypes) - { - if (client.FindGrantType(grantType) == null) - { - client.AddGrantType(grantType); - } - } - - if (!secret.IsNullOrEmpty()) - { - if (client.FindSecret(secret) == null) - { - client.AddSecret(secret); - } - } - - if (redirectUri != null) - { - if (client.FindRedirectUri(redirectUri) == null) - { - client.AddRedirectUri(redirectUri); - } - } - - if (postLogoutRedirectUri != null) - { - if (client.FindPostLogoutRedirectUri(postLogoutRedirectUri) == null) - { - client.AddPostLogoutRedirectUri(postLogoutRedirectUri); - } - } - - if (permissions != null) - { - await _permissionDataSeeder.SeedAsync( - ClientPermissionValueProvider.ProviderName, - name, - permissions, - null - ); - } - - if (corsOrigins != null) - { - foreach (var origin in corsOrigins) - { - if (!origin.IsNullOrWhiteSpace() && client.FindCorsOrigin(origin) == null) - { - client.AddCorsOrigin(origin); - } - } - } - - return await _clientRepository.UpdateAsync(client); - } -} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/MyProjectNameDbContext.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/MyProjectNameDbContext.cs index 6265e8ebba..8ae0662ece 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/MyProjectNameDbContext.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/MyProjectNameDbContext.cs @@ -3,7 +3,7 @@ using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; @@ -27,7 +27,7 @@ public class MyProjectNameDbContext : AbpDbContext builder.ConfigureSettingManagement(); builder.ConfigureAuditLogging(); builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); + builder.ConfigureOpenIddict(); builder.ConfigureFeatureManagement(); builder.ConfigureTenantManagement(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs new file mode 100644 index 0000000000..c7e2925aa5 --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Data/OpenIddictDataSeedContributor.cs @@ -0,0 +1,299 @@ +using JetBrains.Annotations; +using Microsoft.Extensions.Localization; +using OpenIddict.Abstractions; +using Volo.Abp; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; + +namespace MyCompanyName.MyProjectName.Data; + +/* Creates initial data that is needed to property run the application + * and make client-to-server communication possible. + */ +public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IConfiguration _configuration; + private readonly IOpenIddictApplicationManager _applicationManager; + private readonly IOpenIddictScopeManager _scopeManager; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IStringLocalizer L; + + public OpenIddictDataSeedContributor( + IConfiguration configuration, + IOpenIddictApplicationManager applicationManager, + IOpenIddictScopeManager scopeManager, + IPermissionDataSeeder permissionDataSeeder, + IStringLocalizer l) + { + _configuration = configuration; + _applicationManager = applicationManager; + _scopeManager = scopeManager; + _permissionDataSeeder = permissionDataSeeder; + L = l; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + await CreateScopesAsync(); + await CreateApplicationsAsync(); + } + + private async Task CreateScopesAsync() + { + if (await _scopeManager.FindByNameAsync("MyProjectName") == null) + { + await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor + { + Name = "MyProjectName", + DisplayName = "MyProjectName API", + Resources = + { + "MyProjectName" + } + }); + } + } + + private async Task CreateApplicationsAsync() + { + var commonScopes = new List + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles, + "MyProjectName" + }; + + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); + await CreateApplicationAsync( + name: consoleAndAngularClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Console Test / Angular Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.RefreshToken + }, + scopes: commonScopes, + redirectUri: webClientRootUrl, + postLogoutRedirectUri: webClientRootUrl + ); + } + + // Swagger Client + var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: swaggerClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Swagger Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + ); + } + } + + private async Task CreateApplicationAsync( + [NotNull] string name, + [NotNull] string type, + [NotNull] string consentType, + string displayName, + string secret, + List grantTypes, + List scopes, + string redirectUri = null, + string postLogoutRedirectUri = null, + List permissions = null) + { + if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); + } + + if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); + } + + if (!string.IsNullOrEmpty(name) && await _applicationManager.FindByClientIdAsync(name) != null) + { + return; + //throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]); + } + + var client = await _applicationManager.FindByClientIdAsync(name); + if (client == null) + { + var application = new OpenIddictApplicationDescriptor + { + ClientId = name, + Type = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName + }; + + Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); + Check.NotNullOrEmpty(scopes, nameof(scopes)); + + if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); + + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken); + } + } + + if (!redirectUri.IsNullOrWhiteSpace() || !postLogoutRedirectUri.IsNullOrWhiteSpace()) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); + } + + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + } + + var buildInScopes = new [] + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles + }; + + foreach (var scope in scopes) + { + if (buildInScopes.Contains(scope)) + { + application.Permissions.Add(scope); + } + else + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); + } + } + + if (redirectUri != null) + { + if (!redirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidRedirectUri", redirectUri]); + } + + if (application.RedirectUris.All(x => x != uri)) + { + application.RedirectUris.Add(uri); + } + } + } + + if (postLogoutRedirectUri != null) + { + if (!postLogoutRedirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); + } + + if (application.PostLogoutRedirectUris.All(x => x != uri)) + { + application.PostLogoutRedirectUris.Add(uri); + } + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + await _applicationManager.CreateAsync(application); + } + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs similarity index 64% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs index 606c549e29..17e18cfdaf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.Designer.cs @@ -10,10 +10,10 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Host.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220119015238_Initial")] + [Migration("20220519051355_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -931,322 +931,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1254,8 +950,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1273,36 +970,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1317,284 +994,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1602,56 +1035,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1680,18 +1126,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1712,51 +1156,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2018,157 +1525,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2215,52 +1587,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs similarity index 60% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs index 61dd143293..bddc83db55 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220519051355_Initial.cs @@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Host.Migrations { public partial class Initial : Migration { @@ -256,16 +256,21 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResources", + name: "OpenIddictApplications", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - AllowedAccessTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Permissions = table.Column(type: "nvarchar(max)", nullable: true), + PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Requirements = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -278,130 +283,21 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerApiResources", x => x.Id); + table.PrimaryKey("PK_OpenIddictApplications", x => x.Id); }); migrationBuilder.CreateTable( - name: "IdentityServerApiScopes", + name: "OpenIddictScopes", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClients", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - RequireRequestObject = table.Column(type: "bit", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - AllowedIdentityTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - ConsentLifetime = table.Column(type: "int", nullable: true), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - UserSsoLifetime = table.Column(type: "int", nullable: true), - UserCodeType = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - DeviceCodeLifetime = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClients", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerDeviceFlowCodes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - DeviceCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - UserCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerDeviceFlowCodes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + Descriptions = table.Column(type: "nvarchar(max)", nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Resources = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -414,30 +310,7 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerPersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - ConsumedTime = table.Column(type: "datetime2", nullable: true), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Id = table.Column(type: "uniqueidentifier", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerPersistedGrants", x => x.Key); + table.PrimaryKey("PK_OpenIddictScopes", x => x.Id); }); migrationBuilder.CreateTable( @@ -673,320 +546,35 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceClaims", x => new { x.ApiResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceClaims_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceProperties", + name: "OpenIddictAuthorizations", columns: table => new { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceProperties", x => new { x.ApiResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceProperties_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceScopes", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceScopes", x => new { x.ApiResourceId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceScopes_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceSecrets", x => new { x.ApiResourceId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceSecrets_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeClaims", x => new { x.ApiScopeId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeClaims_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeProperties", - columns: table => new - { - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeProperties", x => new { x.ApiScopeId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeProperties_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientClaims", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientClaims", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientClaims_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientCorsOrigins", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientCorsOrigins", x => new { x.ClientId, x.Origin }); - table.ForeignKey( - name: "FK_IdentityServerClientCorsOrigins_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientGrantTypes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientGrantTypes", x => new { x.ClientId, x.GrantType }); - table.ForeignKey( - name: "FK_IdentityServerClientGrantTypes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientIdPRestrictions", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientIdPRestrictions", x => new { x.ClientId, x.Provider }); - table.ForeignKey( - name: "FK_IdentityServerClientIdPRestrictions_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientPostLogoutRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientPostLogoutRedirectUris", x => new { x.ClientId, x.PostLogoutRedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientPostLogoutRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientProperties", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientProperties", x => new { x.ClientId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientProperties_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientRedirectUris", x => new { x.ClientId, x.RedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientScopes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientScopes", x => new { x.ClientId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerClientScopes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientSecrets", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientSecrets_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceClaims", x => new { x.IdentityResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceClaims_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceProperties", - columns: table => new - { - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Scopes = table.Column(type: "nvarchar(max)", nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResourceProperties", x => new { x.IdentityResourceId, x.Key, x.Value }); + table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id); table.ForeignKey( - name: "FK_IdentityServerIdentityResourceProperties_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); }); migrationBuilder.CreateTable( @@ -1012,6 +600,47 @@ namespace MyCompanyName.MyProjectName.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "OpenIddictTokens", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + AuthorizationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + ExpirationDate = table.Column(type: "datetime2", nullable: true), + Payload = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedemptionDate = table.Column(type: "datetime2", nullable: true), + ReferenceId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictTokens", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId", + column: x => x.AuthorizationId, + principalTable: "OpenIddictAuthorizations", + principalColumn: "Id"); + }); + migrationBuilder.CreateIndex( name: "IX_AbpAuditLogActions_AuditLogId", table: "AbpAuditLogActions", @@ -1166,40 +795,34 @@ namespace MyCompanyName.MyProjectName.Migrations column: "UserName"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerClients_ClientId", - table: "IdentityServerClients", + name: "IX_OpenIddictApplications_ClientId", + table: "OpenIddictApplications", column: "ClientId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_DeviceCode", - table: "IdentityServerDeviceFlowCodes", - column: "DeviceCode", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_Expiration", - table: "IdentityServerDeviceFlowCodes", - column: "Expiration"); + name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type", + table: "OpenIddictAuthorizations", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_UserCode", - table: "IdentityServerDeviceFlowCodes", - column: "UserCode"); + name: "IX_OpenIddictScopes_Name", + table: "OpenIddictScopes", + column: "Name"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_Expiration", - table: "IdentityServerPersistedGrants", - column: "Expiration"); + name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type", + table: "OpenIddictTokens", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); + name: "IX_OpenIddictTokens_AuthorizationId", + table: "OpenIddictTokens", + column: "AuthorizationId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_SessionId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "SessionId", "Type" }); + name: "IX_OpenIddictTokens_ReferenceId", + table: "OpenIddictTokens", + column: "ReferenceId"); } protected override void Down(MigrationBuilder migrationBuilder) @@ -1253,61 +876,10 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUserTokens"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceClaims"); + name: "OpenIddictScopes"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerClientCorsOrigins"); - - migrationBuilder.DropTable( - name: "IdentityServerClientGrantTypes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientIdPRestrictions"); - - migrationBuilder.DropTable( - name: "IdentityServerClientPostLogoutRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerDeviceFlowCodes"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerPersistedGrants"); + name: "OpenIddictTokens"); migrationBuilder.DropTable( name: "AbpEntityChanges"); @@ -1325,19 +897,13 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUsers"); migrationBuilder.DropTable( - name: "IdentityServerApiResources"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopes"); + name: "OpenIddictAuthorizations"); migrationBuilder.DropTable( - name: "IdentityServerClients"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResources"); + name: "AbpAuditLogs"); migrationBuilder.DropTable( - name: "AbpAuditLogs"); + name: "OpenIddictApplications"); } } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs index af4ba29c12..de96183c79 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -9,7 +9,7 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Host.Migrations { [DbContext(typeof(MyProjectNameDbContext))] partial class MyProjectNameDbContextModelSnapshot : ModelSnapshot @@ -929,322 +929,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1252,8 +948,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1271,36 +968,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1315,284 +992,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1600,56 +1033,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1678,18 +1124,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1710,51 +1154,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2016,157 +1523,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2213,52 +1585,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index 1d8766fec7..1d92ee3dcd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -33,11 +33,11 @@ - + - + @@ -70,12 +70,12 @@ - - + + - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs index 24eef29cb3..bc3a0eea8e 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs @@ -26,16 +26,16 @@ using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.Swashbuckle; @@ -63,15 +63,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpOpenIddictEntityFrameworkCoreModule), // Audit logging module packages typeof(AbpAuditLoggingEntityFrameworkCoreModule), @@ -109,6 +109,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameResource) ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -341,7 +358,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs index 199b799da8..c762c9b245 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs @@ -30,7 +30,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Properties/launchSettings.json index 56107d9223..fc0d2dd450 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44305", - "sslPort": 44305 + "applicationUrl": "https://localhost:44300", + "sslPort": 44300 } }, "profiles": { @@ -18,7 +18,7 @@ "MyCompanyName.MyProjectName": { "commandName": "Project", "launchBrowser": true, - "applicationUrl": "https://localhost:44305", + "applicationUrl": "https://localhost:44300", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/appsettings.json index f5cf04e16a..6c9d002cc6 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44305", + "SelfUrl": "https://localhost:44300", "ClientUrl": "http://localhost:4200", "CorsOrigins": "https://*.MyProjectName.com,http://localhost:4200", "RedirectAllowedUrls": "http://localhost:4200" @@ -12,25 +12,22 @@ "Configuration": "127.0.0.1" }, "AuthServer": { - "Authority": "https://localhost:44305", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false", - "SwaggerClientId": "MyProjectName_Swagger", - "SwaggerClientSecret": "1q2w3e*" + "SwaggerClientId": "MyProjectName_Swagger" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" }, - "IdentityServer": { - "Clients": { + "OpenIddict": { + "Applications": { "MyProjectName_App": { "ClientId": "MyProjectName_App", - "ClientSecret": "1q2w3e*", "RootUrl": "http://localhost:4200" }, "MyProjectName_Swagger": { "ClientId": "MyProjectName_Swagger", - "ClientSecret": "1q2w3e*", - "RootUrl": "https://localhost:44305" + "RootUrl": "https://localhost:44300" } } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj index 41033c4eab..1c770c1fe4 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj @@ -7,7 +7,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -31,12 +31,12 @@ - + - + @@ -72,7 +72,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs index 0fc9f27f87..7a0d97014a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs @@ -16,22 +16,21 @@ using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.AuditLogging.MongoDB; using Volo.Abp.Autofac; using Volo.Abp.AutoMapper; -using Volo.Abp.MongoDB; using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement.MongoDB; using Volo.Abp.Identity; using Volo.Abp.Identity.MongoDB; using Volo.Abp.Identity.Web; -using Volo.Abp.IdentityServer.MongoDB; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict.MongoDB; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.MongoDB; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.MongoDB; using Volo.Abp.SettingManagement.Web; @@ -60,15 +59,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityMongoDbModule), - typeof(AbpIdentityServerMongoDbModule), + typeof(AbpOpenIddictMongoDbModule), typeof(AbpIdentityWebModule), // Audit logging module packages @@ -110,6 +109,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameResource) ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -306,7 +322,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs index 9d076b5f23..ac3634377d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs @@ -25,7 +25,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Properties/launchSettings.json index b037eecdfa..e78a5b937c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44303/", - "sslPort": 44303 + "applicationUrl": "https://localhost:44300/", + "sslPort": 44300 } }, "profiles": { @@ -21,7 +21,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "https://localhost:44303/" + "applicationUrl": "https://localhost:44300/" } } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/appsettings.json index b8085820a8..97ad461966 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/appsettings.json @@ -1,12 +1,12 @@ { "App": { - "SelfUrl": "https://localhost:44303" + "SelfUrl": "https://localhost:44300" }, "ConnectionStrings": { "Default": "mongodb://localhost:27017/MyProjectName" }, "AuthServer": { - "Authority": "https://localhost:44303", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false" }, "StringEncryption": { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index 7c51cc96bc..6f6bdf156d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Data/MyProjectNameDbContext.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Data/MyProjectNameDbContext.cs index 6265e8ebba..8ae0662ece 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Data/MyProjectNameDbContext.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Data/MyProjectNameDbContext.cs @@ -3,7 +3,7 @@ using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; @@ -27,7 +27,7 @@ public class MyProjectNameDbContext : AbpDbContext builder.ConfigureSettingManagement(); builder.ConfigureAuditLogging(); builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); + builder.ConfigureOpenIddict(); builder.ConfigureFeatureManagement(); builder.ConfigureTenantManagement(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.Designer.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs similarity index 64% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.Designer.cs rename to templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs index 606c549e29..c0a1035988 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations/20220119015238_Initial.Designer.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.Designer.cs @@ -10,10 +10,10 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Mvc.Migrations { [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20220119015238_Initial")] + [Migration("20220519051401_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -931,322 +931,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1254,8 +950,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1273,36 +970,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1317,284 +994,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1602,56 +1035,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1680,18 +1126,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1712,51 +1156,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2018,157 +1525,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2215,52 +1587,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs new file mode 100644 index 0000000000..012a5de1ad --- /dev/null +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220519051401_Initial.cs @@ -0,0 +1,909 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace MyCompanyName.MyProjectName.Mvc.Migrations +{ + public partial class Initial : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AbpAuditLogs", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ImpersonatorUserId = table.Column(type: "uniqueidentifier", nullable: true), + ImpersonatorUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + ImpersonatorTenantId = table.Column(type: "uniqueidentifier", nullable: true), + ImpersonatorTenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ExecutionTime = table.Column(type: "datetime2", nullable: false), + ExecutionDuration = table.Column(type: "int", nullable: false), + ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ClientName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + HttpMethod = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), + Url = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + Exceptions = table.Column(type: "nvarchar(max)", nullable: true), + Comments = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + HttpStatusCode = table.Column(type: "int", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpAuditLogs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpClaimTypes", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Required = table.Column(type: "bit", nullable: false), + IsStatic = table.Column(type: "bit", nullable: false), + Regex = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + RegexDescription = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + Description = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + ValueType = table.Column(type: "int", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpFeatureValues", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + Value = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpFeatureValues", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpLinkUsers", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + SourceUserId = table.Column(type: "uniqueidentifier", nullable: false), + SourceTenantId = table.Column(type: "uniqueidentifier", nullable: true), + TargetUserId = table.Column(type: "uniqueidentifier", nullable: false), + TargetTenantId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpOrganizationUnits", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ParentId = table.Column(type: "uniqueidentifier", nullable: true), + Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), + DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); + table.ForeignKey( + name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", + column: x => x.ParentId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "AbpPermissionGrants", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpRoles", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + IsDefault = table.Column(type: "bit", nullable: false), + IsStatic = table.Column(type: "bit", nullable: false), + IsPublic = table.Column(type: "bit", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpRoles", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpSecurityLogs", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + Identity = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + Action = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), + UserId = table.Column(type: "uniqueidentifier", nullable: true), + UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpSettings", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + Value = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: false), + ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpSettings", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpTenants", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpTenants", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpUsers", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + Surname = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), + Email = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + NormalizedEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + EmailConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), + PasswordHash = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + SecurityStamp = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + IsExternal = table.Column(type: "bit", nullable: false, defaultValue: false), + PhoneNumber = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), + PhoneNumberConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), + IsActive = table.Column(type: "bit", nullable: false), + TwoFactorEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), + LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), + LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), + AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUsers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OpenIddictApplications", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Permissions = table.Column(type: "nvarchar(max)", nullable: true), + PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Requirements = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictApplications", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "OpenIddictScopes", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + Descriptions = table.Column(type: "nvarchar(max)", nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Resources = table.Column(type: "nvarchar(max)", nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictScopes", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AbpAuditLogActions", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + AuditLogId = table.Column(type: "uniqueidentifier", nullable: false), + ServiceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), + MethodName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), + Parameters = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), + ExecutionTime = table.Column(type: "datetime2", nullable: false), + ExecutionDuration = table.Column(type: "int", nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpAuditLogActions", x => x.Id); + table.ForeignKey( + name: "FK_AbpAuditLogActions_AbpAuditLogs_AuditLogId", + column: x => x.AuditLogId, + principalTable: "AbpAuditLogs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpEntityChanges", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + AuditLogId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ChangeTime = table.Column(type: "datetime2", nullable: false), + ChangeType = table.Column(type: "tinyint", nullable: false), + EntityTenantId = table.Column(type: "uniqueidentifier", nullable: true), + EntityId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + EntityTypeFullName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpEntityChanges", x => x.Id); + table.ForeignKey( + name: "FK_AbpEntityChanges_AbpAuditLogs_AuditLogId", + column: x => x.AuditLogId, + principalTable: "AbpAuditLogs", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpOrganizationUnitRoles", + columns: table => new + { + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); + table.ForeignKey( + name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUnitId", + column: x => x.OrganizationUnitId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpRoleClaims", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); + table.ForeignKey( + name: "FK_AbpRoleClaims_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpTenantConnectionStrings", + columns: table => new + { + TenantId = table.Column(type: "uniqueidentifier", nullable: false), + Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + Value = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpTenantConnectionStrings", x => new { x.TenantId, x.Name }); + table.ForeignKey( + name: "FK_AbpTenantConnectionStrings_AbpTenants_TenantId", + column: x => x.TenantId, + principalTable: "AbpTenants", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserClaims", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + UserId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), + ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserClaims", x => x.Id); + table.ForeignKey( + name: "FK_AbpUserClaims_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserLogins", + columns: table => new + { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + ProviderKey = table.Column(type: "nvarchar(196)", maxLength: 196, nullable: false), + ProviderDisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); + table.ForeignKey( + name: "FK_AbpUserLogins_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserOrganizationUnits", + columns: table => new + { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); + table.ForeignKey( + name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUnitId", + column: x => x.OrganizationUnitId, + principalTable: "AbpOrganizationUnits", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserRoles", + columns: table => new + { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + RoleId = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); + table.ForeignKey( + name: "FK_AbpUserRoles_AbpRoles_RoleId", + column: x => x.RoleId, + principalTable: "AbpRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AbpUserRoles_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AbpUserTokens", + columns: table => new + { + UserId = table.Column(type: "uniqueidentifier", nullable: false), + LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Value = table.Column(type: "nvarchar(max)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + table.ForeignKey( + name: "FK_AbpUserTokens_AbpUsers_UserId", + column: x => x.UserId, + principalTable: "AbpUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OpenIddictAuthorizations", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Scopes = table.Column(type: "nvarchar(max)", nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "AbpEntityPropertyChanges", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + EntityChangeId = table.Column(type: "uniqueidentifier", nullable: false), + NewValue = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + OriginalValue = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), + PropertyName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + PropertyTypeFullName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpEntityPropertyChanges", x => x.Id); + table.ForeignKey( + name: "FK_AbpEntityPropertyChanges_AbpEntityChanges_EntityChangeId", + column: x => x.EntityChangeId, + principalTable: "AbpEntityChanges", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "OpenIddictTokens", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + AuthorizationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + ExpirationDate = table.Column(type: "datetime2", nullable: true), + Payload = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedemptionDate = table.Column(type: "datetime2", nullable: true), + ReferenceId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictTokens", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId", + column: x => x.AuthorizationId, + principalTable: "OpenIddictAuthorizations", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_AbpAuditLogActions_AuditLogId", + table: "AbpAuditLogActions", + column: "AuditLogId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpAuditLogActions_TenantId_ServiceName_MethodName_ExecutionTime", + table: "AbpAuditLogActions", + columns: new[] { "TenantId", "ServiceName", "MethodName", "ExecutionTime" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpAuditLogs_TenantId_ExecutionTime", + table: "AbpAuditLogs", + columns: new[] { "TenantId", "ExecutionTime" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpAuditLogs_TenantId_UserId_ExecutionTime", + table: "AbpAuditLogs", + columns: new[] { "TenantId", "UserId", "ExecutionTime" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpEntityChanges_AuditLogId", + table: "AbpEntityChanges", + column: "AuditLogId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpEntityChanges_TenantId_EntityTypeFullName_EntityId", + table: "AbpEntityChanges", + columns: new[] { "TenantId", "EntityTypeFullName", "EntityId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpEntityPropertyChanges_EntityChangeId", + table: "AbpEntityPropertyChanges", + column: "EntityChangeId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpFeatureValues_Name_ProviderName_ProviderKey", + table: "AbpFeatureValues", + columns: new[] { "Name", "ProviderName", "ProviderKey" }, + unique: true, + filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_TargetTenantId", + table: "AbpLinkUsers", + columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, + unique: true, + filter: "[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", + table: "AbpOrganizationUnitRoles", + columns: new[] { "RoleId", "OrganizationUnitId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnits_Code", + table: "AbpOrganizationUnits", + column: "Code"); + + migrationBuilder.CreateIndex( + name: "IX_AbpOrganizationUnits_ParentId", + table: "AbpOrganizationUnits", + column: "ParentId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpPermissionGrants_TenantId_Name_ProviderName_ProviderKey", + table: "AbpPermissionGrants", + columns: new[] { "TenantId", "Name", "ProviderName", "ProviderKey" }, + unique: true, + filter: "[TenantId] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AbpRoleClaims_RoleId", + table: "AbpRoleClaims", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpRoles_NormalizedName", + table: "AbpRoles", + column: "NormalizedName"); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_Action", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "Action" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_ApplicationName", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "ApplicationName" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_Identity", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "Identity" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSecurityLogs_TenantId_UserId", + table: "AbpSecurityLogs", + columns: new[] { "TenantId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpSettings_Name_ProviderName_ProviderKey", + table: "AbpSettings", + columns: new[] { "Name", "ProviderName", "ProviderKey" }, + unique: true, + filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AbpTenants_Name", + table: "AbpTenants", + column: "Name"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserClaims_UserId", + table: "AbpUserClaims", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserLogins_LoginProvider_ProviderKey", + table: "AbpUserLogins", + columns: new[] { "LoginProvider", "ProviderKey" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", + table: "AbpUserOrganizationUnits", + columns: new[] { "UserId", "OrganizationUnitId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUserRoles_RoleId_UserId", + table: "AbpUserRoles", + columns: new[] { "RoleId", "UserId" }); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_Email", + table: "AbpUsers", + column: "Email"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_NormalizedEmail", + table: "AbpUsers", + column: "NormalizedEmail"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_NormalizedUserName", + table: "AbpUsers", + column: "NormalizedUserName"); + + migrationBuilder.CreateIndex( + name: "IX_AbpUsers_UserName", + table: "AbpUsers", + column: "UserName"); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictApplications_ClientId", + table: "OpenIddictApplications", + column: "ClientId"); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type", + table: "OpenIddictAuthorizations", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictScopes_Name", + table: "OpenIddictScopes", + column: "Name"); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type", + table: "OpenIddictTokens", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictTokens_AuthorizationId", + table: "OpenIddictTokens", + column: "AuthorizationId"); + + migrationBuilder.CreateIndex( + name: "IX_OpenIddictTokens_ReferenceId", + table: "OpenIddictTokens", + column: "ReferenceId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AbpAuditLogActions"); + + migrationBuilder.DropTable( + name: "AbpClaimTypes"); + + migrationBuilder.DropTable( + name: "AbpEntityPropertyChanges"); + + migrationBuilder.DropTable( + name: "AbpFeatureValues"); + + migrationBuilder.DropTable( + name: "AbpLinkUsers"); + + migrationBuilder.DropTable( + name: "AbpOrganizationUnitRoles"); + + migrationBuilder.DropTable( + name: "AbpPermissionGrants"); + + migrationBuilder.DropTable( + name: "AbpRoleClaims"); + + migrationBuilder.DropTable( + name: "AbpSecurityLogs"); + + migrationBuilder.DropTable( + name: "AbpSettings"); + + migrationBuilder.DropTable( + name: "AbpTenantConnectionStrings"); + + migrationBuilder.DropTable( + name: "AbpUserClaims"); + + migrationBuilder.DropTable( + name: "AbpUserLogins"); + + migrationBuilder.DropTable( + name: "AbpUserOrganizationUnits"); + + migrationBuilder.DropTable( + name: "AbpUserRoles"); + + migrationBuilder.DropTable( + name: "AbpUserTokens"); + + migrationBuilder.DropTable( + name: "OpenIddictScopes"); + + migrationBuilder.DropTable( + name: "OpenIddictTokens"); + + migrationBuilder.DropTable( + name: "AbpEntityChanges"); + + migrationBuilder.DropTable( + name: "AbpTenants"); + + migrationBuilder.DropTable( + name: "AbpOrganizationUnits"); + + migrationBuilder.DropTable( + name: "AbpRoles"); + + migrationBuilder.DropTable( + name: "AbpUsers"); + + migrationBuilder.DropTable( + name: "OpenIddictAuthorizations"); + + migrationBuilder.DropTable( + name: "AbpAuditLogs"); + + migrationBuilder.DropTable( + name: "OpenIddictApplications"); + } + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs index af4ba29c12..6366763ca2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -9,7 +9,7 @@ using Volo.Abp.EntityFrameworkCore; #nullable disable -namespace MyCompanyName.MyProjectName.Migrations +namespace MyCompanyName.MyProjectName.Mvc.Migrations { [DbContext(typeof(MyProjectNameDbContext))] partial class MyProjectNameDbContextModelSnapshot : ModelSnapshot @@ -929,322 +929,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1252,8 +948,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1271,36 +968,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1315,284 +992,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1600,56 +1033,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1678,18 +1124,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1710,51 +1154,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2016,157 +1523,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2213,52 +1585,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj index fd0c48af53..f73e132e84 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj @@ -7,7 +7,7 @@ - + @@ -24,7 +24,7 @@ - + @@ -32,12 +32,12 @@ - + - + @@ -73,11 +73,11 @@ - + - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs index f9725d589d..7f7a7a4da9 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs @@ -23,16 +23,16 @@ using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity; using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Identity.Web; -using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.HttpApi; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.Web; @@ -61,15 +61,15 @@ namespace MyCompanyName.MyProjectName; // Account module packages typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), // Identity module packages typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpOpenIddictEntityFrameworkCoreModule), typeof(AbpIdentityWebModule), // Audit logging module packages @@ -111,6 +111,23 @@ public class MyProjectNameModule : AbpModule typeof(MyProjectNameResource) ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -314,7 +331,6 @@ public class MyProjectNameModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs index 57e81aa17c..8a6393168c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs @@ -31,7 +31,6 @@ public class Program { loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning); loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); - loggerConfiguration.MinimumLevel.Override("IdentityServer4.Startup", LogEventLevel.Warning); } Log.Logger = loggerConfiguration.CreateLogger(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Properties/launchSettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Properties/launchSettings.json index edeefb02ad..b265dfb7fe 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Properties/launchSettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44303/", - "sslPort": 44303 + "applicationUrl": "https://localhost:44300/", + "sslPort": 44300 } }, "profiles": { @@ -21,7 +21,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, - "applicationUrl": "https://localhost:44303/" + "applicationUrl": "https://localhost:44300/" } } } \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/appsettings.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/appsettings.json index cf1965742b..74bc952883 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/appsettings.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/appsettings.json @@ -1,12 +1,12 @@ { "App": { - "SelfUrl": "https://localhost:44303" + "SelfUrl": "https://localhost:44300" }, "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" }, "AuthServer": { - "Authority": "https://localhost:44303", + "Authority": "https://localhost:44300", "RequireHttpsMetadata": "false" }, "StringEncryption": { diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index 7c51cc96bc..6f6bdf156d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 2cc214007f..da804c260e 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.3.0-rc.1", - "@abp/ng.components": "~5.3.0-rc.1", - "@abp/ng.core": "~5.3.0-rc.1", - "@abp/ng.identity": "~5.3.0-rc.1", - "@abp/ng.setting-management": "~5.3.0-rc.1", - "@abp/ng.tenant-management": "~5.3.0-rc.1", - "@abp/ng.theme.basic": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account": "~5.3.0-rc.2", + "@abp/ng.components": "~5.3.0-rc.2", + "@abp/ng.core": "~5.3.0-rc.2", + "@abp/ng.identity": "~5.3.0-rc.2", + "@abp/ng.setting-management": "~5.3.0-rc.2", + "@abp/ng.tenant-management": "~5.3.0-rc.2", + "@abp/ng.theme.basic": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "@angular/animations": "~13.3.3", "@angular/common": "~13.3.3", "@angular/compiler": "~13.3.3", @@ -34,7 +34,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~5.3.0-rc.1", + "@abp/ng.schematics": "~5.3.0-rc.2", "@angular-devkit/build-angular": "~13.3.3", "@angular-eslint/builder": "~13.2.1", "@angular-eslint/eslint-plugin": "~13.2.1", @@ -58,4 +58,4 @@ "ng-packagr": "^13.1.2", "typescript": "~4.5.4" } -} \ No newline at end of file +} diff --git a/templates/app/angular/src/environments/environment.prod.ts b/templates/app/angular/src/environments/environment.prod.ts index ba01a49280..e6cc007d52 100644 --- a/templates/app/angular/src/environments/environment.prod.ts +++ b/templates/app/angular/src/environments/environment.prod.ts @@ -10,7 +10,7 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44305', + issuer: 'https://localhost:44305/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', diff --git a/templates/app/angular/src/environments/environment.ts b/templates/app/angular/src/environments/environment.ts index 96f84eea43..04dc6e89f3 100644 --- a/templates/app/angular/src/environments/environment.ts +++ b/templates/app/angular/src/environments/environment.ts @@ -10,7 +10,7 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44305', + issuer: 'https://localhost:44305/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', diff --git a/templates/app/aspnet-core/.gitignore b/templates/app/aspnet-core/.gitignore index 0e896edeb7..2f1f0b2e75 100644 --- a/templates/app/aspnet-core/.gitignore +++ b/templates/app/aspnet-core/.gitignore @@ -254,7 +254,7 @@ paket-files/ # MyProjectName src/MyCompanyName.MyProjectName.Web/Logs/* src/MyCompanyName.MyProjectName.Web.Host/Logs/* -src/MyCompanyName.MyProjectName.IdentityServer/Logs/* +src/MyCompanyName.MyProjectName.AuthServer/Logs/* src/MyCompanyName.MyProjectName.HttpApi.Host/Logs/* src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/Logs/* src/MyCompanyName.MyProjectName.DbMigrator/Logs/* diff --git a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln index c899ac4b70..fe15314225 100644 --- a/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln +++ b/templates/app/aspnet-core/MyCompanyName.MyProjectName.sln @@ -31,7 +31,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Web.Host", "src\MyCompanyName.MyProjectName.Web.Host\MyCompanyName.MyProjectName.Web.Host.csproj", "{6FE54035-9C11-4702-A5E2-D16F23101468}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.IdentityServer", "src\MyCompanyName.MyProjectName.IdentityServer\MyCompanyName.MyProjectName.IdentityServer.csproj", "{073C361E-B8F4-49F5-93CC-72A3FF49C026}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.AuthServer", "src\MyCompanyName.MyProjectName.AuthServer\MyCompanyName.MyProjectName.AuthServer.csproj", "{073C361E-B8F4-49F5-93CC-72A3FF49C026}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.HttpApi.Host", "src\MyCompanyName.MyProjectName.HttpApi.Host\MyCompanyName.MyProjectName.HttpApi.Host.csproj", "{E6D5BF0E-DE92-4D82-A352-EF04B37CB11C}" EndProject diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj similarity index 92% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index 81d4bcffba..5b34e6b872 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -31,9 +31,9 @@ - + - + @@ -41,7 +41,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs similarity index 83% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index fcaa4f5ab5..05ea1c90ea 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -37,15 +37,35 @@ namespace MyCompanyName.MyProjectName; [DependsOn( typeof(AbpAutofacModule), typeof(AbpCachingStackExchangeRedisModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAspNetCoreSerilogModule) )] -public class MyProjectNameIdentityServerModule : AbpModule +public class MyProjectNameAuthServerModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); + } + public override void ConfigureServices(ServiceConfigurationContext context) { var hostingEnvironment = context.Services.GetHostingEnvironment(); @@ -101,16 +121,16 @@ public class MyProjectNameIdentityServerModule : AbpModule { Configure(options => { - // - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); + // + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Bootstrap", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}basic-theme{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}account{0}src{0}Volo.Abp.Account.Web", Path.DirectorySeparatorChar))); - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}account{0}src{0}Volo.Abp.Account.Web.IdentityServer", Path.DirectorySeparatorChar))); - // - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}account{0}src{0}Volo.Abp.Account.Web.OpenIddict", Path.DirectorySeparatorChar))); + // + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); }); } @@ -190,7 +210,6 @@ public class MyProjectNameIdentityServerModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseAuditing(); app.UseAbpSerilogEnrichers(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameBrandingProvider.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameBrandingProvider.cs similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameBrandingProvider.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameBrandingProvider.cs diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml.cs similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml.cs diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/_ViewImports.cshtml b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/_ViewImports.cshtml similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Pages/_ViewImports.cshtml rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Pages/_ViewImports.cshtml diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Program.cs similarity index 87% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Program.cs index 756b7da688..9a8952adf3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Program.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Program.cs @@ -27,12 +27,12 @@ public class Program try { - Log.Information("Starting MyCompanyName.MyProjectName.IdentityServer."); + Log.Information("Starting MyCompanyName.MyProjectName.AuthServer."); var builder = WebApplication.CreateBuilder(args); builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); await app.RunAsync(); @@ -40,7 +40,7 @@ public class Program } catch (Exception ex) { - Log.Fatal(ex, "MyCompanyName.MyProjectName.IdentityServer terminated unexpectedly!"); + Log.Fatal(ex, "MyCompanyName.MyProjectName.AuthServer terminated unexpectedly!"); return 1; } finally diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json similarity index 92% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json index 96994edbe8..a9abb8982a 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json @@ -15,7 +15,7 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "IdentityServerHost": { + "MyCompanyName.MyProjectName.AuthServer": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:44301", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/abp.resourcemapping.js b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/abp.resourcemapping.js similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/abp.resourcemapping.js rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/abp.resourcemapping.js diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.Development.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.Development.json similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.Development.json rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.Development.json diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.json similarity index 90% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.json index 00f7dcefe2..2d7115408e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/appsettings.json @@ -3,7 +3,7 @@ "SelfUrl": "https://localhost:44301", "ClientUrl": "http://localhost:4200", "CorsOrigins": "https://*.MyProjectName.com,http://localhost:4200,https://localhost:44307,https://localhost:44300", - "RedirectAllowedUrls": "http://localhost:4200,https://localhost:44307" + "RedirectAllowedUrls": "http://localhost:4200,https://localhost:44302,https://localhost:44307,https://localhost:44309" }, "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json new file mode 100644 index 0000000000..e65907860e --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "name": "my-app-authserver", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/global-styles.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/global-styles.css similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/global-styles.css rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/wwwroot/global-styles.css diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/yarn.lock similarity index 92% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/yarn.lock index 6e77565af6..f531fff53b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.1.tgz#884a4bc9ea043654891be56cd7e7c7bbf9bbad8c" - integrity sha512-JGTQyg3Zyfda84yg/Geq6rGuBN2SX4gIOaFL2h8BX9bA8CVuBC+zcwfO1bBsP89xfTyPvdSAGBvSfhCjPwsukQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.1.tgz#77a4900424603e0be048f3507aa852701f3139a2" - integrity sha512-mn9HEOHBkmBr7d/VUt0bfg9K58IyRDb7j3ZiDoHo263WLXJkf0+C7MEbv/zxfDHW4NeztsNCd3ugA7PdTxPzmA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.1" - "@abp/bootstrap" "~5.0.1" - "@abp/bootstrap-datepicker" "~5.0.1" - "@abp/datatables.net-bs5" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - "@abp/jquery-form" "~5.0.1" - "@abp/jquery-validation-unobtrusive" "~5.0.1" - "@abp/lodash" "~5.0.1" - "@abp/luxon" "~5.0.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.1" - "@abp/select2" "~5.0.1" - "@abp/sweetalert2" "~5.0.1" - "@abp/timeago" "~5.0.1" - "@abp/toastr" "~5.0.1" - -"@abp/aspnetcore.mvc.ui@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.1.tgz#f5aa4e0dcc10878f590e30836887f3f9861e91e3" - integrity sha512-bN15UcNhTqeo0RXlIYws7Jd8ZfSBsVM6Y5wiAqbq1Q3Lvs1uLmryhZpn6sHmKw2Z3Lnhec7VjnZN0FwNpzEqUw== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,152 +41,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.1.tgz#52116a154e343d84c87257ad1ef10b54012f4c33" - integrity sha512-ZJWaZKzGzshBAfyBqaUScfWqeBVfWGbZIwIplF8VKtDGcyI8R54bqDsydhS88CCnolRz4+tfq3QY6yAXrUEKAw== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.1.tgz#d542a8fd7151e22eda1643e313a67f9892c50533" - integrity sha512-wyVAp6a4OIwlqK7AZozs7wpsBZgzG55EKeChBBfUXloJPuirQHxccFNE41aAYWfKur+wj25WD5NBnzFuKyNYiQ== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.0.1" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.0-rc.1" + bootstrap "^5.1.3" -"@abp/core@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.1.tgz#904fa2c22bcbf42deb56abf772c3a53362807a2f" - integrity sha512-QzX35Oa+Vncu2OP1tXvGjAVFznmD1tZRn4tlDQgn36B2MU06UEO0JSx7JVedPvhzQZceUe5+WWMfuYNM2xeBTw== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.0.1" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.0.1.tgz#b8afa2255e374c86c50e57bd57c2b36a86d6a890" - integrity sha512-1fuCk+K4xW3XnDFo2+kPXHMoOTol4HLRcWVRELjoBQ5YbTxEPsbrhfNUeUsECDAmkxoqY7G3MEdtIVwmy5NPpg== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.0.1" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.0-rc.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.1.tgz#0ce5bdf7aa5bf224b93a22758a016c50562d6569" - integrity sha512-x9D2YNtnOJRrKXi2Pwrqzz9sIOrn3o6x2c8ZxjyC54vh+SLQtLycAzQw7OyaZGdbFkudlJiCuME/FiuZvht8Og== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.0.1" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.0-rc.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.1.tgz#661753403499925661f880c53214841dd34f5210" - integrity sha512-C+alReNvHZzST55ITBTyFqhdTehPo5ondzfqc9QlyB3Kwk1DIq0CaLqfS2xU5glYGDSqKi7xfkyQnJdwu2hKRA== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.0.1" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.0-rc.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.1.tgz#20fa51946f68a7acd6ef3dd3d8d1349307f681b4" - integrity sha512-Q7GG0+XFXs7pDoa4p3r7vm8+sUh5ohwovedPNVghtX8Rm2I1sfVfJKamPr24PCAyJcFVntU1WCt/CngneES3pw== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.1.tgz#50798d3c087d0b103944b3a9e7c39a1f51db9fdc" - integrity sha512-w5SAYB0EZRbOhIFcCUXWvoGB/dWj3zyQOarbvzJ9LelgrXvvoissaaSSqq6BySjr1UigIWBCVuruAQssizmXBQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.0.1" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.0-rc.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.1.tgz#5932060d1fdf04a81e998caac959188aefdf1669" - integrity sha512-T5p0U2cWh6Jov55AiUxJYRw92L6ubFXfqL0EkaePV5AnoetVXheluhq9gQAKnwVAqtc/3Rxkr/lO047catUkjw== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.0.1" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.0-rc.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.1.tgz#1522ba1e0c488bffdc30a230ab35e225ae32d028" - integrity sha512-AacK4cy/RpzBfRYf7Jjn+TmVm72TW0jEjRoQ3TOXmlOrunRph05mQm72Ux2o8+Z1lOwxJKRz5gKSbRTfa6Tgpw== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.1.tgz#ad22895772ce65e52941dddb84d0a7d26c521d59" - integrity sha512-r1QqZCXfDd0YQnE4MkcY291H5jWFdZtGeYmwjIkn7aeOZ0PP9qsDPkWTwPwbpfmnz4DhmIdO5a1rveWz/J5ZwQ== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.0.1" - lodash "^4.17.15" + "@abp/core" "~5.3.0-rc.1" + lodash "^4.17.21" -"@abp/luxon@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.1.tgz#7930e30db60e63b486a51030c60e09b54bcb3867" - integrity sha512-cXbnyAI9Gn2bZBQuCN46UFOkzb+djA3LMgpeMlTTv0aA87PrjzT60EPQ4a9FLovESqNnblaQ9Je43QwoGH8kZA== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.0.1" - luxon "^1.24.1" + "@abp/core" "~5.3.0-rc.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.1.tgz#268ec30eef8ba72a0c8cb997e55d48a1508b2719" - integrity sha512-mqF6OizoWp6kg5pztNfF78+mbfyX3JAXDfv+ZUCvjtAqllIzyOUIqRSXULDkAcDeCC1+PluRsd+uSltIppC5hA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.1.tgz#644c46c7c942a6b9d36bc76c7132f32ad577933b" - integrity sha512-FHVqEebQS3XiYn5TMEhGaQJOAYnPqxivKpeOB0F0F2bEDGqt3OXh05KcQBOm+sDSScq3c7T7HLr9mMzlYtyHXw== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.1.tgz#acf2acfc04619c7907237238bfaeb63f2d75fb22" - integrity sha512-CPqXIaHK7Ff6i8gNhxoZ9r3te9LIEiDCUpdHNtgRVMCaLbywfkiLyirlfRIB6lxRWSw8BZ+M/azdp5uzidW8Vw== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.0.1" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.0-rc.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.1.tgz#09ca6302304de09baa5ac8c72b950515ab0d0451" - integrity sha512-6onXho8R6eiWfncONZFBn18OwgQPKIaRM73rVevpRGJTf2pylcHtCp4uHGsoqgCc+TQU7FyoKTTkg4lfvCQa0A== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.1.tgz#a3959df1de0c4640fabf508da9ccd3ed37ae2b03" - integrity sha512-ndL1uj2ce4PbGDzxh+QCIWYu+GAmW1Xwma4aJcq5zKo+xhlLJJnTe6QFGKr7wSsTVZMB7z1Pp2olvXH6an82+g== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.1.tgz#57934383004a21172bf7e08130813c08946894fb" - integrity sha512-WLCWe7iJ8krxsz8Z7E+8GDaGZuG/6PZDdqPcMIh95opi0kvcLxb+mjPXXpiXdtFzW7O09a+NaNOxorsEFxjoKw== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw== +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== abbrev@1: version "1.1.1" @@ -405,12 +404,7 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.yarnpkg.com/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha512-ChcbO5JeEQx6/Yz40YZLq3A4RIWcCmCCiRpweF5wg32/Q8CfWrwDNpcDTJ2SU+aSAewUJoCSzf/tRxhAgnZuog== - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== @@ -627,25 +621,18 @@ d@1: dependencies: es5-ext "^0.10.9" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha512-u0tosKUR1XNpXzxOOt2NInnNYayt7GQoG+OM1xPRhdkZ7ZBD4oNF8S0aKve8yvSUq/ZwTMh4WJeh80GdmrJAdQ== +datatables.net-bs5@^1.11.4: + version "1.12.0" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.12.0.tgz#8cef5579c096c5216afa423af0261acba62b4476" + integrity sha512-8SR3gI2DtcrcFy03vu9MkGtIA61UfE725HvSujOOt+M4v+n0Wf9bsIbvUe2sGDlB4gVQreB0YHNSNamc3053tQ== dependencies: - datatables.net ">=1.10.25" + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ== - dependencies: - jquery ">=1.7" - -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.5.tgz#858a69953a01e1d5b18786769802117b04b8e3c9" + integrity sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA== dependencies: jquery ">=1.7" @@ -1450,12 +1437,12 @@ jquery-mousewheel@>=3.0.6: resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha512-3FQPllaWdD+Aq55zJLGSW39+eXPDz1HhwAvrSwYi8zHQ8DVcu5IJ1HVeTiCl0BnCnrIBvfFU3zEB/DrGdcoRIQ== +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1465,17 +1452,17 @@ jquery-validation@>=1.16: dependencies: jquery "^1.7 || ^2.0 || ^3.1" -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ== +jquery-validation@^1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1": +jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2, "jquery@^1.7 || ^2.0 || ^3.1": version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1573,15 +1560,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg== +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2464,10 +2451,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.14" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.4.14.tgz#b7c7efbf6672aa56696ba68d7ac141798b961525" + integrity sha512-Dh4XqfUSpCwhRsGM5zZFbtBRHujjcaf98DjVKXEs0ER4E/Zao0OtDHZRRQqvT9xxY7RA8WsiZ6FHJbyW+BBbDw== tar@^4: version "4.4.10" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs index 2ed1a3fcb2..48d545868f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Menus/MyProjectNameMenuContributor.cs @@ -70,10 +70,10 @@ public class MyProjectNameMenuContributor : IMenuContributor { var l = context.GetLocalizer(); var accountStringLocalizer = context.GetLocalizer(); - var identityServerUrl = _configuration["AuthServer:Authority"] ?? ""; + var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; context.Menu.AddItem(new ApplicationMenuItem("Account.Manage", accountStringLocalizer["MyAccount"], - $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank").RequireAuthenticated()); + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank").RequireAuthenticated()); context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", l["Logout"], url: "~/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000).RequireAuthenticated()); return Task.CompletedTask; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index dac1ff57ce..34af3519c6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -15,9 +15,9 @@ - + - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs index 6d6adeeb64..fef72d5efe 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs @@ -173,7 +173,7 @@ public class MyProjectNameBlazorModule : AbpModule options.SaveTokens = true; options.GetClaimsFromUserInfoEndpoint = true; - options.Scope.Add("role"); + options.Scope.Add("roles"); options.Scope.Add("email"); options.Scope.Add("phone"); options.Scope.Add("MyProjectName"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Properties/launchSettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Properties/launchSettings.json index 509a1a4681..8158750874 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Properties/launchSettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44314/", - "sslPort": 44314 + "applicationUrl": "https://localhost:44309/", + "sslPort": 44309 } }, "profiles": { @@ -19,7 +19,7 @@ "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, - "applicationUrl": "https://localhost:44314/", + "applicationUrl": "https://localhost:44309/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/appsettings.json index 4f09c3876a..fd546c79f2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44314" + "SelfUrl": "https://localhost:44309" }, "RemoteServices": { "Default": { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index b7d47de013..49176baf14 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.2" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock index ba123065d7..64fd8e6b93 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock @@ -2,52 +2,52 @@ # yarn lockfile v1 -"@abp/aspnetcore.components.server.basictheme@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-5.0.1.tgz#f9bb30d5b2563438982094d5a12279649b31016b" - integrity sha512-PJMUUUA/BMYD1rMoRjTI1PSdVk84idVYAcaxb8na3MqWT7gRTfDVRI83awZg1pB56CESHCPEOmhEHZYQfTmzhg== - dependencies: - "@abp/aspnetcore.components.server.theming" "~5.0.1" - -"@abp/aspnetcore.components.server.theming@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-5.0.1.tgz#cc9d7234340e9c0f6459b9fd1f0ef63410990357" - integrity sha512-9eR4gwsilvN7S4Igb5Cm+Zwrp+RaP+5flbD9wUf0JA/LHb0W1SGm97XVS/E0UFvEWRsk4GKjb9hR9+gvTGVarQ== - dependencies: - "@abp/bootstrap" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.1.tgz#884a4bc9ea043654891be56cd7e7c7bbf9bbad8c" - integrity sha512-JGTQyg3Zyfda84yg/Geq6rGuBN2SX4gIOaFL2h8BX9bA8CVuBC+zcwfO1bBsP89xfTyPvdSAGBvSfhCjPwsukQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.1.tgz#77a4900424603e0be048f3507aa852701f3139a2" - integrity sha512-mn9HEOHBkmBr7d/VUt0bfg9K58IyRDb7j3ZiDoHo263WLXJkf0+C7MEbv/zxfDHW4NeztsNCd3ugA7PdTxPzmA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.1" - "@abp/bootstrap" "~5.0.1" - "@abp/bootstrap-datepicker" "~5.0.1" - "@abp/datatables.net-bs5" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - "@abp/jquery-form" "~5.0.1" - "@abp/jquery-validation-unobtrusive" "~5.0.1" - "@abp/lodash" "~5.0.1" - "@abp/luxon" "~5.0.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.1" - "@abp/select2" "~5.0.1" - "@abp/sweetalert2" "~5.0.1" - "@abp/timeago" "~5.0.1" - "@abp/toastr" "~5.0.1" - -"@abp/aspnetcore.mvc.ui@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.1.tgz#f5aa4e0dcc10878f590e30836887f3f9861e91e3" - integrity sha512-bN15UcNhTqeo0RXlIYws7Jd8ZfSBsVM6Y5wiAqbq1Q3Lvs1uLmryhZpn6sHmKw2Z3Lnhec7VjnZN0FwNpzEqUw== +"@abp/aspnetcore.components.server.basictheme@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-5.3.0-rc.1.tgz#8fa1db4fbe2a9ac58db3fefd25e1b60cdb9fa0d5" + integrity sha512-92kD2PPtvyaeNEvSQRAVRj/BEetitRwbuYqM9PHdaLXeNdnGo/C6JGej9sc488KKxdRq2uaVrMY2xlDUEYc9vw== + dependencies: + "@abp/aspnetcore.components.server.theming" "~5.3.0-rc.1" + +"@abp/aspnetcore.components.server.theming@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-5.3.0-rc.1.tgz#654dc4f4ba7f37b12e900fbeaf5c8ac57cb192ec" + integrity sha512-csXYJGwcwLv6/75euEi5g6HUxAG/Q47ZtQfema5HL7TV/zz+8T1Z4uuUy+NTyuK7MQpRaO0QBTvn4n4FVnmE0w== + dependencies: + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -56,152 +56,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.1.tgz#52116a154e343d84c87257ad1ef10b54012f4c33" - integrity sha512-ZJWaZKzGzshBAfyBqaUScfWqeBVfWGbZIwIplF8VKtDGcyI8R54bqDsydhS88CCnolRz4+tfq3QY6yAXrUEKAw== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.1.tgz#d542a8fd7151e22eda1643e313a67f9892c50533" - integrity sha512-wyVAp6a4OIwlqK7AZozs7wpsBZgzG55EKeChBBfUXloJPuirQHxccFNE41aAYWfKur+wj25WD5NBnzFuKyNYiQ== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.0.1" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.0-rc.1" + bootstrap "^5.1.3" -"@abp/core@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.1.tgz#904fa2c22bcbf42deb56abf772c3a53362807a2f" - integrity sha512-QzX35Oa+Vncu2OP1tXvGjAVFznmD1tZRn4tlDQgn36B2MU06UEO0JSx7JVedPvhzQZceUe5+WWMfuYNM2xeBTw== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.0.1" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.0.1.tgz#b8afa2255e374c86c50e57bd57c2b36a86d6a890" - integrity sha512-1fuCk+K4xW3XnDFo2+kPXHMoOTol4HLRcWVRELjoBQ5YbTxEPsbrhfNUeUsECDAmkxoqY7G3MEdtIVwmy5NPpg== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.0.1" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.0-rc.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.1.tgz#0ce5bdf7aa5bf224b93a22758a016c50562d6569" - integrity sha512-x9D2YNtnOJRrKXi2Pwrqzz9sIOrn3o6x2c8ZxjyC54vh+SLQtLycAzQw7OyaZGdbFkudlJiCuME/FiuZvht8Og== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.0.1" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.0-rc.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.1.tgz#661753403499925661f880c53214841dd34f5210" - integrity sha512-C+alReNvHZzST55ITBTyFqhdTehPo5ondzfqc9QlyB3Kwk1DIq0CaLqfS2xU5glYGDSqKi7xfkyQnJdwu2hKRA== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.0.1" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.0-rc.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.1.tgz#20fa51946f68a7acd6ef3dd3d8d1349307f681b4" - integrity sha512-Q7GG0+XFXs7pDoa4p3r7vm8+sUh5ohwovedPNVghtX8Rm2I1sfVfJKamPr24PCAyJcFVntU1WCt/CngneES3pw== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.1.tgz#50798d3c087d0b103944b3a9e7c39a1f51db9fdc" - integrity sha512-w5SAYB0EZRbOhIFcCUXWvoGB/dWj3zyQOarbvzJ9LelgrXvvoissaaSSqq6BySjr1UigIWBCVuruAQssizmXBQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.0.1" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.0-rc.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.1.tgz#5932060d1fdf04a81e998caac959188aefdf1669" - integrity sha512-T5p0U2cWh6Jov55AiUxJYRw92L6ubFXfqL0EkaePV5AnoetVXheluhq9gQAKnwVAqtc/3Rxkr/lO047catUkjw== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.0.1" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.0-rc.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.1.tgz#1522ba1e0c488bffdc30a230ab35e225ae32d028" - integrity sha512-AacK4cy/RpzBfRYf7Jjn+TmVm72TW0jEjRoQ3TOXmlOrunRph05mQm72Ux2o8+Z1lOwxJKRz5gKSbRTfa6Tgpw== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.1.tgz#ad22895772ce65e52941dddb84d0a7d26c521d59" - integrity sha512-r1QqZCXfDd0YQnE4MkcY291H5jWFdZtGeYmwjIkn7aeOZ0PP9qsDPkWTwPwbpfmnz4DhmIdO5a1rveWz/J5ZwQ== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.0.1" - lodash "^4.17.15" + "@abp/core" "~5.3.0-rc.1" + lodash "^4.17.21" -"@abp/luxon@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.1.tgz#7930e30db60e63b486a51030c60e09b54bcb3867" - integrity sha512-cXbnyAI9Gn2bZBQuCN46UFOkzb+djA3LMgpeMlTTv0aA87PrjzT60EPQ4a9FLovESqNnblaQ9Je43QwoGH8kZA== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.0.1" - luxon "^1.24.1" + "@abp/core" "~5.3.0-rc.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.1.tgz#268ec30eef8ba72a0c8cb997e55d48a1508b2719" - integrity sha512-mqF6OizoWp6kg5pztNfF78+mbfyX3JAXDfv+ZUCvjtAqllIzyOUIqRSXULDkAcDeCC1+PluRsd+uSltIppC5hA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.1.tgz#644c46c7c942a6b9d36bc76c7132f32ad577933b" - integrity sha512-FHVqEebQS3XiYn5TMEhGaQJOAYnPqxivKpeOB0F0F2bEDGqt3OXh05KcQBOm+sDSScq3c7T7HLr9mMzlYtyHXw== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.1.tgz#acf2acfc04619c7907237238bfaeb63f2d75fb22" - integrity sha512-CPqXIaHK7Ff6i8gNhxoZ9r3te9LIEiDCUpdHNtgRVMCaLbywfkiLyirlfRIB6lxRWSw8BZ+M/azdp5uzidW8Vw== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.0.1" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.0-rc.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.1.tgz#09ca6302304de09baa5ac8c72b950515ab0d0451" - integrity sha512-6onXho8R6eiWfncONZFBn18OwgQPKIaRM73rVevpRGJTf2pylcHtCp4uHGsoqgCc+TQU7FyoKTTkg4lfvCQa0A== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.1.tgz#a3959df1de0c4640fabf508da9ccd3ed37ae2b03" - integrity sha512-ndL1uj2ce4PbGDzxh+QCIWYu+GAmW1Xwma4aJcq5zKo+xhlLJJnTe6QFGKr7wSsTVZMB7z1Pp2olvXH6an82+g== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.1.tgz#57934383004a21172bf7e08130813c08946894fb" - integrity sha512-WLCWe7iJ8krxsz8Z7E+8GDaGZuG/6PZDdqPcMIh95opi0kvcLxb+mjPXXpiXdtFzW7O09a+NaNOxorsEFxjoKw== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw== +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== abbrev@1: version "1.1.1" @@ -406,12 +405,7 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.yarnpkg.com/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha512-ChcbO5JeEQx6/Yz40YZLq3A4RIWcCmCCiRpweF5wg32/Q8CfWrwDNpcDTJ2SU+aSAewUJoCSzf/tRxhAgnZuog== - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== @@ -618,25 +612,18 @@ d@1: dependencies: es5-ext "^0.10.9" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha512-u0tosKUR1XNpXzxOOt2NInnNYayt7GQoG+OM1xPRhdkZ7ZBD4oNF8S0aKve8yvSUq/ZwTMh4WJeh80GdmrJAdQ== +datatables.net-bs5@^1.11.4: + version "1.12.0" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.12.0.tgz#8cef5579c096c5216afa423af0261acba62b4476" + integrity sha512-8SR3gI2DtcrcFy03vu9MkGtIA61UfE725HvSujOOt+M4v+n0Wf9bsIbvUe2sGDlB4gVQreB0YHNSNamc3053tQ== dependencies: - datatables.net ">=1.10.25" + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ== - dependencies: - jquery ">=1.7" - -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.5.tgz#858a69953a01e1d5b18786769802117b04b8e3c9" + integrity sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA== dependencies: jquery ">=1.7" @@ -1390,12 +1377,12 @@ jquery-mousewheel@>=3.0.6: version "3.1.13" resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha512-3FQPllaWdD+Aq55zJLGSW39+eXPDz1HhwAvrSwYi8zHQ8DVcu5IJ1HVeTiCl0BnCnrIBvfFU3zEB/DrGdcoRIQ== +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1404,12 +1391,12 @@ jquery-validation@>=1.16: dependencies: jquery "^1.7 || ^2.0 || ^3.1" -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ== +jquery-validation@^1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1": +jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, "jquery@^1.7 || ^2.0 || ^3.1": version "3.3.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" @@ -1418,7 +1405,7 @@ jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2. resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1512,15 +1499,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg== +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2371,10 +2358,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.14" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.4.14.tgz#b7c7efbf6672aa56696ba68d7ac141798b961525" + integrity sha512-Dh4XqfUSpCwhRsGM5zZFbtBRHujjcaf98DjVKXEs0ER4E/Zao0OtDHZRRQqvT9xxY7RA8WsiZ6FHJbyW+BBbDw== tar@^4: version "4.4.10" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index cfcbea04d4..e1295a33c7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -15,7 +15,7 @@ - + @@ -29,7 +29,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs index 39c3601722..a01ea41953 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Net.Http; using Blazorise.Bootstrap5; using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Builder; @@ -53,7 +52,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server; typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), typeof(AbpAspNetCoreComponentsServerBasicThemeModule), typeof(AbpIdentityBlazorServerModule), typeof(AbpTenantManagementBlazorServerModule), @@ -74,6 +73,23 @@ public class MyProjectNameBlazorModule : AbpModule typeof(MyProjectNameBlazorModule).Assembly ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -275,7 +291,6 @@ public class MyProjectNameBlazorModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); app.UseAbpSwaggerUI(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json index b4be64ba09..77aa2a99bf 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44313/", - "sslPort": 44313 + "applicationUrl": "https://localhost:44308/", + "sslPort": 44308 } }, "profiles": { @@ -19,7 +19,7 @@ "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, - "applicationUrl": "https://localhost:44313/", + "applicationUrl": "https://localhost:44308/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json index fa0901f6cc..ba3761f8ae 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/appsettings.json @@ -1,13 +1,13 @@ { "App": { - "SelfUrl": "https://localhost:44313", - "RedirectAllowedUrls": "https://localhost:44313" + "SelfUrl": "https://localhost:44308", + "RedirectAllowedUrls": "https://localhost:44308" }, "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" }, "AuthServer": { - "Authority": "https://localhost:44313", + "Authority": "https://localhost:44308", "RequireHttpsMetadata": "false" }, "StringEncryption": { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index b7d47de013..49176baf14 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.2" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock index ba123065d7..64fd8e6b93 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock @@ -2,52 +2,52 @@ # yarn lockfile v1 -"@abp/aspnetcore.components.server.basictheme@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-5.0.1.tgz#f9bb30d5b2563438982094d5a12279649b31016b" - integrity sha512-PJMUUUA/BMYD1rMoRjTI1PSdVk84idVYAcaxb8na3MqWT7gRTfDVRI83awZg1pB56CESHCPEOmhEHZYQfTmzhg== - dependencies: - "@abp/aspnetcore.components.server.theming" "~5.0.1" - -"@abp/aspnetcore.components.server.theming@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-5.0.1.tgz#cc9d7234340e9c0f6459b9fd1f0ef63410990357" - integrity sha512-9eR4gwsilvN7S4Igb5Cm+Zwrp+RaP+5flbD9wUf0JA/LHb0W1SGm97XVS/E0UFvEWRsk4GKjb9hR9+gvTGVarQ== - dependencies: - "@abp/bootstrap" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.1.tgz#884a4bc9ea043654891be56cd7e7c7bbf9bbad8c" - integrity sha512-JGTQyg3Zyfda84yg/Geq6rGuBN2SX4gIOaFL2h8BX9bA8CVuBC+zcwfO1bBsP89xfTyPvdSAGBvSfhCjPwsukQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.1.tgz#77a4900424603e0be048f3507aa852701f3139a2" - integrity sha512-mn9HEOHBkmBr7d/VUt0bfg9K58IyRDb7j3ZiDoHo263WLXJkf0+C7MEbv/zxfDHW4NeztsNCd3ugA7PdTxPzmA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.1" - "@abp/bootstrap" "~5.0.1" - "@abp/bootstrap-datepicker" "~5.0.1" - "@abp/datatables.net-bs5" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - "@abp/jquery-form" "~5.0.1" - "@abp/jquery-validation-unobtrusive" "~5.0.1" - "@abp/lodash" "~5.0.1" - "@abp/luxon" "~5.0.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.1" - "@abp/select2" "~5.0.1" - "@abp/sweetalert2" "~5.0.1" - "@abp/timeago" "~5.0.1" - "@abp/toastr" "~5.0.1" - -"@abp/aspnetcore.mvc.ui@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.1.tgz#f5aa4e0dcc10878f590e30836887f3f9861e91e3" - integrity sha512-bN15UcNhTqeo0RXlIYws7Jd8ZfSBsVM6Y5wiAqbq1Q3Lvs1uLmryhZpn6sHmKw2Z3Lnhec7VjnZN0FwNpzEqUw== +"@abp/aspnetcore.components.server.basictheme@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-5.3.0-rc.1.tgz#8fa1db4fbe2a9ac58db3fefd25e1b60cdb9fa0d5" + integrity sha512-92kD2PPtvyaeNEvSQRAVRj/BEetitRwbuYqM9PHdaLXeNdnGo/C6JGej9sc488KKxdRq2uaVrMY2xlDUEYc9vw== + dependencies: + "@abp/aspnetcore.components.server.theming" "~5.3.0-rc.1" + +"@abp/aspnetcore.components.server.theming@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-5.3.0-rc.1.tgz#654dc4f4ba7f37b12e900fbeaf5c8ac57cb192ec" + integrity sha512-csXYJGwcwLv6/75euEi5g6HUxAG/Q47ZtQfema5HL7TV/zz+8T1Z4uuUy+NTyuK7MQpRaO0QBTvn4n4FVnmE0w== + dependencies: + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -56,152 +56,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.1.tgz#52116a154e343d84c87257ad1ef10b54012f4c33" - integrity sha512-ZJWaZKzGzshBAfyBqaUScfWqeBVfWGbZIwIplF8VKtDGcyI8R54bqDsydhS88CCnolRz4+tfq3QY6yAXrUEKAw== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.1.tgz#d542a8fd7151e22eda1643e313a67f9892c50533" - integrity sha512-wyVAp6a4OIwlqK7AZozs7wpsBZgzG55EKeChBBfUXloJPuirQHxccFNE41aAYWfKur+wj25WD5NBnzFuKyNYiQ== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.0.1" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.0-rc.1" + bootstrap "^5.1.3" -"@abp/core@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.1.tgz#904fa2c22bcbf42deb56abf772c3a53362807a2f" - integrity sha512-QzX35Oa+Vncu2OP1tXvGjAVFznmD1tZRn4tlDQgn36B2MU06UEO0JSx7JVedPvhzQZceUe5+WWMfuYNM2xeBTw== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.0.1" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.0.1.tgz#b8afa2255e374c86c50e57bd57c2b36a86d6a890" - integrity sha512-1fuCk+K4xW3XnDFo2+kPXHMoOTol4HLRcWVRELjoBQ5YbTxEPsbrhfNUeUsECDAmkxoqY7G3MEdtIVwmy5NPpg== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.0.1" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.0-rc.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.1.tgz#0ce5bdf7aa5bf224b93a22758a016c50562d6569" - integrity sha512-x9D2YNtnOJRrKXi2Pwrqzz9sIOrn3o6x2c8ZxjyC54vh+SLQtLycAzQw7OyaZGdbFkudlJiCuME/FiuZvht8Og== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.0.1" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.0-rc.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.1.tgz#661753403499925661f880c53214841dd34f5210" - integrity sha512-C+alReNvHZzST55ITBTyFqhdTehPo5ondzfqc9QlyB3Kwk1DIq0CaLqfS2xU5glYGDSqKi7xfkyQnJdwu2hKRA== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.0.1" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.0-rc.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.1.tgz#20fa51946f68a7acd6ef3dd3d8d1349307f681b4" - integrity sha512-Q7GG0+XFXs7pDoa4p3r7vm8+sUh5ohwovedPNVghtX8Rm2I1sfVfJKamPr24PCAyJcFVntU1WCt/CngneES3pw== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.1.tgz#50798d3c087d0b103944b3a9e7c39a1f51db9fdc" - integrity sha512-w5SAYB0EZRbOhIFcCUXWvoGB/dWj3zyQOarbvzJ9LelgrXvvoissaaSSqq6BySjr1UigIWBCVuruAQssizmXBQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.0.1" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.0-rc.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.1.tgz#5932060d1fdf04a81e998caac959188aefdf1669" - integrity sha512-T5p0U2cWh6Jov55AiUxJYRw92L6ubFXfqL0EkaePV5AnoetVXheluhq9gQAKnwVAqtc/3Rxkr/lO047catUkjw== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.0.1" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.0-rc.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.1.tgz#1522ba1e0c488bffdc30a230ab35e225ae32d028" - integrity sha512-AacK4cy/RpzBfRYf7Jjn+TmVm72TW0jEjRoQ3TOXmlOrunRph05mQm72Ux2o8+Z1lOwxJKRz5gKSbRTfa6Tgpw== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.1.tgz#ad22895772ce65e52941dddb84d0a7d26c521d59" - integrity sha512-r1QqZCXfDd0YQnE4MkcY291H5jWFdZtGeYmwjIkn7aeOZ0PP9qsDPkWTwPwbpfmnz4DhmIdO5a1rveWz/J5ZwQ== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.0.1" - lodash "^4.17.15" + "@abp/core" "~5.3.0-rc.1" + lodash "^4.17.21" -"@abp/luxon@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.1.tgz#7930e30db60e63b486a51030c60e09b54bcb3867" - integrity sha512-cXbnyAI9Gn2bZBQuCN46UFOkzb+djA3LMgpeMlTTv0aA87PrjzT60EPQ4a9FLovESqNnblaQ9Je43QwoGH8kZA== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.0.1" - luxon "^1.24.1" + "@abp/core" "~5.3.0-rc.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.1.tgz#268ec30eef8ba72a0c8cb997e55d48a1508b2719" - integrity sha512-mqF6OizoWp6kg5pztNfF78+mbfyX3JAXDfv+ZUCvjtAqllIzyOUIqRSXULDkAcDeCC1+PluRsd+uSltIppC5hA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.1.tgz#644c46c7c942a6b9d36bc76c7132f32ad577933b" - integrity sha512-FHVqEebQS3XiYn5TMEhGaQJOAYnPqxivKpeOB0F0F2bEDGqt3OXh05KcQBOm+sDSScq3c7T7HLr9mMzlYtyHXw== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.1.tgz#acf2acfc04619c7907237238bfaeb63f2d75fb22" - integrity sha512-CPqXIaHK7Ff6i8gNhxoZ9r3te9LIEiDCUpdHNtgRVMCaLbywfkiLyirlfRIB6lxRWSw8BZ+M/azdp5uzidW8Vw== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.0.1" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.0-rc.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.1.tgz#09ca6302304de09baa5ac8c72b950515ab0d0451" - integrity sha512-6onXho8R6eiWfncONZFBn18OwgQPKIaRM73rVevpRGJTf2pylcHtCp4uHGsoqgCc+TQU7FyoKTTkg4lfvCQa0A== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.1.tgz#a3959df1de0c4640fabf508da9ccd3ed37ae2b03" - integrity sha512-ndL1uj2ce4PbGDzxh+QCIWYu+GAmW1Xwma4aJcq5zKo+xhlLJJnTe6QFGKr7wSsTVZMB7z1Pp2olvXH6an82+g== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.1.tgz#57934383004a21172bf7e08130813c08946894fb" - integrity sha512-WLCWe7iJ8krxsz8Z7E+8GDaGZuG/6PZDdqPcMIh95opi0kvcLxb+mjPXXpiXdtFzW7O09a+NaNOxorsEFxjoKw== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw== +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== abbrev@1: version "1.1.1" @@ -406,12 +405,7 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.yarnpkg.com/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha512-ChcbO5JeEQx6/Yz40YZLq3A4RIWcCmCCiRpweF5wg32/Q8CfWrwDNpcDTJ2SU+aSAewUJoCSzf/tRxhAgnZuog== - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== @@ -618,25 +612,18 @@ d@1: dependencies: es5-ext "^0.10.9" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha512-u0tosKUR1XNpXzxOOt2NInnNYayt7GQoG+OM1xPRhdkZ7ZBD4oNF8S0aKve8yvSUq/ZwTMh4WJeh80GdmrJAdQ== +datatables.net-bs5@^1.11.4: + version "1.12.0" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.12.0.tgz#8cef5579c096c5216afa423af0261acba62b4476" + integrity sha512-8SR3gI2DtcrcFy03vu9MkGtIA61UfE725HvSujOOt+M4v+n0Wf9bsIbvUe2sGDlB4gVQreB0YHNSNamc3053tQ== dependencies: - datatables.net ">=1.10.25" + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ== - dependencies: - jquery ">=1.7" - -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.5.tgz#858a69953a01e1d5b18786769802117b04b8e3c9" + integrity sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA== dependencies: jquery ">=1.7" @@ -1390,12 +1377,12 @@ jquery-mousewheel@>=3.0.6: version "3.1.13" resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha512-3FQPllaWdD+Aq55zJLGSW39+eXPDz1HhwAvrSwYi8zHQ8DVcu5IJ1HVeTiCl0BnCnrIBvfFU3zEB/DrGdcoRIQ== +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1404,12 +1391,12 @@ jquery-validation@>=1.16: dependencies: jquery "^1.7 || ^2.0 || ^3.1" -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ== +jquery-validation@^1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1": +jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, "jquery@^1.7 || ^2.0 || ^3.1": version "3.3.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" @@ -1418,7 +1405,7 @@ jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2. resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1512,15 +1499,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg== +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2371,10 +2358,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.14" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.4.14.tgz#b7c7efbf6672aa56696ba68d7ac141798b961525" + integrity sha512-Dh4XqfUSpCwhRsGM5zZFbtBRHujjcaf98DjVKXEs0ER4E/Zao0OtDHZRRQqvT9xxY7RA8WsiZ6FHJbyW+BBbDw== tar@^4: version "4.4.10" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs index b4db763405..6294f879d0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Menus/MyProjectNameMenuContributor.cs @@ -52,12 +52,12 @@ public class MyProjectNameMenuContributor : IMenuContributor { var accountStringLocalizer = context.GetLocalizer(); - var identityServerUrl = _configuration["AuthServer:Authority"] ?? ""; + var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; context.Menu.AddItem(new ApplicationMenuItem( "Account.Manage", accountStringLocalizer["MyAccount"], - $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null).RequireAuthenticated()); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 4b76b91ccd..46c90ad4c7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs index 11e4dc97d5..c970430580 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MyCompanyName.MyProjectName.Blazor.Menus; +using OpenIddict.Abstractions; using Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic; using Volo.Abp.AspNetCore.Components.Web.Theming.Routing; using Volo.Abp.Autofac.WebAssembly; @@ -15,6 +16,7 @@ using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme; using Volo.Abp.Identity.Blazor.WebAssembly; +using Volo.Abp.Security.Claims; using Volo.Abp.SettingManagement.Blazor.WebAssembly; using Volo.Abp.TenantManagement.Blazor.WebAssembly; @@ -72,9 +74,11 @@ public class MyProjectNameBlazorModule : AbpModule builder.Services.AddOidcAuthentication(options => { builder.Configuration.Bind("AuthServer", options.ProviderOptions); - options.UserOptions.RoleClaim = JwtClaimTypes.Role; + options.UserOptions.NameClaim = OpenIddictConstants.Claims.Name; + options.UserOptions.RoleClaim = OpenIddictConstants.Claims.Role; + options.ProviderOptions.DefaultScopes.Add("MyProjectName"); - options.ProviderOptions.DefaultScopes.Add("role"); + options.ProviderOptions.DefaultScopes.Add("roles"); options.ProviderOptions.DefaultScopes.Add("email"); options.ProviderOptions.DefaultScopes.Add("phone"); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index 7ee3d93b80..77892c5cc5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -17,10 +17,11 @@ - + - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json index 7bd454bab3..3d7dc2a8be 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json @@ -2,30 +2,28 @@ "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True" }, - "IdentityServer": { - "Clients": { + "OpenIddict": { + "Applications": { "MyProjectName_Web": { "ClientId": "MyProjectName_Web", "ClientSecret": "1q2w3e*", "RootUrl": "https://localhost:44302" }, - "MyProjectName_App": { - "ClientId": "MyProjectName_App", - "ClientSecret": "1q2w3e*", - "RootUrl": "http://localhost:4200" - }, "MyProjectName_Blazor": { "ClientId": "MyProjectName_Blazor", "RootUrl": "https://localhost:44307" }, + "MyProjectName_App": { + "ClientId": "MyProjectName_App", + "RootUrl": "http://localhost:4200" + }, "MyProjectName_BlazorServerTiered": { "ClientId": "MyProjectName_BlazorServerTiered", "ClientSecret": "1q2w3e*", - "RootUrl": "https://localhost:44314" + "RootUrl": "https://localhost:44309" }, "MyProjectName_Swagger": { "ClientId": "MyProjectName_Swagger", - "ClientSecret": "1q2w3e*", "RootUrl": "https://localhost:44305" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/tempkey.rsa b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/tempkey.rsa deleted file mode 100644 index 494c2013e3..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/tempkey.rsa +++ /dev/null @@ -1,13 +0,0 @@ -{ - "KeyId": "f788zGVUZh9H-HbWL1S-Mg", - "Parameters": { - "D": "F19hbC5PLO872DszGiJnVoU55ee7XGXmNf0KEKndJ/uGBv5lWklXA0QF80h1ytWXde0jV5isQPB1t7mPhRQlDoDTkywLi1CeOgBPbxzHEfLjZZ5c4olfeX0IJX9BDqgUntY0H1a/+Om/eDu4OZUz3EIJFFZBgz46YZSyTT6ZDvAEdpC/o66sNJmxvJIp+8zVoVDSqBUzxmc+oEamXLg7r2jdymxJMxau1kQFxEGLOrJnNxGsEe8UrYA3qSsm8m/Xg4uOh7RYgnuEEt88+KTvRq+CAMWhN3YNLtOJ3NmXowwE7e1Ma+jih9+UVfxZn14P5+SOJbQ2bYV2sCV+2vBiCQ==", - "DP": "oPiGO/qdOQfFEAS9fMInQnsrNylIZVpDYEVoDJ6/jQfE/IpuwxGcmsaGvCob3SKxZiJRLCWpwJYo1hCh/JOSVGWMkVyELky56nbbkkV5ymKLSGZ4JoetdQs+GchnPdR+k2P9Ij1Kjk13ylubN3htzNhcBASJpOfSEv5pPVzGKX0=", - "DQ": "z6imxLABHkyftbfUUtpeOlPanEHgpuIjmUdp3T1Ju1jziE63UEhuj0GPAXOF17uYxixwYE8JhOJ7+TyIK9oZeI3zH2OzJqQh8f5PCQ/E+0ULXZDeNV/ShDLCTufu3Fis9Rt64uTp/H/l21oMQ79jc0ysa8DTz1ReJLRc5qjL41U=", - "Exponent": "AQAB", - "InverseQ": "ieZcvSt5XYukKJKhXpv5Dm/1RD7iH88cZnhLSTEVTMoOUHoYWmApY5pNLGahbfjA9bxnkBWDYex/i7wE9uNNY5CsA6ovUaQLVJDt3kHvR9W+9QtN8D6jjG2TuRbbOdEg4RqhfjUaDfDIgTJX2Wxc8U98FOvOyGw1HzwUPFZKecM=", - "Modulus": "vk4z1Bmtmbo+gxITcY+FIlXzcO2wTOGlOXK5GMYj/6PUMFt7lbqkc72AkPsrAo5/JE8LYLhWj7fzSKbjvtowHCz5m2t+FlUYmuiKpvvnJsTqvQrckNlbZ1nm071q5PhP3Dar/OksfBhPtAX+c3+NjDnM/w53ccJJNaBDO/s9JYoN7vH5n6ed1pMSK71hmg4MPsxChcnc1f1PpnG2mqyJ253+GEUbj/kRyeBSmCCr9aadov2ZzxIKVaFNagJEHOzanQmorSLpP25GfOHCuy27Zkef94V/qU9elzjbH4uIKslVGx5T6H99TYh0sUGu11NytYJa5WNAZWow95CzurC2vw==", - "P": "4GMCQy+XTNzR5TsgFcdAZv2K6TcQR13fHVvPoxQp/b32V5YUJOBFEUAtqociy5ro4+KzpXP5WPSk1ZtznGKuNZyLq8gTnhpB3rwd0sdo4zxKnQ5nu+n1UhlhWNxg5A9V5TaciUAyPrHWJfLoYTQWygNTgJELQH5zZXi2ihC2uiU=", - "Q": "2R36pamnLAJggkPJxiW5qH6HizZ+bkQVg0BBftMLzkAM8Y9CwTW75GRUzGEJFpMckkw0GZSYb1Uwl3DVUpkcQ8LZ91IPYdPpDlYUshhIxl184M55pnO14besKxJtMZ64zhHKVAR2pBMO0n6W4/1iBXkkQqyPViJxdfvXPJMBbhM=" - } -} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index 8942c83134..112c33a01e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -10,13 +10,13 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs index 9d3f467583..8c71be1006 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyProjectNameDomainSharedModule.cs @@ -3,10 +3,10 @@ using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; -using Volo.Abp.IdentityServer; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict; using Volo.Abp.PermissionManagement; using Volo.Abp.SettingManagement; using Volo.Abp.TenantManagement; @@ -20,10 +20,10 @@ namespace MyCompanyName.MyProjectName; typeof(AbpBackgroundJobsDomainSharedModule), typeof(AbpFeatureManagementDomainSharedModule), typeof(AbpIdentityDomainSharedModule), - typeof(AbpIdentityServerDomainSharedModule), + typeof(AbpOpenIddictDomainSharedModule), typeof(AbpPermissionManagementDomainSharedModule), typeof(AbpSettingManagementDomainSharedModule), - typeof(AbpTenantManagementDomainSharedModule) + typeof(AbpTenantManagementDomainSharedModule) )] public class MyProjectNameDomainSharedModule : AbpModule { diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs deleted file mode 100644 index da0b56a6d0..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs +++ /dev/null @@ -1,353 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using IdentityServer4.Models; -using Microsoft.Extensions.Configuration; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.IdentityServer.ApiResources; -using Volo.Abp.IdentityServer.ApiScopes; -using Volo.Abp.IdentityServer.Clients; -using Volo.Abp.IdentityServer.IdentityResources; -using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -using Volo.Abp.Uow; -using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; -using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; -using Client = Volo.Abp.IdentityServer.Clients.Client; - -namespace MyCompanyName.MyProjectName.IdentityServer; - -public class IdentityServerDataSeedContributor : IDataSeedContributor, ITransientDependency -{ - private readonly IApiResourceRepository _apiResourceRepository; - private readonly IApiScopeRepository _apiScopeRepository; - private readonly IClientRepository _clientRepository; - private readonly IIdentityResourceDataSeeder _identityResourceDataSeeder; - private readonly IGuidGenerator _guidGenerator; - private readonly IPermissionDataSeeder _permissionDataSeeder; - private readonly IConfiguration _configuration; - private readonly ICurrentTenant _currentTenant; - - public IdentityServerDataSeedContributor( - IClientRepository clientRepository, - IApiResourceRepository apiResourceRepository, - IApiScopeRepository apiScopeRepository, - IIdentityResourceDataSeeder identityResourceDataSeeder, - IGuidGenerator guidGenerator, - IPermissionDataSeeder permissionDataSeeder, - IConfiguration configuration, - ICurrentTenant currentTenant) - { - _clientRepository = clientRepository; - _apiResourceRepository = apiResourceRepository; - _apiScopeRepository = apiScopeRepository; - _identityResourceDataSeeder = identityResourceDataSeeder; - _guidGenerator = guidGenerator; - _permissionDataSeeder = permissionDataSeeder; - _configuration = configuration; - _currentTenant = currentTenant; - } - - [UnitOfWork] - public virtual async Task SeedAsync(DataSeedContext context) - { - using (_currentTenant.Change(context?.TenantId)) - { - await _identityResourceDataSeeder.CreateStandardResourcesAsync(); - await CreateApiResourcesAsync(); - await CreateApiScopesAsync(); - await CreateClientsAsync(); - } - } - - private async Task CreateApiScopesAsync() - { - await CreateApiScopeAsync("MyProjectName"); - } - - private async Task CreateApiResourcesAsync() - { - var commonApiUserClaims = new[] - { - "email", - "email_verified", - "name", - "phone_number", - "phone_number_verified", - "role" - }; - - await CreateApiResourceAsync("MyProjectName", commonApiUserClaims); - } - - private async Task CreateApiResourceAsync(string name, IEnumerable claims) - { - var apiResource = await _apiResourceRepository.FindByNameAsync(name); - if (apiResource == null) - { - apiResource = await _apiResourceRepository.InsertAsync( - new ApiResource( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - foreach (var claim in claims) - { - if (apiResource.FindClaim(claim) == null) - { - apiResource.AddUserClaim(claim); - } - } - - return await _apiResourceRepository.UpdateAsync(apiResource); - } - - private async Task CreateApiScopeAsync(string name) - { - var apiScope = await _apiScopeRepository.FindByNameAsync(name); - if (apiScope == null) - { - apiScope = await _apiScopeRepository.InsertAsync( - new ApiScope( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - return apiScope; - } - - private async Task CreateClientsAsync() - { - var commonScopes = new[] - { - "email", - "openid", - "profile", - "role", - "phone", - "address", - "MyProjectName" - }; - - var configurationSection = _configuration.GetSection("IdentityServer:Clients"); - - // - - //Web Client - var webClientId = configurationSection["MyProjectName_Web:ClientId"]; - if (!webClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_Web:RootUrl"].EnsureEndsWith('/'); - - await CreateClientAsync( - name: webClientId, - scopes: commonScopes, - grantTypes: new[] { "hybrid" }, - secret: (configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*").Sha256(), - redirectUri: $"{webClientRootUrl}signin-oidc", - postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", - frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - // - - //Console Test / Angular Client - var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; - if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); - - await CreateClientAsync( - name: consoleAndAngularClientId, - scopes: commonScopes, - grantTypes: new[] { "password", "client_credentials", "authorization_code" }, - secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), - requireClientSecret: false, - redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - // - - // Blazor Client - var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"]; - if (!blazorClientId.IsNullOrWhiteSpace()) - { - var blazorRootUrl = configurationSection["MyProjectName_Blazor:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: blazorClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Blazor:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{blazorRootUrl}/authentication/login-callback", - postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", - corsOrigins: new[] { blazorRootUrl.RemovePostFix("/") } - ); - } - - // - - // - - //Blazor Server Tiered Client - var blazorServerTieredClientId = configurationSection["MyProjectName_BlazorServerTiered:ClientId"]; - if (!blazorServerTieredClientId.IsNullOrWhiteSpace()) - { - var blazorServerTieredClientRootUrl = configurationSection["MyProjectName_BlazorServerTiered:RootUrl"].EnsureEndsWith('/'); - - /* MyProjectName_BlazorServerTiered client is only needed if you created a tiered blazor server - * solution. Otherwise, you can delete this client. */ - - await CreateClientAsync( - name: blazorServerTieredClientId, - scopes: commonScopes, - grantTypes: new[] { "hybrid" }, - secret: (configurationSection["MyProjectName_BlazorServerTiered:ClientSecret"] ?? "1q2w3e*").Sha256(), - redirectUri: $"{blazorServerTieredClientRootUrl}signin-oidc", - postLogoutRedirectUri: $"{blazorServerTieredClientRootUrl}signout-callback-oidc", - frontChannelLogoutUri: $"{blazorServerTieredClientRootUrl}Account/FrontChannelLogout", - corsOrigins: new[] { blazorServerTieredClientRootUrl.RemovePostFix("/") } - ); - } - - // - - // Swagger Client - var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; - if (!swaggerClientId.IsNullOrWhiteSpace()) - { - var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: swaggerClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } - ); - } - } - - private async Task CreateClientAsync( - string name, - IEnumerable scopes, - IEnumerable grantTypes, - string secret = null, - string redirectUri = null, - string postLogoutRedirectUri = null, - string frontChannelLogoutUri = null, - bool requireClientSecret = true, - bool requirePkce = false, - IEnumerable permissions = null, - IEnumerable corsOrigins = null) - { - var client = await _clientRepository.FindByClientIdAsync(name); - if (client == null) - { - client = await _clientRepository.InsertAsync( - new Client( - _guidGenerator.Create(), - name - ) - { - ClientName = name, - ProtocolType = "oidc", - Description = name, - AlwaysIncludeUserClaimsInIdToken = true, - AllowOfflineAccess = true, - AbsoluteRefreshTokenLifetime = 31536000, //365 days - AccessTokenLifetime = 31536000, //365 days - AuthorizationCodeLifetime = 300, - IdentityTokenLifetime = 300, - RequireConsent = false, - FrontChannelLogoutUri = frontChannelLogoutUri, - RequireClientSecret = requireClientSecret, - RequirePkce = requirePkce - }, - autoSave: true - ); - } - - foreach (var scope in scopes) - { - if (client.FindScope(scope) == null) - { - client.AddScope(scope); - } - } - - foreach (var grantType in grantTypes) - { - if (client.FindGrantType(grantType) == null) - { - client.AddGrantType(grantType); - } - } - - if (!secret.IsNullOrEmpty()) - { - if (client.FindSecret(secret) == null) - { - client.AddSecret(secret); - } - } - - if (redirectUri != null) - { - if (client.FindRedirectUri(redirectUri) == null) - { - client.AddRedirectUri(redirectUri); - } - } - - if (postLogoutRedirectUri != null) - { - if (client.FindPostLogoutRedirectUri(postLogoutRedirectUri) == null) - { - client.AddPostLogoutRedirectUri(postLogoutRedirectUri); - } - } - - if (permissions != null) - { - await _permissionDataSeeder.SeedAsync( - ClientPermissionValueProvider.ProviderName, - name, - permissions, - null - ); - } - - if (corsOrigins != null) - { - foreach (var origin in corsOrigins) - { - if (!origin.IsNullOrWhiteSpace() && client.FindCorsOrigin(origin) == null) - { - client.AddCorsOrigin(origin); - } - } - } - - return await _clientRepository.UpdateAsync(client); - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj index beadab9345..85787e9ffd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.csproj @@ -15,13 +15,13 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index 2737edd6c2..7bb1c3014b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -6,11 +6,11 @@ using Volo.Abp.BackgroundJobs; using Volo.Abp.Emailing; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; -using Volo.Abp.IdentityServer; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict; using Volo.Abp.PermissionManagement.Identity; -using Volo.Abp.PermissionManagement.IdentityServer; +using Volo.Abp.PermissionManagement.OpenIddict; using Volo.Abp.SettingManagement; using Volo.Abp.TenantManagement; @@ -22,9 +22,9 @@ namespace MyCompanyName.MyProjectName; typeof(AbpBackgroundJobsDomainModule), typeof(AbpFeatureManagementDomainModule), typeof(AbpIdentityDomainModule), + typeof(AbpOpenIddictDomainModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), typeof(AbpPermissionManagementDomainIdentityModule), - typeof(AbpIdentityServerDomainModule), - typeof(AbpPermissionManagementDomainIdentityServerModule), typeof(AbpSettingManagementDomainModule), typeof(AbpTenantManagementDomainModule), typeof(AbpEmailingModule) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs new file mode 100644 index 0000000000..125a029e1c --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/OpenIddict/OpenIddictDataSeedContributor.cs @@ -0,0 +1,374 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Localization; +using OpenIddict.Abstractions; +using Volo.Abp; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; + +namespace MyCompanyName.MyProjectName.OpenIddict; + +/* Creates initial data that is needed to property run the application + * and make client-to-server communication possible. + */ +public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IConfiguration _configuration; + private readonly IOpenIddictApplicationManager _applicationManager; + private readonly IOpenIddictScopeManager _scopeManager; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IStringLocalizer L; + + public OpenIddictDataSeedContributor( + IConfiguration configuration, + IOpenIddictApplicationManager applicationManager, + IOpenIddictScopeManager scopeManager, + IPermissionDataSeeder permissionDataSeeder, + IStringLocalizer l) + { + _configuration = configuration; + _applicationManager = applicationManager; + _scopeManager = scopeManager; + _permissionDataSeeder = permissionDataSeeder; + L = l; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + await CreateScopesAsync(); + await CreateApplicationsAsync(); + } + + private async Task CreateScopesAsync() + { + if (await _scopeManager.FindByNameAsync("MyProjectName") == null) + { + await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor + { + Name = "MyProjectName", + DisplayName = "MyProjectName API", + Resources = + { + "MyProjectName" + } + }); + } + } + + private async Task CreateApplicationsAsync() + { + var commonScopes = new List + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles, + "MyProjectName" + }; + + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + + //Web Client + var webClientId = configurationSection["MyProjectName_Web:ClientId"]; + if (!webClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_Web:RootUrl"].EnsureEndsWith('/'); + + /* MyProjectName_Web client is only needed if you created a tiered + * solution. Otherwise, you can delete this client. */ + await CreateApplicationAsync( + name: webClientId, + type: OpenIddictConstants.ClientTypes.Confidential, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Web Application", + secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*", + grantTypes: new List //Hybrid flow + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Implicit + }, + scopes: commonScopes, + redirectUri: $"{webClientRootUrl}signin-oidc", + postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc" + ); + } + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); + await CreateApplicationAsync( + name: consoleAndAngularClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Console Test / Angular Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.RefreshToken + }, + scopes: commonScopes, + redirectUri: webClientRootUrl, + postLogoutRedirectUri: webClientRootUrl + ); + } + + // Blazor Client + var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"]; + if (!blazorClientId.IsNullOrWhiteSpace()) + { + var blazorRootUrl = configurationSection["MyProjectName_Blazor:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: blazorClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Blazor Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{blazorRootUrl}/authentication/login-callback", + postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback" + ); + } + + // Blazor Server Tiered Client + var blazorServerTieredClientId = configurationSection["MyProjectName_BlazorServerTiered:ClientId"]; + if (!blazorServerTieredClientId.IsNullOrWhiteSpace()) + { + var blazorServerTieredRootUrl = configurationSection["MyProjectName_BlazorServerTiered:RootUrl"].EnsureEndsWith('/'); + + await CreateApplicationAsync( + name: blazorServerTieredClientId, + type: OpenIddictConstants.ClientTypes.Confidential, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Blazor Server Application", + secret: configurationSection["MyProjectName_BlazorServerTiered:ClientSecret"] ?? "1q2w3e*", + grantTypes: new List //Hybrid flow + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Implicit + }, + scopes: commonScopes, + redirectUri: $"{blazorServerTieredRootUrl}signin-oidc", + postLogoutRedirectUri: $"{blazorServerTieredRootUrl}signout-callback-oidc" + ); + } + + // Swagger Client + var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: swaggerClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Swagger Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + ); + } + } + + private async Task CreateApplicationAsync( + [NotNull] string name, + [NotNull] string type, + [NotNull] string consentType, + string displayName, + string secret, + List grantTypes, + List scopes, + string redirectUri = null, + string postLogoutRedirectUri = null, + List permissions = null) + { + if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); + } + + if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); + } + + if (!string.IsNullOrEmpty(name) && await _applicationManager.FindByClientIdAsync(name) != null) + { + return; + //throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]); + } + + var client = await _applicationManager.FindByClientIdAsync(name); + if (client == null) + { + var application = new OpenIddictApplicationDescriptor + { + ClientId = name, + Type = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName + }; + + Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); + Check.NotNullOrEmpty(scopes, nameof(scopes)); + + if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); + + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken); + } + } + + if (!redirectUri.IsNullOrWhiteSpace() || !postLogoutRedirectUri.IsNullOrWhiteSpace()) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); + } + + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + } + + var buildInScopes = new [] + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles + }; + + foreach (var scope in scopes) + { + if (buildInScopes.Contains(scope)) + { + application.Permissions.Add(scope); + } + else + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); + } + } + + if (redirectUri != null) + { + if (!redirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidRedirectUri", redirectUri]); + } + + if (application.RedirectUris.All(x => x != uri)) + { + application.RedirectUris.Add(uri); + } + } + } + + if (postLogoutRedirectUri != null) + { + if (!postLogoutRedirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); + } + + if (application.PostLogoutRedirectUris.All(x => x != uri)) + { + application.PostLogoutRedirectUris.Add(uri); + } + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + await _applicationManager.CreateAsync(application); + } + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs index ed168aa016..46f1217ffa 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameDbContext.cs @@ -7,7 +7,7 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement; @@ -69,7 +69,7 @@ public class MyProjectNameDbContext : builder.ConfigureBackgroundJobs(); builder.ConfigureAuditLogging(); builder.ConfigureIdentity(); - builder.ConfigureIdentityServer(); + builder.ConfigureOpenIddict(); builder.ConfigureFeatureManagement(); builder.ConfigureTenantManagement(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs index f655a22a24..0a8ca0b8c8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/EntityFrameworkCore/MyProjectNameEntityFrameworkCoreModule.cs @@ -6,8 +6,8 @@ using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.SqlServer; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; @@ -17,7 +17,7 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore; [DependsOn( typeof(MyProjectNameDomainModule), typeof(AbpIdentityEntityFrameworkCoreModule), - typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpOpenIddictEntityFrameworkCoreModule), typeof(AbpPermissionManagementEntityFrameworkCoreModule), typeof(AbpSettingManagementEntityFrameworkCoreModule), typeof(AbpEntityFrameworkCoreSqlServerModule), diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.Designer.cs deleted file mode 100644 index e9ce5ff902..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.Designer.cs +++ /dev/null @@ -1,2322 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using MyCompanyName.MyProjectName.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore; - -#nullable disable - -namespace MyCompanyName.MyProjectName.Migrations -{ - [DbContext(typeof(MyProjectNameDbContext))] - [Migration("20211124020156_Initial")] - partial class Initial - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) - .HasAnnotation("ProductVersion", "6.0.0") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); - - modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ApplicationName") - .HasMaxLength(96) - .HasColumnType("nvarchar(96)") - .HasColumnName("ApplicationName"); - - b.Property("BrowserInfo") - .HasMaxLength(512) - .HasColumnType("nvarchar(512)") - .HasColumnName("BrowserInfo"); - - b.Property("ClientId") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("ClientId"); - - b.Property("ClientIpAddress") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("ClientIpAddress"); - - b.Property("ClientName") - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("ClientName"); - - b.Property("Comments") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("Comments"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CorrelationId") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("CorrelationId"); - - b.Property("Exceptions") - .HasColumnType("nvarchar(max)"); - - b.Property("ExecutionDuration") - .HasColumnType("int") - .HasColumnName("ExecutionDuration"); - - b.Property("ExecutionTime") - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("HttpMethod") - .HasMaxLength(16) - .HasColumnType("nvarchar(16)") - .HasColumnName("HttpMethod"); - - b.Property("HttpStatusCode") - .HasColumnType("int") - .HasColumnName("HttpStatusCode"); - - b.Property("ImpersonatorTenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("ImpersonatorTenantId"); - - b.Property("ImpersonatorTenantName") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("ImpersonatorTenantName"); - - b.Property("ImpersonatorUserId") - .HasColumnType("uniqueidentifier") - .HasColumnName("ImpersonatorUserId"); - - b.Property("ImpersonatorUserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("ImpersonatorUserName"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.Property("TenantName") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("TenantName"); - - b.Property("Url") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("Url"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier") - .HasColumnName("UserId"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("UserName"); - - b.HasKey("Id"); - - b.HasIndex("TenantId", "ExecutionTime"); - - b.HasIndex("TenantId", "UserId", "ExecutionTime"); - - b.ToTable("AbpAuditLogs", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AuditLogId") - .HasColumnType("uniqueidentifier") - .HasColumnName("AuditLogId"); - - b.Property("ExecutionDuration") - .HasColumnType("int") - .HasColumnName("ExecutionDuration"); - - b.Property("ExecutionTime") - .HasColumnType("datetime2") - .HasColumnName("ExecutionTime"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("MethodName") - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("MethodName"); - - b.Property("Parameters") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)") - .HasColumnName("Parameters"); - - b.Property("ServiceName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("ServiceName"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("AuditLogId"); - - b.HasIndex("TenantId", "ServiceName", "MethodName", "ExecutionTime"); - - b.ToTable("AbpAuditLogActions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AuditLogId") - .HasColumnType("uniqueidentifier") - .HasColumnName("AuditLogId"); - - b.Property("ChangeTime") - .HasColumnType("datetime2") - .HasColumnName("ChangeTime"); - - b.Property("ChangeType") - .HasColumnType("tinyint") - .HasColumnName("ChangeType"); - - b.Property("EntityId") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("EntityId"); - - b.Property("EntityTenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("EntityTypeFullName") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("EntityTypeFullName"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("AuditLogId"); - - b.HasIndex("TenantId", "EntityTypeFullName", "EntityId"); - - b.ToTable("AbpEntityChanges", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("EntityChangeId") - .HasColumnType("uniqueidentifier"); - - b.Property("NewValue") - .HasMaxLength(512) - .HasColumnType("nvarchar(512)") - .HasColumnName("NewValue"); - - b.Property("OriginalValue") - .HasMaxLength(512) - .HasColumnType("nvarchar(512)") - .HasColumnName("OriginalValue"); - - b.Property("PropertyName") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("PropertyName"); - - b.Property("PropertyTypeFullName") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("PropertyTypeFullName"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("EntityChangeId"); - - b.ToTable("AbpEntityPropertyChanges", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.BackgroundJobs.BackgroundJobRecord", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsAbandoned") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false); - - b.Property("JobArgs") - .IsRequired() - .HasMaxLength(1048576) - .HasColumnType("nvarchar(max)"); - - b.Property("JobName") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("LastTryTime") - .HasColumnType("datetime2"); - - b.Property("NextTryTime") - .HasColumnType("datetime2"); - - b.Property("Priority") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint") - .HasDefaultValue((byte)15); - - b.Property("TryCount") - .ValueGeneratedOnAdd() - .HasColumnType("smallint") - .HasDefaultValue((short)0); - - b.HasKey("Id"); - - b.HasIndex("IsAbandoned", "NextTryTime"); - - b.ToTable("AbpBackgroundJobs", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("ProviderKey") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ProviderName") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.HasKey("Id"); - - b.HasIndex("Name", "ProviderName", "ProviderKey") - .IsUnique() - .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); - - b.ToTable("AbpFeatureValues", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("Description") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsStatic") - .HasColumnType("bit"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("Regex") - .HasMaxLength(512) - .HasColumnType("nvarchar(512)"); - - b.Property("RegexDescription") - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ValueType") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.ToTable("AbpClaimTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("SourceTenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("SourceUserId") - .HasColumnType("uniqueidentifier"); - - b.Property("TargetTenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("TargetUserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId") - .IsUnique() - .HasFilter("[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); - - b.ToTable("AbpLinkUsers", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDefault") - .HasColumnType("bit") - .HasColumnName("IsDefault"); - - b.Property("IsPublic") - .HasColumnType("bit") - .HasColumnName("IsPublic"); - - b.Property("IsStatic") - .HasColumnType("bit") - .HasColumnName("IsStatic"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("NormalizedName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("NormalizedName"); - - b.ToTable("AbpRoles", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ClaimType") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("ClaimValue") - .HasMaxLength(1024) - .HasColumnType("nvarchar(1024)"); - - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("RoleId"); - - b.ToTable("AbpRoleClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("Action") - .HasMaxLength(96) - .HasColumnType("nvarchar(96)"); - - b.Property("ApplicationName") - .HasMaxLength(96) - .HasColumnType("nvarchar(96)"); - - b.Property("BrowserInfo") - .HasMaxLength(512) - .HasColumnType("nvarchar(512)"); - - b.Property("ClientId") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ClientIpAddress") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CorrelationId") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("CreationTime") - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("Identity") - .HasMaxLength(96) - .HasColumnType("nvarchar(96)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.Property("TenantName") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("UserName") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.HasKey("Id"); - - b.HasIndex("TenantId", "Action"); - - b.HasIndex("TenantId", "ApplicationName"); - - b.HasIndex("TenantId", "Identity"); - - b.HasIndex("TenantId", "UserId"); - - b.ToTable("AbpSecurityLogs", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("AccessFailedCount") - .ValueGeneratedOnAdd() - .HasColumnType("int") - .HasDefaultValue(0) - .HasColumnName("AccessFailedCount"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Email") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("Email"); - - b.Property("EmailConfirmed") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("EmailConfirmed"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsActive") - .HasColumnType("bit"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("IsExternal") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsExternal"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("LockoutEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("LockoutEnabled"); - - b.Property("LockoutEnd") - .HasColumnType("datetimeoffset"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("Name"); - - b.Property("NormalizedEmail") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("NormalizedEmail"); - - b.Property("NormalizedUserName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("NormalizedUserName"); - - b.Property("PasswordHash") - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("PasswordHash"); - - b.Property("PhoneNumber") - .HasMaxLength(16) - .HasColumnType("nvarchar(16)") - .HasColumnName("PhoneNumber"); - - b.Property("PhoneNumberConfirmed") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("PhoneNumberConfirmed"); - - b.Property("SecurityStamp") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("SecurityStamp"); - - b.Property("Surname") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)") - .HasColumnName("Surname"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.Property("TwoFactorEnabled") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("TwoFactorEnabled"); - - b.Property("UserName") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)") - .HasColumnName("UserName"); - - b.HasKey("Id"); - - b.HasIndex("Email"); - - b.HasIndex("NormalizedEmail"); - - b.HasIndex("NormalizedUserName"); - - b.HasIndex("UserName"); - - b.ToTable("AbpUsers", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ClaimType") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("nvarchar(256)"); - - b.Property("ClaimValue") - .HasMaxLength(1024) - .HasColumnType("nvarchar(1024)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("AbpUserClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("LoginProvider") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ProviderDisplayName") - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("ProviderKey") - .IsRequired() - .HasMaxLength(196) - .HasColumnType("nvarchar(196)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("UserId", "LoginProvider"); - - b.HasIndex("LoginProvider", "ProviderKey"); - - b.ToTable("AbpUserLogins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => - { - b.Property("OrganizationUnitId") - .HasColumnType("uniqueidentifier"); - - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("OrganizationUnitId", "UserId"); - - b.HasIndex("UserId", "OrganizationUnitId"); - - b.ToTable("AbpUserOrganizationUnits", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("UserId", "RoleId"); - - b.HasIndex("RoleId", "UserId"); - - b.ToTable("AbpUserRoles", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => - { - b.Property("UserId") - .HasColumnType("uniqueidentifier"); - - b.Property("LoginProvider") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Name") - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.Property("Value") - .HasColumnType("nvarchar(max)"); - - b.HasKey("UserId", "LoginProvider", "Name"); - - b.ToTable("AbpUserTokens", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("Code") - .IsRequired() - .HasMaxLength(95) - .HasColumnType("nvarchar(95)") - .HasColumnName("Code"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("DisplayName") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)") - .HasColumnName("DisplayName"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("ParentId") - .HasColumnType("uniqueidentifier"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("Code"); - - b.HasIndex("ParentId"); - - b.ToTable("AbpOrganizationUnits", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => - { - b.Property("OrganizationUnitId") - .HasColumnType("uniqueidentifier"); - - b.Property("RoleId") - .HasColumnType("uniqueidentifier"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("OrganizationUnitId", "RoleId"); - - b.HasIndex("RoleId", "OrganizationUnitId"); - - b.ToTable("AbpOrganizationUnitRoles", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("ConsentLifetime") - .HasColumnType("int"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("Id"); - - b.HasIndex("DeviceCode") - .IsUnique(); - - b.HasIndex("Expiration"); - - b.HasIndex("UserCode"); - - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => - { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("ConsumedTime") - .HasColumnType("datetime2"); - - b.Property("CreationTime") - .HasColumnType("datetime2"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Type") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("nvarchar(50)"); - - b.HasKey("Key"); - - b.HasIndex("Expiration"); - - b.HasIndex("SubjectId", "ClientId", "Type"); - - b.HasIndex("SubjectId", "SessionId", "Type"); - - b.ToTable("IdentityServerPersistedGrants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerIdentityResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("IdentityResourceId", "Type"); - - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("IdentityResourceId", "Key", "Value"); - - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("ProviderKey") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ProviderName") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("TenantId") - .HasColumnType("uniqueidentifier") - .HasColumnName("TenantId"); - - b.HasKey("Id"); - - b.HasIndex("TenantId", "Name", "ProviderName", "ProviderKey") - .IsUnique() - .HasFilter("[TenantId] IS NOT NULL"); - - b.ToTable("AbpPermissionGrants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(128) - .HasColumnType("nvarchar(128)"); - - b.Property("ProviderKey") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("ProviderName") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(2048) - .HasColumnType("nvarchar(2048)"); - - b.HasKey("Id"); - - b.HasIndex("Name", "ProviderName", "ProviderKey") - .IsUnique() - .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); - - b.ToTable("AbpSettings", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.HasKey("Id"); - - b.HasIndex("Name"); - - b.ToTable("AbpTenants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.Property("TenantId") - .HasColumnType("uniqueidentifier"); - - b.Property("Name") - .HasMaxLength(64) - .HasColumnType("nvarchar(64)"); - - b.Property("Value") - .IsRequired() - .HasMaxLength(1024) - .HasColumnType("nvarchar(1024)"); - - b.HasKey("TenantId", "Name"); - - b.ToTable("AbpTenantConnectionStrings", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => - { - b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) - .WithMany("Actions") - .HasForeignKey("AuditLogId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => - { - b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) - .WithMany("EntityChanges") - .HasForeignKey("AuditLogId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => - { - b.HasOne("Volo.Abp.AuditLogging.EntityChange", null) - .WithMany("PropertyChanges") - .HasForeignKey("EntityChangeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => - { - b.HasOne("Volo.Abp.Identity.IdentityRole", null) - .WithMany("Claims") - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => - { - b.HasOne("Volo.Abp.Identity.IdentityUser", null) - .WithMany("Claims") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => - { - b.HasOne("Volo.Abp.Identity.IdentityUser", null) - .WithMany("Logins") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => - { - b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) - .WithMany() - .HasForeignKey("OrganizationUnitId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Volo.Abp.Identity.IdentityUser", null) - .WithMany("OrganizationUnits") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => - { - b.HasOne("Volo.Abp.Identity.IdentityRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Volo.Abp.Identity.IdentityUser", null) - .WithMany("Roles") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => - { - b.HasOne("Volo.Abp.Identity.IdentityUser", null) - .WithMany("Tokens") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => - { - b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) - .WithMany() - .HasForeignKey("ParentId"); - }); - - modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => - { - b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) - .WithMany("Roles") - .HasForeignKey("OrganizationUnitId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Volo.Abp.Identity.IdentityRole", null) - .WithMany() - .HasForeignKey("RoleId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => - { - b.HasOne("Volo.Abp.TenantManagement.Tenant", null) - .WithMany("ConnectionStrings") - .HasForeignKey("TenantId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => - { - b.Navigation("Actions"); - - b.Navigation("EntityChanges"); - }); - - modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => - { - b.Navigation("PropertyChanges"); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => - { - b.Navigation("Claims"); - }); - - modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => - { - b.Navigation("Claims"); - - b.Navigation("Logins"); - - b.Navigation("OrganizationUnits"); - - b.Navigation("Roles"); - - b.Navigation("Tokens"); - }); - - modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => - { - b.Navigation("Roles"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => - { - b.Navigation("ConnectionStrings"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.cs deleted file mode 100644 index 3f73b09c7f..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20211124020156_Initial.cs +++ /dev/null @@ -1,1372 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace MyCompanyName.MyProjectName.Migrations -{ - public partial class Initial : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "AbpAuditLogs", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ImpersonatorUserId = table.Column(type: "uniqueidentifier", nullable: true), - ImpersonatorUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - ImpersonatorTenantId = table.Column(type: "uniqueidentifier", nullable: true), - ImpersonatorTenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ExecutionTime = table.Column(type: "datetime2", nullable: false), - ExecutionDuration = table.Column(type: "int", nullable: false), - ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ClientName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - HttpMethod = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), - Url = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - Exceptions = table.Column(type: "nvarchar(max)", nullable: true), - Comments = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - HttpStatusCode = table.Column(type: "int", nullable: true), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpAuditLogs", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpBackgroundJobs", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - JobName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - JobArgs = table.Column(type: "nvarchar(max)", maxLength: 1048576, nullable: false), - TryCount = table.Column(type: "smallint", nullable: false, defaultValue: (short)0), - CreationTime = table.Column(type: "datetime2", nullable: false), - NextTryTime = table.Column(type: "datetime2", nullable: false), - LastTryTime = table.Column(type: "datetime2", nullable: true), - IsAbandoned = table.Column(type: "bit", nullable: false, defaultValue: false), - Priority = table.Column(type: "tinyint", nullable: false, defaultValue: (byte)15), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpBackgroundJobs", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpClaimTypes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Required = table.Column(type: "bit", nullable: false), - IsStatic = table.Column(type: "bit", nullable: false), - Regex = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - RegexDescription = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - Description = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - ValueType = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpClaimTypes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpFeatureValues", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - Value = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpFeatureValues", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpLinkUsers", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - SourceUserId = table.Column(type: "uniqueidentifier", nullable: false), - SourceTenantId = table.Column(type: "uniqueidentifier", nullable: true), - TargetUserId = table.Column(type: "uniqueidentifier", nullable: false), - TargetTenantId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpLinkUsers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpOrganizationUnits", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ParentId = table.Column(type: "uniqueidentifier", nullable: true), - Code = table.Column(type: "nvarchar(95)", maxLength: 95, nullable: false), - DisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpOrganizationUnits", x => x.Id); - table.ForeignKey( - name: "FK_AbpOrganizationUnits_AbpOrganizationUnits_ParentId", - column: x => x.ParentId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id"); - }); - - migrationBuilder.CreateTable( - name: "AbpPermissionGrants", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpPermissionGrants", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpRoles", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Name = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - IsDefault = table.Column(type: "bit", nullable: false), - IsStatic = table.Column(type: "bit", nullable: false), - IsPublic = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpRoles", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpSecurityLogs", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ApplicationName = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - Identity = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - Action = table.Column(type: "nvarchar(96)", maxLength: 96, nullable: true), - UserId = table.Column(type: "uniqueidentifier", nullable: true), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - TenantName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ClientId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - CorrelationId = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ClientIpAddress = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - BrowserInfo = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpSecurityLogs", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpSettings", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - Value = table.Column(type: "nvarchar(2048)", maxLength: 2048, nullable: false), - ProviderName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - ProviderKey = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpSettings", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpTenants", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpTenants", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "AbpUsers", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - UserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedUserName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - Surname = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: true), - Email = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - NormalizedEmail = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - EmailConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), - PasswordHash = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - SecurityStamp = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - IsExternal = table.Column(type: "bit", nullable: false, defaultValue: false), - PhoneNumber = table.Column(type: "nvarchar(16)", maxLength: 16, nullable: true), - PhoneNumberConfirmed = table.Column(type: "bit", nullable: false, defaultValue: false), - IsActive = table.Column(type: "bit", nullable: false), - TwoFactorEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), - LockoutEnd = table.Column(type: "datetimeoffset", nullable: true), - LockoutEnabled = table.Column(type: "bit", nullable: false, defaultValue: false), - AccessFailedCount = table.Column(type: "int", nullable: false, defaultValue: 0), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUsers", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - AllowedAccessTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClients", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - RequireRequestObject = table.Column(type: "bit", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - AllowedIdentityTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - ConsentLifetime = table.Column(type: "int", nullable: true), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - UserSsoLifetime = table.Column(type: "int", nullable: true), - UserCodeType = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - DeviceCodeLifetime = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClients", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerDeviceFlowCodes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - DeviceCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - UserCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerDeviceFlowCodes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerPersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - ConsumedTime = table.Column(type: "datetime2", nullable: true), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Id = table.Column(type: "uniqueidentifier", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerPersistedGrants", x => x.Key); - }); - - migrationBuilder.CreateTable( - name: "AbpAuditLogActions", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - AuditLogId = table.Column(type: "uniqueidentifier", nullable: false), - ServiceName = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: true), - MethodName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true), - Parameters = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - ExecutionTime = table.Column(type: "datetime2", nullable: false), - ExecutionDuration = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpAuditLogActions", x => x.Id); - table.ForeignKey( - name: "FK_AbpAuditLogActions_AbpAuditLogs_AuditLogId", - column: x => x.AuditLogId, - principalTable: "AbpAuditLogs", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpEntityChanges", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - AuditLogId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ChangeTime = table.Column(type: "datetime2", nullable: false), - ChangeType = table.Column(type: "tinyint", nullable: false), - EntityTenantId = table.Column(type: "uniqueidentifier", nullable: true), - EntityId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - EntityTypeFullName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpEntityChanges", x => x.Id); - table.ForeignKey( - name: "FK_AbpEntityChanges_AbpAuditLogs_AuditLogId", - column: x => x.AuditLogId, - principalTable: "AbpAuditLogs", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpOrganizationUnitRoles", - columns: table => new - { - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpOrganizationUnitRoles", x => new { x.OrganizationUnitId, x.RoleId }); - table.ForeignKey( - name: "FK_AbpOrganizationUnitRoles_AbpOrganizationUnits_OrganizationUnitId", - column: x => x.OrganizationUnitId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpOrganizationUnitRoles_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpRoleClaims", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpRoleClaims", x => x.Id); - table.ForeignKey( - name: "FK_AbpRoleClaims_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpTenantConnectionStrings", - columns: table => new - { - TenantId = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Value = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpTenantConnectionStrings", x => new { x.TenantId, x.Name }); - table.ForeignKey( - name: "FK_AbpTenantConnectionStrings_AbpTenants_TenantId", - column: x => x.TenantId, - principalTable: "AbpTenants", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserClaims", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - UserId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ClaimType = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), - ClaimValue = table.Column(type: "nvarchar(1024)", maxLength: 1024, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserClaims", x => x.Id); - table.ForeignKey( - name: "FK_AbpUserClaims_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserLogins", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - ProviderKey = table.Column(type: "nvarchar(196)", maxLength: 196, nullable: false), - ProviderDisplayName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserLogins", x => new { x.UserId, x.LoginProvider }); - table.ForeignKey( - name: "FK_AbpUserLogins_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserOrganizationUnits", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - OrganizationUnitId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserOrganizationUnits", x => new { x.OrganizationUnitId, x.UserId }); - table.ForeignKey( - name: "FK_AbpUserOrganizationUnits_AbpOrganizationUnits_OrganizationUnitId", - column: x => x.OrganizationUnitId, - principalTable: "AbpOrganizationUnits", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpUserOrganizationUnits_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserRoles", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - RoleId = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserRoles", x => new { x.UserId, x.RoleId }); - table.ForeignKey( - name: "FK_AbpUserRoles_AbpRoles_RoleId", - column: x => x.RoleId, - principalTable: "AbpRoles", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_AbpUserRoles_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpUserTokens", - columns: table => new - { - UserId = table.Column(type: "uniqueidentifier", nullable: false), - LoginProvider = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), - Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - Value = table.Column(type: "nvarchar(max)", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); - table.ForeignKey( - name: "FK_AbpUserTokens_AbpUsers_UserId", - column: x => x.UserId, - principalTable: "AbpUsers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceClaims", x => new { x.ApiResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceClaims_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceProperties", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceProperties", x => new { x.ApiResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceProperties_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceScopes", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceScopes", x => new { x.ApiResourceId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceScopes_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceSecrets", x => new { x.ApiResourceId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceSecrets_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeClaims", x => new { x.ApiScopeId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeClaims_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeProperties", - columns: table => new - { - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeProperties", x => new { x.ApiScopeId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeProperties_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientClaims", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientClaims", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientClaims_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientCorsOrigins", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientCorsOrigins", x => new { x.ClientId, x.Origin }); - table.ForeignKey( - name: "FK_IdentityServerClientCorsOrigins_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientGrantTypes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientGrantTypes", x => new { x.ClientId, x.GrantType }); - table.ForeignKey( - name: "FK_IdentityServerClientGrantTypes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientIdPRestrictions", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientIdPRestrictions", x => new { x.ClientId, x.Provider }); - table.ForeignKey( - name: "FK_IdentityServerClientIdPRestrictions_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientPostLogoutRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientPostLogoutRedirectUris", x => new { x.ClientId, x.PostLogoutRedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientPostLogoutRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientProperties", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientProperties", x => new { x.ClientId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientProperties_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientRedirectUris", x => new { x.ClientId, x.RedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientScopes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientScopes", x => new { x.ClientId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerClientScopes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientSecrets", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientSecrets_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceClaims", x => new { x.IdentityResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceClaims_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceProperties", - columns: table => new - { - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceProperties", x => new { x.IdentityResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceProperties_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "AbpEntityPropertyChanges", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - TenantId = table.Column(type: "uniqueidentifier", nullable: true), - EntityChangeId = table.Column(type: "uniqueidentifier", nullable: false), - NewValue = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - OriginalValue = table.Column(type: "nvarchar(512)", maxLength: 512, nullable: true), - PropertyName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), - PropertyTypeFullName = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_AbpEntityPropertyChanges", x => x.Id); - table.ForeignKey( - name: "FK_AbpEntityPropertyChanges_AbpEntityChanges_EntityChangeId", - column: x => x.EntityChangeId, - principalTable: "AbpEntityChanges", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_AbpAuditLogActions_AuditLogId", - table: "AbpAuditLogActions", - column: "AuditLogId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpAuditLogActions_TenantId_ServiceName_MethodName_ExecutionTime", - table: "AbpAuditLogActions", - columns: new[] { "TenantId", "ServiceName", "MethodName", "ExecutionTime" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpAuditLogs_TenantId_ExecutionTime", - table: "AbpAuditLogs", - columns: new[] { "TenantId", "ExecutionTime" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpAuditLogs_TenantId_UserId_ExecutionTime", - table: "AbpAuditLogs", - columns: new[] { "TenantId", "UserId", "ExecutionTime" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpBackgroundJobs_IsAbandoned_NextTryTime", - table: "AbpBackgroundJobs", - columns: new[] { "IsAbandoned", "NextTryTime" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpEntityChanges_AuditLogId", - table: "AbpEntityChanges", - column: "AuditLogId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpEntityChanges_TenantId_EntityTypeFullName_EntityId", - table: "AbpEntityChanges", - columns: new[] { "TenantId", "EntityTypeFullName", "EntityId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpEntityPropertyChanges_EntityChangeId", - table: "AbpEntityPropertyChanges", - column: "EntityChangeId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpFeatureValues_Name_ProviderName_ProviderKey", - table: "AbpFeatureValues", - columns: new[] { "Name", "ProviderName", "ProviderKey" }, - unique: true, - filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_AbpLinkUsers_SourceUserId_SourceTenantId_TargetUserId_TargetTenantId", - table: "AbpLinkUsers", - columns: new[] { "SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId" }, - unique: true, - filter: "[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnitRoles_RoleId_OrganizationUnitId", - table: "AbpOrganizationUnitRoles", - columns: new[] { "RoleId", "OrganizationUnitId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnits_Code", - table: "AbpOrganizationUnits", - column: "Code"); - - migrationBuilder.CreateIndex( - name: "IX_AbpOrganizationUnits_ParentId", - table: "AbpOrganizationUnits", - column: "ParentId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpPermissionGrants_TenantId_Name_ProviderName_ProviderKey", - table: "AbpPermissionGrants", - columns: new[] { "TenantId", "Name", "ProviderName", "ProviderKey" }, - unique: true, - filter: "[TenantId] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_AbpRoleClaims_RoleId", - table: "AbpRoleClaims", - column: "RoleId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpRoles_NormalizedName", - table: "AbpRoles", - column: "NormalizedName"); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_Action", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "Action" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_ApplicationName", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "ApplicationName" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_Identity", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "Identity" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSecurityLogs_TenantId_UserId", - table: "AbpSecurityLogs", - columns: new[] { "TenantId", "UserId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpSettings_Name_ProviderName_ProviderKey", - table: "AbpSettings", - columns: new[] { "Name", "ProviderName", "ProviderKey" }, - unique: true, - filter: "[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); - - migrationBuilder.CreateIndex( - name: "IX_AbpTenants_Name", - table: "AbpTenants", - column: "Name"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserClaims_UserId", - table: "AbpUserClaims", - column: "UserId"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserLogins_LoginProvider_ProviderKey", - table: "AbpUserLogins", - columns: new[] { "LoginProvider", "ProviderKey" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserOrganizationUnits_UserId_OrganizationUnitId", - table: "AbpUserOrganizationUnits", - columns: new[] { "UserId", "OrganizationUnitId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUserRoles_RoleId_UserId", - table: "AbpUserRoles", - columns: new[] { "RoleId", "UserId" }); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_Email", - table: "AbpUsers", - column: "Email"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_NormalizedEmail", - table: "AbpUsers", - column: "NormalizedEmail"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_NormalizedUserName", - table: "AbpUsers", - column: "NormalizedUserName"); - - migrationBuilder.CreateIndex( - name: "IX_AbpUsers_UserName", - table: "AbpUsers", - column: "UserName"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerClients_ClientId", - table: "IdentityServerClients", - column: "ClientId"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_DeviceCode", - table: "IdentityServerDeviceFlowCodes", - column: "DeviceCode", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_Expiration", - table: "IdentityServerDeviceFlowCodes", - column: "Expiration"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_UserCode", - table: "IdentityServerDeviceFlowCodes", - column: "UserCode"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_Expiration", - table: "IdentityServerPersistedGrants", - column: "Expiration"); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_SessionId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "SessionId", "Type" }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "AbpAuditLogActions"); - - migrationBuilder.DropTable( - name: "AbpBackgroundJobs"); - - migrationBuilder.DropTable( - name: "AbpClaimTypes"); - - migrationBuilder.DropTable( - name: "AbpEntityPropertyChanges"); - - migrationBuilder.DropTable( - name: "AbpFeatureValues"); - - migrationBuilder.DropTable( - name: "AbpLinkUsers"); - - migrationBuilder.DropTable( - name: "AbpOrganizationUnitRoles"); - - migrationBuilder.DropTable( - name: "AbpPermissionGrants"); - - migrationBuilder.DropTable( - name: "AbpRoleClaims"); - - migrationBuilder.DropTable( - name: "AbpSecurityLogs"); - - migrationBuilder.DropTable( - name: "AbpSettings"); - - migrationBuilder.DropTable( - name: "AbpTenantConnectionStrings"); - - migrationBuilder.DropTable( - name: "AbpUserClaims"); - - migrationBuilder.DropTable( - name: "AbpUserLogins"); - - migrationBuilder.DropTable( - name: "AbpUserOrganizationUnits"); - - migrationBuilder.DropTable( - name: "AbpUserRoles"); - - migrationBuilder.DropTable( - name: "AbpUserTokens"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerClientCorsOrigins"); - - migrationBuilder.DropTable( - name: "IdentityServerClientGrantTypes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientIdPRestrictions"); - - migrationBuilder.DropTable( - name: "IdentityServerClientPostLogoutRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerDeviceFlowCodes"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerPersistedGrants"); - - migrationBuilder.DropTable( - name: "AbpEntityChanges"); - - migrationBuilder.DropTable( - name: "AbpTenants"); - - migrationBuilder.DropTable( - name: "AbpOrganizationUnits"); - - migrationBuilder.DropTable( - name: "AbpRoles"); - - migrationBuilder.DropTable( - name: "AbpUsers"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResources"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClients"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResources"); - - migrationBuilder.DropTable( - name: "AbpAuditLogs"); - } - } -} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.Designer.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.Designer.cs similarity index 65% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.Designer.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.Designer.cs index 11ca83b86d..4c973a1d46 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/20211124020400_Initial.Designer.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.Designer.cs @@ -12,8 +12,8 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { - [DbContext(typeof(IdentityServerHostMigrationsDbContext))] - [Migration("20211124020400_Initial")] + [DbContext(typeof(MyProjectNameDbContext))] + [Migration("20220520081238_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -288,6 +288,64 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpEntityPropertyChanges", (string)null); }); + modelBuilder.Entity("Volo.Abp.BackgroundJobs.BackgroundJobRecord", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsAbandoned") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false); + + b.Property("JobArgs") + .IsRequired() + .HasMaxLength(1048576) + .HasColumnType("nvarchar(max)"); + + b.Property("JobName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("LastTryTime") + .HasColumnType("datetime2"); + + b.Property("NextTryTime") + .HasColumnType("datetime2"); + + b.Property("Priority") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint") + .HasDefaultValue((byte)15); + + b.Property("TryCount") + .ValueGeneratedOnAdd() + .HasColumnType("smallint") + .HasDefaultValue((short)0); + + b.HasKey("Id"); + + b.HasIndex("IsAbandoned", "NextTryTime"); + + b.ToTable("AbpBackgroundJobs", (string)null); + }); + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => { b.Property("Id") @@ -324,7 +382,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") @@ -371,7 +428,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("SourceTenantId") @@ -398,7 +454,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") @@ -475,7 +530,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("Action") @@ -550,7 +604,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("AccessFailedCount") @@ -833,7 +886,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("Code") @@ -931,22 +983,29 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); + b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasMaxLength(40) .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + b.Property("CreationTime") .HasColumnType("datetime2") .HasColumnName("CreationTime"); @@ -963,16 +1022,11 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -992,91 +1046,110 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Permissions") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.ToTable("IdentityServerApiResources", (string)null); - }); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("ApiResourceId", "Type"); + b.HasKey("Id"); + + b.HasIndex("ClientId"); - b.ToTable("IdentityServerApiResourceClaims", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("ApiResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - b.HasKey("ApiResourceId", "Key", "Value"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.HasKey("ApiResourceId", "Scope"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); - b.HasKey("ApiResourceId", "Type", "Value"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerApiResourceSecrets", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1105,18 +1178,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1137,116 +1208,33 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); + b.HasIndex("Name"); - b.ToTable("IdentityServerApiScopeProperties", (string)null); + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1254,8 +1242,8 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("CreationDate") + .HasColumnType("datetime2"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1273,36 +1261,13 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("ExpirationDate") + .HasColumnType("datetime2"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1317,446 +1282,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("Payload") + .HasColumnType("nvarchar(max)"); - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedemptionDate") + .HasColumnType("datetime2"); - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); - b.Property("RefreshTokenUsage") - .HasColumnType("int"); + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("Id"); - - b.HasIndex("DeviceCode") - .IsUnique(); - - b.HasIndex("Expiration"); - - b.HasIndex("UserCode"); - - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => - { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("ConsumedTime") - .HasColumnType("datetime2"); - - b.Property("CreationTime") - .HasColumnType("datetime2"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); - - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("Id") - .HasColumnType("uniqueidentifier"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); b.Property("Type") - .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); - - b.HasIndex("Expiration"); - - b.HasIndex("SubjectId", "ClientId", "Type"); - - b.HasIndex("SubjectId", "SessionId", "Type"); - - b.ToTable("IdentityServerPersistedGrants", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.HasIndex("AuthorizationId"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.HasIndex("ReferenceId"); - b.HasKey("IdentityResourceId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("IdentityResourceId", "Key", "Value"); - - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -1829,7 +1388,6 @@ namespace MyCompanyName.MyProjectName.Migrations modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Property("Id") - .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") @@ -2018,157 +1576,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2215,52 +1638,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.cs similarity index 61% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.cs rename to templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.cs index 61dd143293..6025706c2a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Migrations/20220119015238_Initial.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/20220520081238_Initial.cs @@ -43,6 +43,27 @@ namespace MyCompanyName.MyProjectName.Migrations table.PrimaryKey("PK_AbpAuditLogs", x => x.Id); }); + migrationBuilder.CreateTable( + name: "AbpBackgroundJobs", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + JobName = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + JobArgs = table.Column(type: "nvarchar(max)", maxLength: 1048576, nullable: false), + TryCount = table.Column(type: "smallint", nullable: false, defaultValue: (short)0), + CreationTime = table.Column(type: "datetime2", nullable: false), + NextTryTime = table.Column(type: "datetime2", nullable: false), + LastTryTime = table.Column(type: "datetime2", nullable: true), + IsAbandoned = table.Column(type: "bit", nullable: false, defaultValue: false), + Priority = table.Column(type: "tinyint", nullable: false, defaultValue: (byte)15), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AbpBackgroundJobs", x => x.Id); + }); + migrationBuilder.CreateTable( name: "AbpClaimTypes", columns: table => new @@ -256,102 +277,21 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - AllowedAccessTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClients", + name: "OpenIddictApplications", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - RequireRequestObject = table.Column(type: "bit", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - AllowedIdentityTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - ConsentLifetime = table.Column(type: "int", nullable: true), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - UserSsoLifetime = table.Column(type: "int", nullable: true), - UserCodeType = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - DeviceCodeLifetime = table.Column(type: "int", nullable: false), + ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Permissions = table.Column(type: "nvarchar(max)", nullable: true), + PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Requirements = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -364,44 +304,21 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerClients", x => x.Id); + table.PrimaryKey("PK_OpenIddictApplications", x => x.Id); }); migrationBuilder.CreateTable( - name: "IdentityServerDeviceFlowCodes", + name: "OpenIddictScopes", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - DeviceCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - UserCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerDeviceFlowCodes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + Descriptions = table.Column(type: "nvarchar(max)", nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Resources = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -414,30 +331,7 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerPersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - ConsumedTime = table.Column(type: "datetime2", nullable: true), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Id = table.Column(type: "uniqueidentifier", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerPersistedGrants", x => x.Key); + table.PrimaryKey("PK_OpenIddictScopes", x => x.Id); }); migrationBuilder.CreateTable( @@ -673,320 +567,35 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResourceClaims", + name: "OpenIddictAuthorizations", columns: table => new { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceClaims", x => new { x.ApiResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceClaims_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceProperties", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceProperties", x => new { x.ApiResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceProperties_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceScopes", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceScopes", x => new { x.ApiResourceId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceScopes_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceSecrets", x => new { x.ApiResourceId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceSecrets_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeClaims", x => new { x.ApiScopeId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeClaims_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeProperties", - columns: table => new - { - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeProperties", x => new { x.ApiScopeId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeProperties_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientClaims", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientClaims", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientClaims_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientCorsOrigins", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientCorsOrigins", x => new { x.ClientId, x.Origin }); - table.ForeignKey( - name: "FK_IdentityServerClientCorsOrigins_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientGrantTypes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientGrantTypes", x => new { x.ClientId, x.GrantType }); - table.ForeignKey( - name: "FK_IdentityServerClientGrantTypes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientIdPRestrictions", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientIdPRestrictions", x => new { x.ClientId, x.Provider }); - table.ForeignKey( - name: "FK_IdentityServerClientIdPRestrictions_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientPostLogoutRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientPostLogoutRedirectUris", x => new { x.ClientId, x.PostLogoutRedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientPostLogoutRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientProperties", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientProperties", x => new { x.ClientId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientProperties_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientRedirectUris", x => new { x.ClientId, x.RedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientScopes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientScopes", x => new { x.ClientId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerClientScopes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientSecrets", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientSecrets_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceClaims", x => new { x.IdentityResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceClaims_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceProperties", - columns: table => new - { - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Scopes = table.Column(type: "nvarchar(max)", nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResourceProperties", x => new { x.IdentityResourceId, x.Key, x.Value }); + table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id); table.ForeignKey( - name: "FK_IdentityServerIdentityResourceProperties_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); }); migrationBuilder.CreateTable( @@ -1012,6 +621,47 @@ namespace MyCompanyName.MyProjectName.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "OpenIddictTokens", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + AuthorizationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + ExpirationDate = table.Column(type: "datetime2", nullable: true), + Payload = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedemptionDate = table.Column(type: "datetime2", nullable: true), + ReferenceId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictTokens", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId", + column: x => x.AuthorizationId, + principalTable: "OpenIddictAuthorizations", + principalColumn: "Id"); + }); + migrationBuilder.CreateIndex( name: "IX_AbpAuditLogActions_AuditLogId", table: "AbpAuditLogActions", @@ -1032,6 +682,11 @@ namespace MyCompanyName.MyProjectName.Migrations table: "AbpAuditLogs", columns: new[] { "TenantId", "UserId", "ExecutionTime" }); + migrationBuilder.CreateIndex( + name: "IX_AbpBackgroundJobs_IsAbandoned_NextTryTime", + table: "AbpBackgroundJobs", + columns: new[] { "IsAbandoned", "NextTryTime" }); + migrationBuilder.CreateIndex( name: "IX_AbpEntityChanges_AuditLogId", table: "AbpEntityChanges", @@ -1166,40 +821,34 @@ namespace MyCompanyName.MyProjectName.Migrations column: "UserName"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerClients_ClientId", - table: "IdentityServerClients", + name: "IX_OpenIddictApplications_ClientId", + table: "OpenIddictApplications", column: "ClientId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_DeviceCode", - table: "IdentityServerDeviceFlowCodes", - column: "DeviceCode", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_Expiration", - table: "IdentityServerDeviceFlowCodes", - column: "Expiration"); + name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type", + table: "OpenIddictAuthorizations", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_UserCode", - table: "IdentityServerDeviceFlowCodes", - column: "UserCode"); + name: "IX_OpenIddictScopes_Name", + table: "OpenIddictScopes", + column: "Name"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_Expiration", - table: "IdentityServerPersistedGrants", - column: "Expiration"); + name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type", + table: "OpenIddictTokens", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); + name: "IX_OpenIddictTokens_AuthorizationId", + table: "OpenIddictTokens", + column: "AuthorizationId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_SessionId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "SessionId", "Type" }); + name: "IX_OpenIddictTokens_ReferenceId", + table: "OpenIddictTokens", + column: "ReferenceId"); } protected override void Down(MigrationBuilder migrationBuilder) @@ -1207,6 +856,9 @@ namespace MyCompanyName.MyProjectName.Migrations migrationBuilder.DropTable( name: "AbpAuditLogActions"); + migrationBuilder.DropTable( + name: "AbpBackgroundJobs"); + migrationBuilder.DropTable( name: "AbpClaimTypes"); @@ -1253,61 +905,10 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUserTokens"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerClientCorsOrigins"); - - migrationBuilder.DropTable( - name: "IdentityServerClientGrantTypes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientIdPRestrictions"); - - migrationBuilder.DropTable( - name: "IdentityServerClientPostLogoutRedirectUris"); + name: "OpenIddictScopes"); migrationBuilder.DropTable( - name: "IdentityServerClientProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerDeviceFlowCodes"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerPersistedGrants"); + name: "OpenIddictTokens"); migrationBuilder.DropTable( name: "AbpEntityChanges"); @@ -1325,19 +926,13 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUsers"); migrationBuilder.DropTable( - name: "IdentityServerApiResources"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClients"); + name: "OpenIddictAuthorizations"); migrationBuilder.DropTable( - name: "IdentityServerIdentityResources"); + name: "AbpAuditLogs"); migrationBuilder.DropTable( - name: "AbpAuditLogs"); + name: "OpenIddictApplications"); } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs index 2435238741..b0cbbaedaa 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/Migrations/MyProjectNameDbContextModelSnapshot.cs @@ -981,322 +981,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1304,8 +1000,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1323,36 +1020,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1367,284 +1044,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1652,56 +1085,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1730,18 +1176,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1762,51 +1206,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2067,157 +1574,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2264,52 +1636,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index 50ebd61a24..b3ed2380a9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -13,15 +13,15 @@ - + - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index ea44661a35..800dcbf3da 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -10,10 +10,10 @@ - + - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index db8ba2982e..c649e666be 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Text; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; @@ -10,6 +11,7 @@ using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.IdentityModel.Tokens; using MyCompanyName.MyProjectName.EntityFrameworkCore; using MyCompanyName.MyProjectName.MultiTenancy; using StackExchange.Redis; @@ -212,7 +214,6 @@ public class MyProjectNameHttpApiHostModule : AbpModule var configuration = context.GetConfiguration(); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); options.OAuthScopes("MyProjectName"); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json index 33a3d0140a..4b7a8f4029 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json @@ -11,8 +11,7 @@ "AuthServer": { "Authority": "https://localhost:44301", "RequireHttpsMetadata": "true", - "SwaggerClientId": "MyProjectName_Swagger", - "SwaggerClientSecret": "1q2w3e*" + "SwaggerClientId": "MyProjectName_Swagger" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/tempkey.rsa b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/tempkey.rsa deleted file mode 100644 index ed0defa5a8..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"600caa200caf5d805eba9f06ace9e236","Parameters":{"D":"KCNDHA96eimN+UqchSKocgYITGflaAIwxzCS5KqSTkYAFliPthQx7LySuLor4F1+uLvwnh3ZocyI3y43GZu+eVHD256sxdV8/UsQz1HC23RRFqcUiAZjze8K5VMVStrBOxaa/Ds1U9/bpuNE7jZdcgFIEHsdZtCACqwtlE4nlIs1/GLiokqjBOESgxJMy9WUeDbWcvoo+YdwgKf5jt6AZHOYSS+TokLL+Y7TEfGMXe3jZD9VtSMkBSM8wGB89zNGR0FZB9maCG/BCoRJqxdYRyeb4FFXJclQtK3DexyDVqlNZQaNKVHu0tVAnVNKKcd7Iex8gA+5DNqqucUA7C/F6Q==","DP":"fr9iaNb1W4YZ/NJ56+N3SCeDQYuKobq1qeaQWmHlQsOHKoHhNZJQZ5x0M9PQilou16AwVlNGCJncMwxsSUxXn6itG0LcBnvfMeo2v3xKcij1BtFR9qfXecwEn2nnhI3mpXtZxyCdP3NIYUp9qViLJUjGJqrbQk+OIAGRQd2rRe0=","DQ":"o1umLkDodtwvpCsDguQYSjd3iob+WHNmfe/9HyjADmUehP8b9SpUgcrb+QF301J8YmQMnYZKWW5rEwKOtwsWNswgXfMnXeWerlZmz0tj9y38YczS70liU0vETsRefhrRCaXHraMvneqYNNedhsrCNalWK+DNwcixi4L59vA8ofs=","Exponent":"AQAB","InverseQ":"btd1nwwxl/E3ryfDi2bN12TuVDvv7yoPvryIlLgu+FiLpe4vaA1omDLliQBcl7oeyA563HBUop4D5oE7si+jD64N8XgFz37dD3KqUokeQ4lrTSSOePT1K+nWIl30sqDd7YE4auz4CvSjm2wXmN31+CXW1hp3YWN2972yrUt+R5U=","Modulus":"uwMB6reAVtm/Cq0BRPZ0ozBq6g3wDh2kzqFKBf8I7u8d9p7i5ExLSrOWPupHwPr/IW1VUn2TKHrJ8OnyYhznKIRxqlxj0U3D2GXijz5kfFOoHK+mlfKaDMqweRoS0UzEz58kMlgwUoDraUj6dTHTPCVPo3TqA2ImRw50j6D+jobFrY5321EFvlirZViMPDAgB8Ca7wGCqNBcCxvIPYw1O6WZmcVmjG7umelD3XjcUIQlEbIyAmi/3gXAo7NdPmgOamla6bnSWsy429HfsNpXyCfPBzV3QS3ubpTekWPoPcOVZbWwVPYtFQbhRh8PmWATRx0cV6oePZNZGxGeJl8WYQ==","P":"wplelBfVmiOPmr6iUxtOgIzuvwSqvP6Rqmh8dhaGDiJjU8OqZ0tZhuh0G+xnMLPIHb2fMeg0dqZMJZ5iXaIi1QycYn/JKz1i4cUonJ6IIQeKKf67tvzn/BY0V0N8rJw8hVfzou+/5sRBCbiHtJ2KIN1YJQuWGFFfrZJOJzc95ss=","Q":"9gTGKoDiOdrY8kqIXJ2nMhoeNryAH4q3EUrROJ7simqc28oYlGx24Sco/wOoeB2xxrdcF5JYOlyJ7H2YY/huLvJISaw/wHLPskiKiYQ78tuNwW0ip+5ceB1dSToHcEe3sR30+OeTh0Z4ZKoqthKziFGIt3EhEgiGq1gjZuWB5gM="}} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index 5fbd48f168..7dd3166a17 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -10,7 +10,7 @@ - + @@ -18,7 +18,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index 586507bbc4..fc8211ee43 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -3,11 +3,13 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; +using System.Text; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using Microsoft.IdentityModel.Tokens; using MyCompanyName.MyProjectName.EntityFrameworkCore; using MyCompanyName.MyProjectName.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; @@ -25,6 +27,7 @@ using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict; using Volo.Abp.Swashbuckle; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.VirtualFileSystem; @@ -39,12 +42,32 @@ namespace MyCompanyName.MyProjectName; typeof(MyProjectNameEntityFrameworkCoreModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpSwashbuckleModule) )] public class MyProjectNameHttpApiHostModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); + } + public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); @@ -125,9 +148,10 @@ public class MyProjectNameHttpApiHostModule : AbpModule options.Audience = "MyProjectName"; options.BackchannelHttpHandler = new HttpClientHandler { - ServerCertificateCustomValidationCallback = - HttpClientHandler.DangerousAcceptAnyServerCertificateValidator + ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator }; + + options.MapInboundClaims = false; }); } @@ -225,7 +249,6 @@ public class MyProjectNameHttpApiHostModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); @@ -235,7 +258,6 @@ public class MyProjectNameHttpApiHostModule : AbpModule var configuration = context.ServiceProvider.GetRequiredService(); c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - c.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); c.OAuthScopes("MyProjectName"); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json index c0918002d5..3fc189b8ae 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json @@ -11,8 +11,7 @@ "AuthServer": { "Authority": "https://localhost:44305", "RequireHttpsMetadata": "false", - "SwaggerClientId": "MyProjectName_Swagger", - "SwaggerClientSecret": "1q2w3e*" + "SwaggerClientId": "MyProjectName_Swagger" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/tempkey.rsa b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/tempkey.rsa deleted file mode 100644 index f19e3e7dd8..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"5eb863b25811a7099f9bc925c0fdf680","Parameters":{"D":"gqn7NAeMkug4twJJHFz/qPseDzQCx7R+6Maj649xrG4vPsMANV9mfR78Er2SuHUS0ZihM2MQEILI5Sf41Uuubv8swCNSE3Dw7GQrBIbTAJ7BZKbQMVgtGkMDtHrtri6d9cOi3EOTSJINICk9r80M49oBMOZihEKascfBSIUYVQvWLEMYfryEiDeFUPbobr10OxF5tZ1unvEKgZe190BdNKWQuFhJelcgsZumjEYNsOz5DHrK73WLhfTy01DmsTKx8i1XVnLtq6W89MqAhMZP9QO9Vj8lR0ANnmdOsY6hJfwUbXiI36t4V9rAZvXR5ESorjb4mnXzT6QPuOfy1fbdSQ==","DP":"ItYIpEqw6aDjDc/swDifUe0Dq6yl4yim3UyQ4B9NBPQR5M6b7D3vbCnvwql4zJK4s+0N4lRViBtkF+20Td1yc2v8S+THCYZCVxCf2e9Q7Ff/sKecJ9/JmdzHkztCfs0xb+4X3CPEQP+JIYtMGmwOLQgE5XgmUYKr0ahZDhYTCwE=","DQ":"v35mgxfyF/nwnWwWlR9cF3mg0v7SyPfKkwdxGaVnGH6G8nPWpPlO+zueflA5QDXEwGtk/1k3PAzI/OLUwJiKBubx/UMhsqt5+/bKTrFDNHxLANCvGNZggMZIzFZBYRucuXRZbiBe5qpCkKkniUct7w6jd/V1mnsESiJZ7btcxU0=","Exponent":"AQAB","InverseQ":"Vbg2a+wtaYvhTV8AzqJsVvaz0kfC4HFbmwEgA8+BAbS3GEoS3RHFSfB3DHndpnNihIg72DctDNLmV2GMMiTu18uyI+7AUaYNR836fByxptfyhPtSQfw4kINZ3V0GWKJGzzZ5NAOct4/FpRl8xliHetayCfUIuK9jwk0z9i6V6bA=","Modulus":"xlzmN1sBi2V1971MsPD5MTND9dAGncIzYqxa3H+9jx1mNDivY6JgKijUWm5a3D2Y1UPMB3kx6qUf3iH6pZHjq5bk938qRhxrPy9muW55U03HTiW4V5/ga0+OqXj5Tj4lz+29OiQHPErxLRgfXT+WBgrGb75ElzkHajKpJnPgzAZuarlUCwupJNQlav/crwOFrgkhGsnaOW13M8htiSLZozw5lxkbhYIei7YTTQZ3l6rVH1dPL8CvzRJJOTwbnU8k0sUmWiuOhrLzuinlr6uuOTocAVgbj943/witVFtN5B0yhetxEVgFCwxRDTOO1EKVHFtCiAyZBUOlK4gwZ+SbGQ==","P":"7dFfbAkZSdx/ieSMYJHoY1DKC4dLg80RObEEmuJ72MaVJLTtFuBPoRpYOrMUNuupIyPjZZsW8fHRlPRhKW7xFv+Q2aDudh1UaJzFZs3xYKoiXTU/j0B3TB3nrifVLMqsS+8kHOWOojwA4dMjI6GCYCpKmYVvMOE1cuJrQ9EYxoM=","Q":"1YdN8mLchLVoTEwD34Pi3T2U7EjjBDgDCzhjl7x5FBG73TyKMz1n7/KXkXcJ2rqIAsnLqCWpYUeRcWl+IQEQxFKoMwkvmQ33lRkOE0SBZ+FnUAMivRyxOD5qM9z4ccqx0ga4ZRgb1lR85f7VYtMSfIosOuSFxWAbV1e29utxhTM="}} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index deba8640d6..af051b945e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.1.3.tgz#775f5a9fa7072d33f08b8bf23996226ba4c8aad1" - integrity sha512-c/cV5FUNKPpooi0QRswUzF/EMFQjpjiOiNnoDYjU1Y1NAlkwfLa4Sdm95MP29E4BxGu9tfPRKDdhlG1hwSJLbQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.1.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.1.3.tgz#7d8def65280d814f56e5d1066b09ab9d6ed94067" - integrity sha512-8Wbep6GGpxIvVgMGHQ5Nm8vsW8NWCrBq3SP7HeVdXLgnoYQ8DquSxGhYYcdU2+InP1Flpn9/Eveq4rkkUbSEBw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.1.3" - "@abp/bootstrap" "~5.1.3" - "@abp/bootstrap-datepicker" "~5.1.3" - "@abp/datatables.net-bs5" "~5.1.3" - "@abp/font-awesome" "~5.1.3" - "@abp/jquery-form" "~5.1.3" - "@abp/jquery-validation-unobtrusive" "~5.1.3" - "@abp/lodash" "~5.1.3" - "@abp/luxon" "~5.1.3" - "@abp/malihu-custom-scrollbar-plugin" "~5.1.3" - "@abp/select2" "~5.1.3" - "@abp/sweetalert2" "~5.1.3" - "@abp/timeago" "~5.1.3" - "@abp/toastr" "~5.1.3" - -"@abp/aspnetcore.mvc.ui@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.1.3.tgz#25c96ec31321caf6fe3de785df676a3f7052739c" - integrity sha512-T5bhlAI+BSdkr7niddD+J0obuU1B27Kebye90QLtwaiFL56l1w73rXwhesCatFcJ0DMouuPoJLa0ursBOMn59w== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,152 +41,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.1.3.tgz#964b7499bd32de952b45e4f460db07b814e5bd1e" - integrity sha512-lukNimqFTf2CJUlALXj4LcY/bp+7KkOZNcQZoF45kpHeXWULVIcSf7TKQPfu7+SrnxwS1T6K446MJvbQGArTQw== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.1.3.tgz#0e0490fc1282adf7176128c4d7f74e09e67d9274" - integrity sha512-UvJ/w5zWAlCxDz/OT111Ut7x4I5uq1Uo3p3Cg34X8bdI6IKFxznVOeK/h6NZckVH0mQ2onPKeIBVyFAl1Umqnw== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.1.3" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.0-rc.1" + bootstrap "^5.1.3" -"@abp/core@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.1.3.tgz#49ebd7c33956e9b9ad819f5d797df4c27e4bb797" - integrity sha512-6f0ASkqMlGeGclXWQVMGp332gVQKwPQa+M04bpmrNNXqGArcrOFV4ohLpS1T33jGysXR5a1HOowU5HUj20ExEA== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.1.3" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.1.3.tgz#1581d6673a44a40b9022a0e3c0af00a74f935435" - integrity sha512-+pj22OveFTQi6mcgSrHYMKT4Z14PXzClg2C/qi6MMG45L71CZRHG9QrEX3cA3RPb28ztKlN6gqrd+4SYe0g+CA== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.1.3" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.0-rc.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.1.3.tgz#713d4cca35450c4dbc565c29652458a111efd1e6" - integrity sha512-AJgbZDUDySMlOhE6aXJptZmXDdl8M48ec+q+w20BT35IJgUS74+HLLvS8bG1u6ubkeJiwTgAtKW9knLu+TQ+MQ== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.1.3" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.0-rc.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.1.3.tgz#f6eeee3522f0499458eb94dea2c9d559739ea5e8" - integrity sha512-mE9y0ME+mOQ4/1svLfwPNsR4Cb+qZRG5zX8FFktZv+h893w10FU0njQwHsbdUfFjcaCtkPVyRoy7/g7QOqHU+g== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.1.3" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.0-rc.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.1.3.tgz#074fb4cd28defe81b2fd66c6323ac971adbcb100" - integrity sha512-/BTtDfwciBZHQosQZpLAbVUQcKO6TSaNAd0/AE6fbu1YRDmDOhC0AzK49XGOWU2Tw+82Qtk2UgE7E5J86JOv8Q== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.1.3.tgz#c63549acd360da243cd43c79c0738a4d79d14eea" - integrity sha512-C7eTBZ4Vd1lBdli4HkEYVXC1XAsap7+3NIYfxkSkXxnTNqhiyoUHUumn3Bw5jqaLamMMLfqXMUp2OF7wM9LAHg== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.1.3" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.0-rc.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.1.3.tgz#3423505350e49984be2eba033d662ef5c5fc0c24" - integrity sha512-tk7koJhsBq/t7UJFObf5HjOp/Y8oQC7Fc+QLhnLd5JD29YT9SnFXnk4KA48mWxGLf6eT/jZBYJhzHE8TJUce/w== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.1.3" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.0-rc.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.1.3.tgz#a5d10d99cddadb65b6a8cebfffcb1cf48fb2e8b1" - integrity sha512-KpELd1OXMYIbBwCDXJnndAcHI0HB0o+D0xcpUwM9teAIwtKtD0BY3A5nplgGVktG95W9LnyKgarSgy+VBy75ZA== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.1.3.tgz#7669a3f25aa32d5094eed429253bff6728664c89" - integrity sha512-ESoDaMXiDgpgmUIX5HIGs4t6QAkyth6YwuKUVJnOLImb8rhv3CBfCNESFO/Z47fil7CrRLDCmjBDBCYk2yhx3A== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.1.3" - lodash "^4.17.15" + "@abp/core" "~5.3.0-rc.1" + lodash "^4.17.21" -"@abp/luxon@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.1.3.tgz#886d2e276d10d4b803e40baeb90d8447501a1db4" - integrity sha512-hO17EGrgYU6s5ou92SbsORg5gjxjGqw4l+7SPc2d9KNtO1C1PPBRYDxoGDIlIUC+k0IQZnZVzMN6OSUnR6qDTQ== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.1.3" - luxon "^1.24.1" + "@abp/core" "~5.3.0-rc.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.1.3.tgz#6e9673c5ce79a959cebd5fa32fb5b17fe941c029" - integrity sha512-2L9eOp6tJaKBG7kvcq52SUkbYfqZOqZlCfwQ5mwlQHr5LkLBAjJen0mPiEW6HJwY9QjZixkIY/RWxUrmGC3JxQ== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.1.3.tgz#9e2d59d57d07cf5e52e09678731968c599cc1d05" - integrity sha512-rqQCUvWGeLf6kT3/mzJ9o3qIEFggR5W+pzol1f2HcZpDoRVbEskjFhj/rvK0X3O6Jul7310sqvXIsky/TxajXA== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.1.3.tgz#1aafa77c8c3e9fddaee4517dd3e8ecae62add54c" - integrity sha512-C3hwoML8usvGFdzJto9ntmtLrljuuyltQVE4BRTNoHU3XNVku0qLPRx6NO36gW0F8Ny8FgN+IXQbiAaaCY1EfA== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.1.3" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.0-rc.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.1.3.tgz#c76cef521252cff3206e170f627b9e06883f9eca" - integrity sha512-JxJnxJ382o0WkAs5c/HcC6/ny9oj2RG68e0YDnJz0gry0K+E20Uh2s/Tl6/qsCB8nj3e/H6QlXe8A5gtgfCpjQ== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.1.3.tgz#57039df87b4ad0c06af1ddcf2f3ef798ba91d492" - integrity sha512-xHme2UnPZStHD8WtLeI0k62a7IGiu1syJA9KvAo8NYmOAXlGOVq7/9Ksdd/gRU7LmQX+5hF16LROMhgj4mowww== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.1.3.tgz#90442c18e516d251af58f87454729773532258ed" - integrity sha512-vzf2uH1JQbBWpJSpgs0XkUAJMjpH/dK9n9hQEj8fmUBpw3w9942jhl3uYDbF3V6PduD5k91vMhlt1Z42ObT/gQ== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw== +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== abbrev@1: version "1.1.1" @@ -391,12 +390,7 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.yarnpkg.com/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha512-ChcbO5JeEQx6/Yz40YZLq3A4RIWcCmCCiRpweF5wg32/Q8CfWrwDNpcDTJ2SU+aSAewUJoCSzf/tRxhAgnZuog== - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== @@ -603,25 +597,18 @@ d@1: dependencies: es5-ext "^0.10.9" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha512-u0tosKUR1XNpXzxOOt2NInnNYayt7GQoG+OM1xPRhdkZ7ZBD4oNF8S0aKve8yvSUq/ZwTMh4WJeh80GdmrJAdQ== +datatables.net-bs5@^1.11.4: + version "1.12.0" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.12.0.tgz#8cef5579c096c5216afa423af0261acba62b4476" + integrity sha512-8SR3gI2DtcrcFy03vu9MkGtIA61UfE725HvSujOOt+M4v+n0Wf9bsIbvUe2sGDlB4gVQreB0YHNSNamc3053tQ== dependencies: - datatables.net ">=1.10.25" + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ== - dependencies: - jquery ">=1.7" - -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.5.tgz#858a69953a01e1d5b18786769802117b04b8e3c9" + integrity sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA== dependencies: jquery ">=1.7" @@ -1375,12 +1362,12 @@ jquery-mousewheel@>=3.0.6: version "3.1.13" resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha512-3FQPllaWdD+Aq55zJLGSW39+eXPDz1HhwAvrSwYi8zHQ8DVcu5IJ1HVeTiCl0BnCnrIBvfFU3zEB/DrGdcoRIQ== +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1389,12 +1376,12 @@ jquery-validation@>=1.16: dependencies: jquery "^1.7 || ^2.0 || ^3.1" -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ== +jquery-validation@^1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1": +jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, "jquery@^1.7 || ^2.0 || ^3.1": version "3.3.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.3.1.tgz#958ce29e81c9790f31be7792df5d4d95fc57fbca" @@ -1403,7 +1390,7 @@ jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2. resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1497,15 +1484,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg== +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2356,10 +2343,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.14" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.4.14.tgz#b7c7efbf6672aa56696ba68d7ac141798b961525" + integrity sha512-Dh4XqfUSpCwhRsGM5zZFbtBRHujjcaf98DjVKXEs0ER4E/Zao0OtDHZRRQqvT9xxY7RA8WsiZ6FHJbyW+BBbDw== tar@^4: version "4.4.10" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json deleted file mode 100644 index 09b98ca204..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": "1.0.0", - "name": "my-app-identityserver", - "private": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" - } -} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa deleted file mode 100644 index f3b32de233..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"ac0d2edf3c04d13cd95cc41b9b33ab03","Parameters":{"D":"FFymEWbX3XBT5YnTngOKwtz3XKsyaQbyDvvw9jbmkdvLKUmrb1hkmylqVYwU/3G1u79rrD8AZXJDoYVLegyZymK/iNeePMLI4i5vScF7PdQXn/g6CvQ8j3J60YYyfDWuxjBH8nCEUIfQIv14BpcH6CWi1BVZUbnbWcpe2ji8D5I3FHOZpvksQztst5eE836ODdN9jgk35kgrdUQ14MEFHA6m6fAzvFI1csFxD3Kwej4rI8RYZ0WYLkndz9ID88+v9VxqI8+wN6wR6tIOR510uT1FI5wONBVBUzgeZ6cCEpg0jC9tgqcP03gMDpmE7vKp34ExxH/iOWyhQ0gAxHOVlQ==","DP":"qSQfNZvEkepgY12d+uwTbRoOp+0g1CBiMU9kqyoIB56hAUnzENSCDzunjLRrvDLFPgXiUcoccskyVRnKKOGPOqPE6VjgzBrdLgA/hBf8hPg0GnTVoPyLxR9G6GsGUKsAYVn8G7cnK5wXzK4jCjsflkfxCzFfdASJ/+sa5QPWZMM=","DQ":"u+56T1+rhMvlurid9kBS2Ypfm4vOiNAXLD9kGz2wx8Ob0yYlWo55kn11qPs6Ej9bnQIY3N+TY2tXMamfhAhntoHaKrFjOpCmlHZ0GAeQOJVuWSlFvu/NBoxfjZzcUCNua22oJjy++wSdkkLLGEqau62byaQoSSqUxUzwL36RexM=","Exponent":"AQAB","InverseQ":"E+uq9g6D5LjUk+M7gtt0srnT8duwu8P83AgFqjtGOnSCy71omSboxb4zC9bGq/WaEFauFBwqxbkXwFyXuYNfIelfmSERulU9jgf0+KH6QmFdtjrJ5UO7VArqET1WUquwiDvOyO8udCxi8RRAiM5G3dTzIs5JTalGhlKEZSAgPtQ=","Modulus":"rgHACxzqvuE72RF/NdDTLsIEy3F/n6P4lkgrER60FU8uRNwSmAMRxvxYOaE3Ot/krRYcw2+MP8ewR1VBXywXVT1zuACA3SacMHJYmZQ2UkuwsD9bmpjvqoMhR/hjsI74jTzKpclHtEu7D7WYDZaIPAEIs/8+5H/z1mXVfgACaeaQt3C0OhwXSOPPDP71VKGfoFucXYED1keZ0PKxYAlhiHOe7cnSlfJseujwD2Rhyq8mUhe6aEMTYBjuruWgpfvnSOARAqu5vwzK35KpAirHwa1DJSZyanNMFdlLkVNKWUKEqd6PwRneiHacmaaDF6oQQstuSbf9cuJeSMbKh7WVQQ==","P":"0CJDit2NHk0Z1bN5ZVIYZRUYbrAI2bEOafAKqfffcA/Os7yXsY14Ye4pSpDxfdZGcPGRL04HPkJsogFtyI7k4ujrvsC66I5cg45+BhBMM0zyLJ7LZkD2HGwX2+a/xrXhhIIOnGWWy2zzW3dkayRhi1bR9krfTA5uBw1LX9qZ3Yc=","Q":"1gZITAaB+r0+PgOfyDCeVzSnTyQuKSkgbUkIgQP9jQZa6edrbAXogdJipxmUTrW7JaxifG1z9ubK+TOqhjZHqT4gd8U8Bh7jCBizZNVe60pez1OtNGpEOW2N+ZrXBSMNcV8PFaMg/B+fcaX+i7NWpTqmztR/V0DGXmD+XosuaPc="}} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs index fa2327adb4..d6bfb8448f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MongoDb/MyProjectNameMongoDbModule.cs @@ -3,8 +3,8 @@ using Volo.Abp.AuditLogging.MongoDB; using Volo.Abp.BackgroundJobs.MongoDB; using Volo.Abp.FeatureManagement.MongoDB; using Volo.Abp.Identity.MongoDB; -using Volo.Abp.IdentityServer.MongoDB; using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict.MongoDB; using Volo.Abp.PermissionManagement.MongoDB; using Volo.Abp.SettingManagement.MongoDB; using Volo.Abp.TenantManagement.MongoDB; @@ -17,7 +17,7 @@ namespace MyCompanyName.MyProjectName.MongoDB; typeof(AbpPermissionManagementMongoDbModule), typeof(AbpSettingManagementMongoDbModule), typeof(AbpIdentityMongoDbModule), - typeof(AbpIdentityServerMongoDbModule), + typeof(AbpOpenIddictMongoDbModule), typeof(AbpBackgroundJobsMongoDbModule), typeof(AbpAuditLoggingMongoDbModule), typeof(AbpTenantManagementMongoDbModule), diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj index bc48d70fd6..01cca1665c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.csproj @@ -12,11 +12,11 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Menus/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Menus/MyProjectNameMenuContributor.cs index fd918a71db..f6263d9516 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Menus/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Menus/MyProjectNameMenuContributor.cs @@ -70,10 +70,10 @@ public class MyProjectNameMenuContributor : IMenuContributor { var l = context.GetLocalizer(); var accountStringLocalizer = context.GetLocalizer(); - var identityServerUrl = _configuration["AuthServer:Authority"] ?? ""; + var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; context.Menu.AddItem(new ApplicationMenuItem("Account.Manage", accountStringLocalizer["MyAccount"], - $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank").RequireAuthenticated()); + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null, "_blank").RequireAuthenticated()); context.Menu.AddItem(new ApplicationMenuItem("Account.Logout", l["Logout"], url: "~/Account/Logout", icon: "fa fa-power-off", order: int.MaxValue - 1000).RequireAuthenticated()); return Task.CompletedTask; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 6eb25ae27f..16a451cda4 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -15,9 +15,9 @@ - + - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 368ad5eafe..d489dc1ae3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -150,10 +150,12 @@ public class MyProjectNameWebModule : AbpModule options.ClientId = configuration["AuthServer:ClientId"]; options.ClientSecret = configuration["AuthServer:ClientSecret"]; + options.UsePkce = true; options.SaveTokens = true; options.GetClaimsFromUserInfoEndpoint = true; + options.SignOutScheme = "Cookies"; - options.Scope.Add("role"); + options.Scope.Add("roles"); options.Scope.Add("email"); options.Scope.Add("phone"); options.Scope.Add("MyProjectName"); @@ -183,7 +185,7 @@ public class MyProjectNameWebModule : AbpModule options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}permission-management{0}src{0}Volo.Abp.PermissionManagement.Web", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}identity{0}src{0}Volo.Abp.Identity.Web", Path.DirectorySeparatorChar))); // - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts")); options.FileSets.ReplaceEmbeddedByPhysical(hostingEnvironment.ContentRootPath); }); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 6e77565af6..f531fff53b 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.1.tgz#884a4bc9ea043654891be56cd7e7c7bbf9bbad8c" - integrity sha512-JGTQyg3Zyfda84yg/Geq6rGuBN2SX4gIOaFL2h8BX9bA8CVuBC+zcwfO1bBsP89xfTyPvdSAGBvSfhCjPwsukQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.1.tgz#77a4900424603e0be048f3507aa852701f3139a2" - integrity sha512-mn9HEOHBkmBr7d/VUt0bfg9K58IyRDb7j3ZiDoHo263WLXJkf0+C7MEbv/zxfDHW4NeztsNCd3ugA7PdTxPzmA== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.1" - "@abp/bootstrap" "~5.0.1" - "@abp/bootstrap-datepicker" "~5.0.1" - "@abp/datatables.net-bs5" "~5.0.1" - "@abp/font-awesome" "~5.0.1" - "@abp/jquery-form" "~5.0.1" - "@abp/jquery-validation-unobtrusive" "~5.0.1" - "@abp/lodash" "~5.0.1" - "@abp/luxon" "~5.0.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.1" - "@abp/select2" "~5.0.1" - "@abp/sweetalert2" "~5.0.1" - "@abp/timeago" "~5.0.1" - "@abp/toastr" "~5.0.1" - -"@abp/aspnetcore.mvc.ui@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.1.tgz#f5aa4e0dcc10878f590e30836887f3f9861e91e3" - integrity sha512-bN15UcNhTqeo0RXlIYws7Jd8ZfSBsVM6Y5wiAqbq1Q3Lvs1uLmryhZpn6sHmKw2Z3Lnhec7VjnZN0FwNpzEqUw== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,152 +41,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.1.tgz#52116a154e343d84c87257ad1ef10b54012f4c33" - integrity sha512-ZJWaZKzGzshBAfyBqaUScfWqeBVfWGbZIwIplF8VKtDGcyI8R54bqDsydhS88CCnolRz4+tfq3QY6yAXrUEKAw== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.1.tgz#d542a8fd7151e22eda1643e313a67f9892c50533" - integrity sha512-wyVAp6a4OIwlqK7AZozs7wpsBZgzG55EKeChBBfUXloJPuirQHxccFNE41aAYWfKur+wj25WD5NBnzFuKyNYiQ== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.0.1" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.0-rc.1" + bootstrap "^5.1.3" -"@abp/core@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.1.tgz#904fa2c22bcbf42deb56abf772c3a53362807a2f" - integrity sha512-QzX35Oa+Vncu2OP1tXvGjAVFznmD1tZRn4tlDQgn36B2MU06UEO0JSx7JVedPvhzQZceUe5+WWMfuYNM2xeBTw== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.0.1" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.0.1.tgz#b8afa2255e374c86c50e57bd57c2b36a86d6a890" - integrity sha512-1fuCk+K4xW3XnDFo2+kPXHMoOTol4HLRcWVRELjoBQ5YbTxEPsbrhfNUeUsECDAmkxoqY7G3MEdtIVwmy5NPpg== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.0.1" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.0-rc.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.1.tgz#0ce5bdf7aa5bf224b93a22758a016c50562d6569" - integrity sha512-x9D2YNtnOJRrKXi2Pwrqzz9sIOrn3o6x2c8ZxjyC54vh+SLQtLycAzQw7OyaZGdbFkudlJiCuME/FiuZvht8Og== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.0.1" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.0-rc.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.1.tgz#661753403499925661f880c53214841dd34f5210" - integrity sha512-C+alReNvHZzST55ITBTyFqhdTehPo5ondzfqc9QlyB3Kwk1DIq0CaLqfS2xU5glYGDSqKi7xfkyQnJdwu2hKRA== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.0.1" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.0-rc.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.1.tgz#20fa51946f68a7acd6ef3dd3d8d1349307f681b4" - integrity sha512-Q7GG0+XFXs7pDoa4p3r7vm8+sUh5ohwovedPNVghtX8Rm2I1sfVfJKamPr24PCAyJcFVntU1WCt/CngneES3pw== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.1.tgz#50798d3c087d0b103944b3a9e7c39a1f51db9fdc" - integrity sha512-w5SAYB0EZRbOhIFcCUXWvoGB/dWj3zyQOarbvzJ9LelgrXvvoissaaSSqq6BySjr1UigIWBCVuruAQssizmXBQ== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.0.1" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.0-rc.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.1.tgz#5932060d1fdf04a81e998caac959188aefdf1669" - integrity sha512-T5p0U2cWh6Jov55AiUxJYRw92L6ubFXfqL0EkaePV5AnoetVXheluhq9gQAKnwVAqtc/3Rxkr/lO047catUkjw== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.0.1" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.0-rc.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.1.tgz#1522ba1e0c488bffdc30a230ab35e225ae32d028" - integrity sha512-AacK4cy/RpzBfRYf7Jjn+TmVm72TW0jEjRoQ3TOXmlOrunRph05mQm72Ux2o8+Z1lOwxJKRz5gKSbRTfa6Tgpw== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.1.tgz#ad22895772ce65e52941dddb84d0a7d26c521d59" - integrity sha512-r1QqZCXfDd0YQnE4MkcY291H5jWFdZtGeYmwjIkn7aeOZ0PP9qsDPkWTwPwbpfmnz4DhmIdO5a1rveWz/J5ZwQ== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.0.1" - lodash "^4.17.15" + "@abp/core" "~5.3.0-rc.1" + lodash "^4.17.21" -"@abp/luxon@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.1.tgz#7930e30db60e63b486a51030c60e09b54bcb3867" - integrity sha512-cXbnyAI9Gn2bZBQuCN46UFOkzb+djA3LMgpeMlTTv0aA87PrjzT60EPQ4a9FLovESqNnblaQ9Je43QwoGH8kZA== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.0.1" - luxon "^1.24.1" + "@abp/core" "~5.3.0-rc.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.1.tgz#268ec30eef8ba72a0c8cb997e55d48a1508b2719" - integrity sha512-mqF6OizoWp6kg5pztNfF78+mbfyX3JAXDfv+ZUCvjtAqllIzyOUIqRSXULDkAcDeCC1+PluRsd+uSltIppC5hA== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.1.tgz#644c46c7c942a6b9d36bc76c7132f32ad577933b" - integrity sha512-FHVqEebQS3XiYn5TMEhGaQJOAYnPqxivKpeOB0F0F2bEDGqt3OXh05KcQBOm+sDSScq3c7T7HLr9mMzlYtyHXw== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.0.1" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.1.tgz#acf2acfc04619c7907237238bfaeb63f2d75fb22" - integrity sha512-CPqXIaHK7Ff6i8gNhxoZ9r3te9LIEiDCUpdHNtgRVMCaLbywfkiLyirlfRIB6lxRWSw8BZ+M/azdp5uzidW8Vw== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.0.1" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.0-rc.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.1.tgz#09ca6302304de09baa5ac8c72b950515ab0d0451" - integrity sha512-6onXho8R6eiWfncONZFBn18OwgQPKIaRM73rVevpRGJTf2pylcHtCp4uHGsoqgCc+TQU7FyoKTTkg4lfvCQa0A== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.1.tgz#a3959df1de0c4640fabf508da9ccd3ed37ae2b03" - integrity sha512-ndL1uj2ce4PbGDzxh+QCIWYu+GAmW1Xwma4aJcq5zKo+xhlLJJnTe6QFGKr7wSsTVZMB7z1Pp2olvXH6an82+g== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.0.1" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.1.tgz#57934383004a21172bf7e08130813c08946894fb" - integrity sha512-WLCWe7iJ8krxsz8Z7E+8GDaGZuG/6PZDdqPcMIh95opi0kvcLxb+mjPXXpiXdtFzW7O09a+NaNOxorsEFxjoKw== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha512-D819f34FLHeBN/4xvw0HR0u7U2G7RqjPSggXqf7LktsxWQ48VAfGwvMrhcVuaZV2fF069c/619RdgCCms0DHhw== +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== abbrev@1: version "1.1.1" @@ -405,12 +404,7 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.yarnpkg.com/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha512-ChcbO5JeEQx6/Yz40YZLq3A4RIWcCmCCiRpweF5wg32/Q8CfWrwDNpcDTJ2SU+aSAewUJoCSzf/tRxhAgnZuog== - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== @@ -627,25 +621,18 @@ d@1: dependencies: es5-ext "^0.10.9" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha512-u0tosKUR1XNpXzxOOt2NInnNYayt7GQoG+OM1xPRhdkZ7ZBD4oNF8S0aKve8yvSUq/ZwTMh4WJeh80GdmrJAdQ== +datatables.net-bs5@^1.11.4: + version "1.12.0" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-1.12.0.tgz#8cef5579c096c5216afa423af0261acba62b4476" + integrity sha512-8SR3gI2DtcrcFy03vu9MkGtIA61UfE725HvSujOOt+M4v+n0Wf9bsIbvUe2sGDlB4gVQreB0YHNSNamc3053tQ== dependencies: - datatables.net ">=1.10.25" + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ== - dependencies: - jquery ">=1.7" - -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw== +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.11.5" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.5.tgz#858a69953a01e1d5b18786769802117b04b8e3c9" + integrity sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA== dependencies: jquery ">=1.7" @@ -1450,12 +1437,12 @@ jquery-mousewheel@>=3.0.6: resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha512-3FQPllaWdD+Aq55zJLGSW39+eXPDz1HhwAvrSwYi8zHQ8DVcu5IJ1HVeTiCl0BnCnrIBvfFU3zEB/DrGdcoRIQ== +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1465,17 +1452,17 @@ jquery-validation@>=1.16: dependencies: jquery "^1.7 || ^2.0 || ^3.1" -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ== +jquery-validation@^1.19.3: + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2, jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1": +jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2, "jquery@^1.7 || ^2.0 || ^3.1": version "3.4.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1573,15 +1560,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha512-CgnIMKAWT0ghcuWFfCWBnWGOddM0zu6c4wZAWmD0NN7MZTnro0+833DF6tJep+xlxRPg4KtsYEHYLfTMBQKwYg== +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2464,10 +2451,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.14" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.4.14.tgz#b7c7efbf6672aa56696ba68d7ac141798b961525" + integrity sha512-Dh4XqfUSpCwhRsGM5zZFbtBRHujjcaf98DjVKXEs0ER4E/Zao0OtDHZRRQqvT9xxY7RA8WsiZ6FHJbyW+BBbDw== tar@^4: version "4.4.10" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 976724f276..daecf98955 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -31,7 +31,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index b6daf2a4a8..82e7a4b7bd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -47,7 +47,7 @@ namespace MyCompanyName.MyProjectName.Web; typeof(AbpAutofacModule), typeof(AbpIdentityWebModule), typeof(AbpSettingManagementWebModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpTenantManagementWebModule), @@ -134,8 +134,8 @@ public class MyProjectNameWebModule : AbpModule { Configure(options => { - // - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); + // + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Bootstrap", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared", Path.DirectorySeparatorChar))); @@ -146,8 +146,8 @@ public class MyProjectNameWebModule : AbpModule options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}identity{0}src{0}Volo.Abp.Identity.Web", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}account{0}src{0}Volo.Abp.Account.Web", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}..{0}modules{0}tenant-management{0}src{0}Volo.Abp.TenantManagement.Web", Path.DirectorySeparatorChar))); - // - options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); + // + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts")); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application")); @@ -239,7 +239,6 @@ public class MyProjectNameWebModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); app.UseAbpSwaggerUI(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/tempkey.rsa b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/tempkey.rsa deleted file mode 100644 index f3b32de233..0000000000 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"ac0d2edf3c04d13cd95cc41b9b33ab03","Parameters":{"D":"FFymEWbX3XBT5YnTngOKwtz3XKsyaQbyDvvw9jbmkdvLKUmrb1hkmylqVYwU/3G1u79rrD8AZXJDoYVLegyZymK/iNeePMLI4i5vScF7PdQXn/g6CvQ8j3J60YYyfDWuxjBH8nCEUIfQIv14BpcH6CWi1BVZUbnbWcpe2ji8D5I3FHOZpvksQztst5eE836ODdN9jgk35kgrdUQ14MEFHA6m6fAzvFI1csFxD3Kwej4rI8RYZ0WYLkndz9ID88+v9VxqI8+wN6wR6tIOR510uT1FI5wONBVBUzgeZ6cCEpg0jC9tgqcP03gMDpmE7vKp34ExxH/iOWyhQ0gAxHOVlQ==","DP":"qSQfNZvEkepgY12d+uwTbRoOp+0g1CBiMU9kqyoIB56hAUnzENSCDzunjLRrvDLFPgXiUcoccskyVRnKKOGPOqPE6VjgzBrdLgA/hBf8hPg0GnTVoPyLxR9G6GsGUKsAYVn8G7cnK5wXzK4jCjsflkfxCzFfdASJ/+sa5QPWZMM=","DQ":"u+56T1+rhMvlurid9kBS2Ypfm4vOiNAXLD9kGz2wx8Ob0yYlWo55kn11qPs6Ej9bnQIY3N+TY2tXMamfhAhntoHaKrFjOpCmlHZ0GAeQOJVuWSlFvu/NBoxfjZzcUCNua22oJjy++wSdkkLLGEqau62byaQoSSqUxUzwL36RexM=","Exponent":"AQAB","InverseQ":"E+uq9g6D5LjUk+M7gtt0srnT8duwu8P83AgFqjtGOnSCy71omSboxb4zC9bGq/WaEFauFBwqxbkXwFyXuYNfIelfmSERulU9jgf0+KH6QmFdtjrJ5UO7VArqET1WUquwiDvOyO8udCxi8RRAiM5G3dTzIs5JTalGhlKEZSAgPtQ=","Modulus":"rgHACxzqvuE72RF/NdDTLsIEy3F/n6P4lkgrER60FU8uRNwSmAMRxvxYOaE3Ot/krRYcw2+MP8ewR1VBXywXVT1zuACA3SacMHJYmZQ2UkuwsD9bmpjvqoMhR/hjsI74jTzKpclHtEu7D7WYDZaIPAEIs/8+5H/z1mXVfgACaeaQt3C0OhwXSOPPDP71VKGfoFucXYED1keZ0PKxYAlhiHOe7cnSlfJseujwD2Rhyq8mUhe6aEMTYBjuruWgpfvnSOARAqu5vwzK35KpAirHwa1DJSZyanNMFdlLkVNKWUKEqd6PwRneiHacmaaDF6oQQstuSbf9cuJeSMbKh7WVQQ==","P":"0CJDit2NHk0Z1bN5ZVIYZRUYbrAI2bEOafAKqfffcA/Os7yXsY14Ye4pSpDxfdZGcPGRL04HPkJsogFtyI7k4ujrvsC66I5cg45+BhBMM0zyLJ7LZkD2HGwX2+a/xrXhhIIOnGWWy2zzW3dkayRhi1bR9krfTA5uBw1LX9qZ3Yc=","Q":"1gZITAaB+r0+PgOfyDCeVzSnTyQuKSkgbUkIgQP9jQZa6edrbAXogdJipxmUTrW7JaxifG1z9ubK+TOqhjZHqT4gd8U8Bh7jCBizZNVe60pez1OtNGpEOW2N+ZrXBSMNcV8PFaMg/B+fcaX+i7NWpTqmztR/V0DGXmD+XosuaPc="}} \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index ba1ca22dfb..e8da4a9929 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.2.0-rc.2.tgz#d2cf4a0f2b8a93f1fe53a0bc6c66d9c3233b620a" - integrity sha512-aQk3RSl31UT4gEqiHT3oV06BZ/k6q1DVKBwVOj+YQEIb8ojptJtbGv+aUhHEql5I7zwiWe4EWf2rM2Ve0JQa6Q== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.2.0-rc.2.tgz#9ff2eb2a1b5f438d8f848659400100e20f74fc77" - integrity sha512-m06zMEt0C9P3f7+Qg7SjvP+k4wHPqvAOzsd5jDNN0JekeWH4gIMsqgDAoRB2SA72HUUpMbGe8Utune7EgE/T1Q== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.2.0-rc.2" - "@abp/bootstrap" "~5.2.0-rc.2" - "@abp/bootstrap-datepicker" "~5.2.0-rc.2" - "@abp/datatables.net-bs5" "~5.2.0-rc.2" - "@abp/font-awesome" "~5.2.0-rc.2" - "@abp/jquery-form" "~5.2.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~5.2.0-rc.2" - "@abp/lodash" "~5.2.0-rc.2" - "@abp/luxon" "~5.2.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~5.2.0-rc.2" - "@abp/select2" "~5.2.0-rc.2" - "@abp/sweetalert2" "~5.2.0-rc.2" - "@abp/timeago" "~5.2.0-rc.2" - "@abp/toastr" "~5.2.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.2.0-rc.2.tgz#427811f66eb738dbb89434e926b36a2309fe43b2" - integrity sha512-+ss9MctYTF9Ewn7VEsMqszEoiX51G070kN2bIepgyXnYetrQRFsTgQGa4yi1bAqyAF9rZ1j0hSB0eM2clFyJMg== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.0-rc.1.tgz#dc27eb79ba7353eb6b16e4a2f50d17c3cfc9157d" + integrity sha512-TEbz/ISsGhfTec66XSeivQjCOCpTidufdpZmj8JRyrbQvhXOYohJs3ImrGJOIxUwo6nuzagGpotqXryjIF+jrg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.0-rc.1.tgz#ed993befe99682baee55ea8771f983980ba8f93f" + integrity sha512-kL4CXe0YoZ4wJ4XvutqLPkv4fMuFeRJFzdix6lx4dPAArnPu69n3P4qFhokPkcoGpB2KTRqyn9fHQs8g2FCGQw== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.0-rc.1" + "@abp/bootstrap" "~5.3.0-rc.1" + "@abp/bootstrap-datepicker" "~5.3.0-rc.1" + "@abp/datatables.net-bs5" "~5.3.0-rc.1" + "@abp/font-awesome" "~5.3.0-rc.1" + "@abp/jquery-form" "~5.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~5.3.0-rc.1" + "@abp/lodash" "~5.3.0-rc.1" + "@abp/luxon" "~5.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.0-rc.1" + "@abp/select2" "~5.3.0-rc.1" + "@abp/sweetalert2" "~5.3.0-rc.1" + "@abp/timeago" "~5.3.0-rc.1" + "@abp/toastr" "~5.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.0-rc.1.tgz#5205d3a5ea500ff3b8d525dcc11a2ce4cfccdfd3" + integrity sha512-mIefq3QSVtP7heNl0ocHiSKLU+DwN5/TDvvPj2L3IZkCzuOrDxoBUIBIciea4k10HIQzqo6gmm1YOw0CEfzNHg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.2.0-rc.2.tgz#bfb648e7b8e5d2a9806301417c7864abb4cc26e2" - integrity sha512-wKR+5g/xx7zqFGFaOZVO9XySlrOmOFH/ZidDpq9QYjE+OoHSlS8X5DUnkbXj2MbQy4etZuvz9ILcmnBPonrQ7g== +"@abp/bootstrap-datepicker@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.0-rc.1.tgz#1a5a29d7f9904e8d99c7085bc4545ad2665195cb" + integrity sha512-Y5QLLNd2UpbzbWSh+5nKdpAdz2i3V8+feTHTpAxnPgYRabPGqAFiOrty8KZ1MJEgjQFWC1ypGHYII7GWVyIS6Q== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.2.0-rc.2.tgz#0375b38317c5d1f5f6cb7d46a0ee6bf9b85a6f4f" - integrity sha512-hsgxY8WNRonQZP3cmMKvBNHnyCSBfbBB4savLW5r7CxysjnRt6MDyhmmj7XVwVTC1siBviUcWClOHCJisaNRSw== +"@abp/bootstrap@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.3.0-rc.1.tgz#977d579f59e18b1eb2c9b43612d525a859a575a4" + integrity sha512-dpY0bPHdhUI5yL23+EsR6w/KjoPyehaEgHLLKQDERdubX1Zk/SDWrhrYXnXxtJ0fvxG2aRVOEBMULmHD3m/PoA== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" bootstrap "^5.1.3" -"@abp/core@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.2.0-rc.2.tgz#f0c3dd7f0b12e8e13a702a3b0a53aa4525da673e" - integrity sha512-zotgZOXmkh+aD0KExBr4QytQfDDHxrG15e2HFzYKywhd0mpnwAVdR2Z2Ye01C360wJ2opv0mtgaSuEZniXNO3Q== +"@abp/core@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.3.0-rc.1.tgz#4ede309ccfab440deb66fecb091273027483676a" + integrity sha512-cTw9xaWMkRDQjXRtkB5zx4Za0CPx7yvCRnTngIJs7xO86lRMVnuiwVGjP66vYTmiiu2ulGFgCeuw1AaK5t+g4Q== dependencies: - "@abp/utils" "~5.2.0-rc.2" + "@abp/utils" "~5.3.0-rc.1" -"@abp/datatables.net-bs5@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.2.0-rc.2.tgz#df5cbe004ba3a2330cc667b3724440c4881cc6b2" - integrity sha512-Q2Sy6MMWM3EuELHeHxKkDflPTX09ictonjB5vn/Cau2PHuOkWTnL0Ystl91a1DetQIa1ejJL/YB+Pz1TUVoUNA== +"@abp/datatables.net-bs5@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.0-rc.1.tgz#ca624d788acdcc547d0bdf1f76ba3ffc105dfd52" + integrity sha512-uyFBkD9rM3wGve0ZKrr7bEbC0Z/ywi8S/EYL6GwLzGNtogSsVj5HGtSvifKjCBn7KmAvo54skKoVgVEn77dlWQ== dependencies: - "@abp/datatables.net" "~5.2.0-rc.2" + "@abp/datatables.net" "~5.3.0-rc.1" datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.2.0-rc.2.tgz#bfdc01302d19eab0d73eff908238bf88c5806e74" - integrity sha512-TG1b8moW4RqCyNtzQKB7RnCmDt1cDEy/5WD++Maz2x4/yvu1uBBa6qLR7Mn6UNgoC51Y/op+LzaabkwXUSJl4w== +"@abp/datatables.net@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.3.0-rc.1.tgz#38c0f6323f7e6305a50f7de9885b8a3f440cdf15" + integrity sha512-lecJ9Yelgey/nfSscsUHET0gyB6pZgkhnJXu3u8d9XhV2M5sc/WSnnCO3bgVBqMDImprR4GFPFw2cUlWkb8QBg== dependencies: - "@abp/jquery" "~5.2.0-rc.2" + "@abp/jquery" "~5.3.0-rc.1" datatables.net "^1.11.4" -"@abp/font-awesome@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.2.0-rc.2.tgz#0292cb22c0280dccfe148ad3d46947ede26f8b14" - integrity sha512-FzjH/lnAglswqU7/YAXZP0H/ocGBrDkegMiQ7OjzZVcgGPS9BnqRPbiHDz7mjBHaQHzBtTCcZrXnU0l3GXCdbw== +"@abp/font-awesome@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.3.0-rc.1.tgz#de14dca2b33fdc098d2325c5047e030a3927bfa9" + integrity sha512-tIuDwo+L5CuLpQ+ARsaTYmxuqpSJLqcaXuoFfk6JAC20bw881t7y8w4xWy1PUs0+SEQwTT7diZjQrcA/xxlMUQ== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.2.0-rc.2.tgz#797e3b72a91435d74f19ddaa9b2e6e04fcfed616" - integrity sha512-cVbReCeM5q7nqeQDjSIH7VmuMwX8lE36D9sariUw8xSUn5GJlnrGYNV4kE7G9JLIlIRanIlS3SPuA3RFA2z9ZA== +"@abp/jquery-form@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.3.0-rc.1.tgz#0a363d8e4814651e0c46e2109d19dcc84fc884b0" + integrity sha512-IWazO6BW5rHJ+ODk4haEqWzfzHvbxtW2+T1o534Lr7d+LI9yabNiQmRZ24yzNDb6SmRvDUVsumZ+lxPn2WBhIw== dependencies: - "@abp/jquery" "~5.2.0-rc.2" + "@abp/jquery" "~5.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.2.0-rc.2.tgz#ec0c22cecef3016c1da0b8dca4374a263915a835" - integrity sha512-b+ttLlnRPgDB7V2tnYp8+1Q3niM4ZmiU/ZaQB4z6gSMk/2tPAIhOOwAQt7DYRWSMUsgGFI0NvsgEBM9aLTikFA== +"@abp/jquery-validation-unobtrusive@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.0-rc.1.tgz#0aa2a5535acd79b5288ef04a0dc1b83a7a57b4b9" + integrity sha512-Qv/+nrd+ZeUs/2mCMahpQFqEguMOcmHrLg7hcw0LgcHr+MmEcG4WDcijTY6suFyekaf0DZD6vsFZjdvZmhsVYQ== dependencies: - "@abp/jquery-validation" "~5.2.0-rc.2" + "@abp/jquery-validation" "~5.3.0-rc.1" jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.2.0-rc.2.tgz#a98383e6c7fb21b74ecde937c25d7fa46810a333" - integrity sha512-6lVxJyMfL0kHmv8tpxLhVfK0Rf+qjLMPkm1qHd0pSwvH+GM0QMN39s9TaexCvH3QO70BlEnwXJ2PWVY9OQY5uw== +"@abp/jquery-validation@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.3.0-rc.1.tgz#d05afbe0209c0815afe3a7cb0cf811256e9905fc" + integrity sha512-3DoRX6c8duRx1/g7MFuPAO/qesJCFqbVbw+x0+QnKmCkVZmz5VFAqdO9yFMxDFRbBAtyp7faaarc0lOtAcBsoA== dependencies: - "@abp/jquery" "~5.2.0-rc.2" + "@abp/jquery" "~5.3.0-rc.1" jquery-validation "^1.19.3" -"@abp/jquery@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.2.0-rc.2.tgz#3235b92834cbca4d3e22fb0b19122aa2a24b8262" - integrity sha512-u7xpQcaMpzlXq018qBdzwWmPx+65QHPq5VhI7aAvZAUlQrvQjiiCeG25egxOeCL0aROcCjsAlnTItT1U/q9loQ== +"@abp/jquery@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.3.0-rc.1.tgz#26e5d5761f2629d02b2534ad964080221d536308" + integrity sha512-//bqInarV6XOs8+I5GW1q/c05sjnCq/Z0vuzFW1i1NDrQ2Q5kqF5leMV9hhGEZmfR+yG1T0MsbVvueieRkV/cA== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" jquery "~3.6.0" -"@abp/lodash@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.2.0-rc.2.tgz#e55f11279d4f374785a56ec68ed99cdf2495a9aa" - integrity sha512-BR6d1NbTcuk772RK8VdeHBokbqZ1OHUgRKdPG3MXlDGKZmUS4/ijFdRiIvo7Rd0WFqgk2QdbHw3lfKQ/CGqyhw== +"@abp/lodash@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.3.0-rc.1.tgz#c53304fbd9b1c885a9a812c681c3698dd8ecea47" + integrity sha512-yBvUB05z/SSEEbZ79nFfb0cKwWVFbrt9OtUkQHy9ER7ip0R9escG2n1djFtAA33yZr/NLzSUh+vVBYsEhk8MOA== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" lodash "^4.17.21" -"@abp/luxon@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.2.0-rc.2.tgz#0d263482b9a73269164a8a58562ce8bd69b57f36" - integrity sha512-KIhpvl9kf43Bc/E/u6bmb1lp0asf81NoUoERQTRz7JqmH1XYJvJCqGHxommvItcu7zNjCLL6FK/JtO0v7DUiEw== +"@abp/luxon@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.3.0-rc.1.tgz#bcb4de01b20a8e4da8db186e88fdebfcde47fb8f" + integrity sha512-SLozcDvCL/2jyvG2ZU+DHjzbfHYdmwiRjWu7gWyNjaY2e6D3NraHHjpMQ7ubObXZRlhhvfcp0i6eeKKoZNJtEQ== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.2.0-rc.2.tgz#5136c0d59d5d385350f560c6d8a3d10f6393dea7" - integrity sha512-7Q8yZbU9YRA5/Y+rRLLiPD724rjfrVBuCpfp1+b99LyeFTFTSD2oNG3r/I6FC7tE5HLaFscJLJyOca4GPS1mww== +"@abp/malihu-custom-scrollbar-plugin@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.0-rc.1.tgz#398181c7c6cc1805544e7a1ccd0423ed96005e0b" + integrity sha512-KZar881wtotKc+1bqDlBWo2vLUEeeqEpMBg8+BiXsGofp5ovudifVPM6mHZ9Gi29U9LAMyI0VEGwLJctgB/UoA== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.2.0-rc.2.tgz#2eef30442957ac02133357604a1256e995a9ebe7" - integrity sha512-1cFOavpWP6zRfrpXi0zozFkL6W0tEEBkWj7AiHU3AGctAQEZ0qWGKSTIExqnEsDb3LsjAKMdBycGdkLFbK97Og== +"@abp/select2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.3.0-rc.1.tgz#b2ce00b6545674d6bccc10fdfe4626a4598a0cdc" + integrity sha512-frE5jia7bBdZinW4LqD5JR+wknWu2ARX3L3pPiQ080ulB+P58gRj07ZPd1BWgRcvutnuANYyP9rZtDA18Ls+9Q== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.2.0-rc.2.tgz#15b6718b1378e8bd7e0ea019b965e7b51f0cb1ea" - integrity sha512-1ROKcfpu0Xyk7ebUFMNBhFgENcHCMj48+1Lj/OxdJH3U7KhyF5WEs54uYgn8EvY2wTCgOkHCnqeK9bRCp5M9+g== +"@abp/sweetalert2@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.3.0-rc.1.tgz#6eb10b257e7f256da64ff6fe248a370671a26920" + integrity sha512-g9nddGcDGaG6EmjX7qpRcLzy3F38BTtFc0RBWApH7Da1o/LMYFYa6xGfS7ouIynZBM9j/BRP12CVTR+Y9qqbGg== dependencies: - "@abp/core" "~5.2.0-rc.2" + "@abp/core" "~5.3.0-rc.1" sweetalert2 "^11.3.6" -"@abp/timeago@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.2.0-rc.2.tgz#e6ad0cb584515b95e47258976d726fd996b7f47d" - integrity sha512-D9Y7xfpP6neURDkP/WMrFh25G++0SUiGIDaCIElgymhNdVp2gm9pC633ShetMOFrPCSuOUvlzC2p4YkUdq0Lnw== +"@abp/timeago@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.3.0-rc.1.tgz#2702a0f22db52dbf4c0717e4abcd317c56d10563" + integrity sha512-XRc4D98FIZR0YTXIoV0+OxVJTdixtNDiwatZRffopHT4Kpptmpj6O9KMcB4SngCH99/TrUFdEUnA2CgszxiEOA== dependencies: - "@abp/jquery" "~5.2.0-rc.2" + "@abp/jquery" "~5.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.2.0-rc.2.tgz#b5f013f1f00dab648da2fe1cf4ece6691e6eafc7" - integrity sha512-FSkva7zP3kJFSh6SlmvrgjPFJscJbmrgCilxGxPGVxlg5p9LNORgkotNk2yKsGHX0F0rnKJ4kHepTq7g+oGMdw== +"@abp/toastr@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.3.0-rc.1.tgz#ec3a3d302ac91d5393c3caeb8b4884ad811b6edb" + integrity sha512-InZweYuBkrNZNBQKp6A+6gxGdO/lB0XsrXaa+CIVe55p8aNJPzE0mnvSfKWhN5G273wR08AD9RjR22kYS+bgFA== dependencies: - "@abp/jquery" "~5.2.0-rc.2" + "@abp/jquery" "~5.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@~5.2.0-rc.2": - version "5.2.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.2.0-rc.2.tgz#1280059ff3e948ae0827eaf06d916e5a90f8907b" - integrity sha512-/mo4dSXPkhCEbqyKunuURcF1cEzuJqRTPOGpjSrjDwOgymVSWp/AqqjJPBXuc4qrMfB4q9y+Iod5nslXp2cXeA== +"@abp/utils@~5.3.0-rc.1": + version "5.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.3.0-rc.1.tgz#3fa758944e7325e7b3f528141e03bb71f8e04d24" + integrity sha512-/8BTYZomNMdy+RpYXWLp5dg0lRhmfiguciZEVWo4qRw1lCXm/JR+0842XT1XYE1dQ4orNNJ3/H86eRX8Ab6Yfg== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index aa6e9dd689..f7c2ea234d 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index 6657fa42f4..c54db160e0 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 2800b17595..7c0d168034 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -14,7 +14,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index 1840044e4c..66d5efd55e 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -21,8 +21,8 @@ - - + + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json index 9214292fa9..2f15714af3 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/appsettings.json @@ -8,11 +8,10 @@ "Default": { "GrantType": "password", "ClientId": "MyProjectName_App", - "ClientSecret": "1q2w3e*", "UserName": "admin", "UserPassword": "1q2w3E*", "Authority": "https://localhost:44301", "Scope": "MyProjectName" } } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index cba983970a..368d378885 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 2580f1c57e..57ea860a60 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -15,12 +15,12 @@ - - + + - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs index fdd6bad274..924ee6eb79 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyProjectNameTestBaseModule.cs @@ -4,7 +4,6 @@ using Volo.Abp.Authorization; using Volo.Abp.Autofac; using Volo.Abp.BackgroundJobs; using Volo.Abp.Data; -using Volo.Abp.IdentityServer; using Volo.Abp.Modularity; using Volo.Abp.Threading; @@ -20,15 +19,7 @@ public class MyProjectNameTestBaseModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { - PreConfigure(options => - { - options.AddDeveloperSigningCredential = false; - }); - PreConfigure(identityServerBuilder => - { - identityServerBuilder.AddDeveloperSigningCredential(false, System.Guid.NewGuid().ToString()); - }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj index 2d98f18334..b9aad6bf1d 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests/MyCompanyName.MyProjectName.Web.Tests.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index a2041bf970..b79488f83f 100644 --- a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -12,11 +12,11 @@ - - + + - + diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 238087df41..f05c8b9514 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,14 +15,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.3.0-rc.1", - "@abp/ng.components": "~5.3.0-rc.1", - "@abp/ng.core": "~5.3.0-rc.1", - "@abp/ng.identity": "~5.3.0-rc.1", - "@abp/ng.setting-management": "~5.3.0-rc.1", - "@abp/ng.tenant-management": "~5.3.0-rc.1", - "@abp/ng.theme.basic": "~5.3.0-rc.1", - "@abp/ng.theme.shared": "~5.3.0-rc.1", + "@abp/ng.account": "~5.3.0-rc.2", + "@abp/ng.components": "~5.3.0-rc.2", + "@abp/ng.core": "~5.3.0-rc.2", + "@abp/ng.identity": "~5.3.0-rc.2", + "@abp/ng.setting-management": "~5.3.0-rc.2", + "@abp/ng.tenant-management": "~5.3.0-rc.2", + "@abp/ng.theme.basic": "~5.3.0-rc.2", + "@abp/ng.theme.shared": "~5.3.0-rc.2", "@angular/animations": "~13.3.3", "@angular/common": "~13.3.3", "@angular/compiler": "~13.3.3", @@ -37,7 +37,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~5.3.0-rc.1", + "@abp/ng.schematics": "~5.3.0-rc.2", "@angular-devkit/build-angular": "~13.3.3", "@angular-eslint/builder": "~13.2.1", "@angular-eslint/eslint-plugin": "~13.2.1", @@ -62,4 +62,4 @@ "symlink-manager": "^1.5.0", "typescript": "~4.5.4" } -} \ No newline at end of file +} diff --git a/templates/module/angular/projects/dev-app/src/environments/environment.prod.ts b/templates/module/angular/projects/dev-app/src/environments/environment.prod.ts index d6600f0c17..7706947e07 100644 --- a/templates/module/angular/projects/dev-app/src/environments/environment.prod.ts +++ b/templates/module/angular/projects/dev-app/src/environments/environment.prod.ts @@ -10,7 +10,7 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44301', + issuer: 'https://localhost:44301/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', diff --git a/templates/module/angular/projects/dev-app/src/environments/environment.ts b/templates/module/angular/projects/dev-app/src/environments/environment.ts index 5d7e2a9fc6..ab069ea43c 100644 --- a/templates/module/angular/projects/dev-app/src/environments/environment.ts +++ b/templates/module/angular/projects/dev-app/src/environments/environment.ts @@ -10,11 +10,11 @@ export const environment = { logoUrl: '', }, oAuthConfig: { - issuer: 'https://localhost:44301', + issuer: 'https://localhost:44301/', redirectUri: baseUrl, clientId: 'MyProjectName_App', responseType: 'code', - scope: 'offline_access MyProjectName role email openid profile', + scope: 'offline_access MyProjectName', requireHttps: true }, apis: { diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index e446c98dd0..ca3c1b07be 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": ">=9", "@angular/core": ">=9", - "@abp/ng.core": ">=5.3.0-rc.1", - "@abp/ng.theme.shared": ">=5.3.0-rc.1" + "@abp/ng.core": ">=5.3.0-rc.2", + "@abp/ng.theme.shared": ">=5.3.0-rc.2" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/.gitignore b/templates/module/aspnet-core/.gitignore index 66f786f733..890ddb8e15 100644 --- a/templates/module/aspnet-core/.gitignore +++ b/templates/module/aspnet-core/.gitignore @@ -252,7 +252,7 @@ paket-files/ *.sln.iml # MyProjectName -host/MyCompanyName.MyProjectName.IdentityServer/Logs/logs.txt +host/MyCompanyName.MyProjectName.AuthServer/Logs/logs.txt host/MyCompanyName.MyProjectName.HttpApi.Host/Logs/logs.txt host/MyCompanyName.MyProjectName.Web.Host/Logs/logs.txt host/MyCompanyName.MyProjectName.Web.Unified/Logs/logs.txt diff --git a/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json index da22f33234..86d90a47ab 100644 --- a/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json +++ b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json @@ -75,8 +75,8 @@ "path": "host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.abppkg.json", "folder": "host" }, - "MyCompanyName.MyProjectName.IdentityServer": { - "path": "host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json", + "MyCompanyName.MyProjectName.AuthServer": { + "path": "host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.abppkg.json", "folder": "host" }, "MyCompanyName.MyProjectName.Host.Shared": { @@ -108,4 +108,4 @@ "folder": "host" } } -} \ No newline at end of file +} diff --git a/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln b/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln index 6541e3d020..47ef007b1a 100644 --- a/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln +++ b/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln @@ -43,7 +43,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Web.Host", "host\MyCompanyName.MyProjectName.Web.Host\MyCompanyName.MyProjectName.Web.Host.csproj", "{73513786-B6C6-4A21-89C5-0FBDD0A46107}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.IdentityServer", "host\MyCompanyName.MyProjectName.IdentityServer\MyCompanyName.MyProjectName.IdentityServer.csproj", "{690203F4-3CD5-4569-88D9-EE831EEA5F5F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.AuthServer", "host\MyCompanyName.MyProjectName.AuthServer\MyCompanyName.MyProjectName.AuthServer.csproj", "{690203F4-3CD5-4569-88D9-EE831EEA5F5F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MyCompanyName.MyProjectName.Host.Shared", "host\MyCompanyName.MyProjectName.Host.Shared\MyCompanyName.MyProjectName.Host.Shared.csproj", "{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}" EndProject diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Dockerfile b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile similarity index 84% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Dockerfile rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile index 8d0d75895a..124bc510e6 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Dockerfile +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Dockerfile @@ -5,7 +5,7 @@ EXPOSE 80 FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build WORKDIR /src COPY . . -WORKDIR /src/templates/service/host/MyCompanyName.MyProjectName.IdentityServer +WORKDIR /src/templates/service/host/MyCompanyName.MyProjectName.AuthServer RUN dotnet restore -nowarn:msb3202,nu1503 RUN dotnet build --no-restore -c Release -o /app @@ -15,4 +15,4 @@ RUN dotnet publish --no-restore -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . -ENTRYPOINT ["dotnet", "MyCompanyName.MyProjectName.IdentityServer.dll"] +ENTRYPOINT ["dotnet", "MyCompanyName.MyProjectName.AuthServer.dll"] diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/EntityFrameworkCore/IdentityServerHostMigrationsDbContext.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/EntityFrameworkCore/AuthServerDbContext.cs similarity index 74% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/EntityFrameworkCore/IdentityServerHostMigrationsDbContext.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/EntityFrameworkCore/AuthServerDbContext.cs index 3b04ddd4bb..6d51491a77 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/EntityFrameworkCore/IdentityServerHostMigrationsDbContext.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/EntityFrameworkCore/AuthServerDbContext.cs @@ -3,16 +3,16 @@ using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.TenantManagement.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.EntityFrameworkCore; -public class IdentityServerHostMigrationsDbContext : AbpDbContext +public class AuthServerDbContext : AbpDbContext { - public IdentityServerHostMigrationsDbContext(DbContextOptions options) + public AuthServerDbContext(DbContextOptions options) : base(options) { @@ -26,7 +26,7 @@ public class IdentityServerHostMigrationsDbContext : AbpDbContext +public class AuthServerDbContextFactory : IDesignTimeDbContextFactory { - public IdentityServerHostMigrationsDbContext CreateDbContext(string[] args) + public AuthServerDbContext CreateDbContext(string[] args) { var configuration = BuildConfiguration(); - var builder = new DbContextOptionsBuilder() + var builder = new DbContextOptionsBuilder() .UseSqlServer(configuration.GetConnectionString("Default")); - return new IdentityServerHostMigrationsDbContext(builder.Options); + return new AuthServerDbContext(builder.Options); } private static IConfigurationRoot BuildConfiguration() diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/FodyWeavers.xml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/FodyWeavers.xml similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/FodyWeavers.xml rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/FodyWeavers.xml diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/FodyWeavers.xsd b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/FodyWeavers.xsd similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/FodyWeavers.xsd rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/FodyWeavers.xsd diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs new file mode 100644 index 0000000000..77eab9db55 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.Designer.cs @@ -0,0 +1,1597 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using MyCompanyName.MyProjectName.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + +#nullable disable + +namespace MyCompanyName.MyProjectName.Migrations +{ + [DbContext(typeof(AuthServerDbContext))] + [Migration("20220520080813_Initial")] + partial class Initial + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer) + .HasAnnotation("ProductVersion", "6.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)") + .HasColumnName("ApplicationName"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("BrowserInfo"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientId"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ClientIpAddress"); + + b.Property("ClientName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("ClientName"); + + b.Property("Comments") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Comments"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("CorrelationId"); + + b.Property("Exceptions") + .HasColumnType("nvarchar(max)"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("HttpMethod") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("HttpMethod"); + + b.Property("HttpStatusCode") + .HasColumnType("int") + .HasColumnName("HttpStatusCode"); + + b.Property("ImpersonatorTenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorTenantId"); + + b.Property("ImpersonatorTenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("ImpersonatorTenantName"); + + b.Property("ImpersonatorUserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("ImpersonatorUserId"); + + b.Property("ImpersonatorUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ImpersonatorUserName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("TenantName"); + + b.Property("Url") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Url"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasColumnName("UserId"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "ExecutionTime"); + + b.HasIndex("TenantId", "UserId", "ExecutionTime"); + + b.ToTable("AbpAuditLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ExecutionDuration") + .HasColumnType("int") + .HasColumnName("ExecutionDuration"); + + b.Property("ExecutionTime") + .HasColumnType("datetime2") + .HasColumnName("ExecutionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("MethodName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("MethodName"); + + b.Property("Parameters") + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasColumnName("Parameters"); + + b.Property("ServiceName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("ServiceName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "ServiceName", "MethodName", "ExecutionTime"); + + b.ToTable("AbpAuditLogActions", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AuditLogId") + .HasColumnType("uniqueidentifier") + .HasColumnName("AuditLogId"); + + b.Property("ChangeTime") + .HasColumnType("datetime2") + .HasColumnName("ChangeTime"); + + b.Property("ChangeType") + .HasColumnType("tinyint") + .HasColumnName("ChangeType"); + + b.Property("EntityId") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityId"); + + b.Property("EntityTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("EntityTypeFullName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("EntityTypeFullName"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("AuditLogId"); + + b.HasIndex("TenantId", "EntityTypeFullName", "EntityId"); + + b.ToTable("AbpEntityChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("EntityChangeId") + .HasColumnType("uniqueidentifier"); + + b.Property("NewValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("NewValue"); + + b.Property("OriginalValue") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)") + .HasColumnName("OriginalValue"); + + b.Property("PropertyName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("PropertyName"); + + b.Property("PropertyTypeFullName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("PropertyTypeFullName"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("EntityChangeId"); + + b.ToTable("AbpEntityPropertyChanges", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.FeatureManagement.FeatureValue", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpFeatureValues", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityClaimType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("Description") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsStatic") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("Regex") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("RegexDescription") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("Required") + .HasColumnType("bit"); + + b.Property("ValueType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("AbpClaimTypes", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityLinkUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("SourceTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetTenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("TargetUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("SourceUserId", "SourceTenantId", "TargetUserId", "TargetTenantId") + .IsUnique() + .HasFilter("[SourceTenantId] IS NOT NULL AND [TargetTenantId] IS NOT NULL"); + + b.ToTable("AbpLinkUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDefault") + .HasColumnType("bit") + .HasColumnName("IsDefault"); + + b.Property("IsPublic") + .HasColumnType("bit") + .HasColumnName("IsPublic"); + + b.Property("IsStatic") + .HasColumnType("bit") + .HasColumnName("IsStatic"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName"); + + b.ToTable("AbpRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AbpRoleClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentitySecurityLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Action") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("ApplicationName") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("BrowserInfo") + .HasMaxLength(512) + .HasColumnType("nvarchar(512)"); + + b.Property("ClientId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ClientIpAddress") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CorrelationId") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("Identity") + .HasMaxLength(96) + .HasColumnType("nvarchar(96)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TenantName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Action"); + + b.HasIndex("TenantId", "ApplicationName"); + + b.HasIndex("TenantId", "Identity"); + + b.HasIndex("TenantId", "UserId"); + + b.ToTable("AbpSecurityLogs", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("AccessFailedCount") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0) + .HasColumnName("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("Email"); + + b.Property("EmailConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("EmailConfirmed"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsActive") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("IsExternal") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsExternal"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("LockoutEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("LockoutEnabled"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Name"); + + b.Property("NormalizedEmail") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedEmail"); + + b.Property("NormalizedUserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("NormalizedUserName"); + + b.Property("PasswordHash") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("PasswordHash"); + + b.Property("PhoneNumber") + .HasMaxLength(16) + .HasColumnType("nvarchar(16)") + .HasColumnName("PhoneNumber"); + + b.Property("PhoneNumberConfirmed") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("PhoneNumberConfirmed"); + + b.Property("SecurityStamp") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("SecurityStamp"); + + b.Property("Surname") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)") + .HasColumnName("Surname"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("TwoFactorEnabled") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("TwoFactorEnabled"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)") + .HasColumnName("UserName"); + + b.HasKey("Id"); + + b.HasIndex("Email"); + + b.HasIndex("NormalizedEmail"); + + b.HasIndex("NormalizedUserName"); + + b.HasIndex("UserName"); + + b.ToTable("AbpUsers", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClaimType") + .IsRequired() + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("ClaimValue") + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AbpUserClaims", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderDisplayName") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(196) + .HasColumnType("nvarchar(196)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "LoginProvider"); + + b.HasIndex("LoginProvider", "ProviderKey"); + + b.ToTable("AbpUserLogins", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "UserId"); + + b.HasIndex("UserId", "OrganizationUnitId"); + + b.ToTable("AbpUserOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId", "UserId"); + + b.ToTable("AbpUserRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("LoginProvider") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Name") + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AbpUserTokens", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(95) + .HasColumnType("nvarchar(95)") + .HasColumnName("Code"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)") + .HasColumnName("DisplayName"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("Code"); + + b.HasIndex("ParentId"); + + b.ToTable("AbpOrganizationUnits", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.Property("OrganizationUnitId") + .HasColumnType("uniqueidentifier"); + + b.Property("RoleId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("OrganizationUnitId", "RoleId"); + + b.HasIndex("RoleId", "OrganizationUnitId"); + + b.ToTable("AbpOrganizationUnitRoles", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ClientId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Permissions") + .HasColumnType("nvarchar(max)"); + + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); + + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ClientId"); + + b.ToTable("OpenIddictApplications", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); + + b.ToTable("OpenIddictAuthorizations", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasColumnType("nvarchar(max)"); + + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .HasMaxLength(200) + .HasColumnType("nvarchar(200)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Resources") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationDate") + .HasColumnType("datetime2"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); + + b.ToTable("OpenIddictTokens", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("TenantId", "Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[TenantId] IS NOT NULL"); + + b.ToTable("AbpPermissionGrants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("nvarchar(128)"); + + b.Property("ProviderKey") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("ProviderName") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(2048) + .HasColumnType("nvarchar(2048)"); + + b.HasKey("Id"); + + b.HasIndex("Name", "ProviderName", "ProviderKey") + .IsUnique() + .HasFilter("[ProviderName] IS NOT NULL AND [ProviderKey] IS NOT NULL"); + + b.ToTable("AbpSettings", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.HasKey("Id"); + + b.HasIndex("Name"); + + b.ToTable("AbpTenants", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.Property("TenantId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .HasMaxLength(64) + .HasColumnType("nvarchar(64)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1024) + .HasColumnType("nvarchar(1024)"); + + b.HasKey("TenantId", "Name"); + + b.ToTable("AbpTenantConnectionStrings", (string)null); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("Actions") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) + .WithMany("EntityChanges") + .HasForeignKey("AuditLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityPropertyChange", b => + { + b.HasOne("Volo.Abp.AuditLogging.EntityChange", null) + .WithMany("PropertyChanges") + .HasForeignKey("EntityChangeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRoleClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany("Claims") + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserClaim", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Claims") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserLogin", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Logins") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserOrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("OrganizationUnits") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b => + { + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Roles") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUserToken", b => + { + b.HasOne("Volo.Abp.Identity.IdentityUser", null) + .WithMany("Tokens") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany() + .HasForeignKey("ParentId"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnitRole", b => + { + b.HasOne("Volo.Abp.Identity.OrganizationUnit", null) + .WithMany("Roles") + .HasForeignKey("OrganizationUnitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Volo.Abp.Identity.IdentityRole", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => + { + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); + }); + + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => + { + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); + + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => + { + b.HasOne("Volo.Abp.TenantManagement.Tenant", null) + .WithMany("ConnectionStrings") + .HasForeignKey("TenantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => + { + b.Navigation("Actions"); + + b.Navigation("EntityChanges"); + }); + + modelBuilder.Entity("Volo.Abp.AuditLogging.EntityChange", b => + { + b.Navigation("PropertyChanges"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityRole", b => + { + b.Navigation("Claims"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.IdentityUser", b => + { + b.Navigation("Claims"); + + b.Navigation("Logins"); + + b.Navigation("OrganizationUnits"); + + b.Navigation("Roles"); + + b.Navigation("Tokens"); + }); + + modelBuilder.Entity("Volo.Abp.Identity.OrganizationUnit", b => + { + b.Navigation("Roles"); + }); + + modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => + { + b.Navigation("ConnectionStrings"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs similarity index 60% rename from templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs index 61dd143293..4a83874cba 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Migrations/20220119015238_Initial.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/20220520080813_Initial.cs @@ -256,16 +256,21 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResources", + name: "OpenIddictApplications", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - AllowedAccessTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + ClientId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + ClientSecret = table.Column(type: "nvarchar(max)", nullable: true), + ConsentType = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Permissions = table.Column(type: "nvarchar(max)", nullable: true), + PostLogoutRedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedirectUris = table.Column(type: "nvarchar(max)", nullable: true), + Requirements = table.Column(type: "nvarchar(max)", nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -278,130 +283,21 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerApiResources", x => x.Id); + table.PrimaryKey("PK_OpenIddictApplications", x => x.Id); }); migrationBuilder.CreateTable( - name: "IdentityServerApiScopes", + name: "OpenIddictScopes", columns: table => new { Id = table.Column(type: "uniqueidentifier", nullable: false), - Enabled = table.Column(type: "bit", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClients", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ClientName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - ClientUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - LogoUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - ProtocolType = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - RequireClientSecret = table.Column(type: "bit", nullable: false), - RequireConsent = table.Column(type: "bit", nullable: false), - AllowRememberConsent = table.Column(type: "bit", nullable: false), - AlwaysIncludeUserClaimsInIdToken = table.Column(type: "bit", nullable: false), - RequirePkce = table.Column(type: "bit", nullable: false), - AllowPlainTextPkce = table.Column(type: "bit", nullable: false), - RequireRequestObject = table.Column(type: "bit", nullable: false), - AllowAccessTokensViaBrowser = table.Column(type: "bit", nullable: false), - FrontChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - FrontChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - BackChannelLogoutUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - BackChannelLogoutSessionRequired = table.Column(type: "bit", nullable: false), - AllowOfflineAccess = table.Column(type: "bit", nullable: false), - IdentityTokenLifetime = table.Column(type: "int", nullable: false), - AllowedIdentityTokenSigningAlgorithms = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - AccessTokenLifetime = table.Column(type: "int", nullable: false), - AuthorizationCodeLifetime = table.Column(type: "int", nullable: false), - ConsentLifetime = table.Column(type: "int", nullable: true), - AbsoluteRefreshTokenLifetime = table.Column(type: "int", nullable: false), - SlidingRefreshTokenLifetime = table.Column(type: "int", nullable: false), - RefreshTokenUsage = table.Column(type: "int", nullable: false), - UpdateAccessTokenClaimsOnRefresh = table.Column(type: "bit", nullable: false), - RefreshTokenExpiration = table.Column(type: "int", nullable: false), - AccessTokenType = table.Column(type: "int", nullable: false), - EnableLocalLogin = table.Column(type: "bit", nullable: false), - IncludeJwtId = table.Column(type: "bit", nullable: false), - AlwaysSendClientClaims = table.Column(type: "bit", nullable: false), - ClientClaimsPrefix = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - PairWiseSubjectSalt = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - UserSsoLifetime = table.Column(type: "int", nullable: true), - UserCodeType = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - DeviceCodeLifetime = table.Column(type: "int", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true), - LastModificationTime = table.Column(type: "datetime2", nullable: true), - LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), - IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), - DeleterId = table.Column(type: "uniqueidentifier", nullable: true), - DeletionTime = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClients", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerDeviceFlowCodes", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - DeviceCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - UserCode = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: false), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - CreatorId = table.Column(type: "uniqueidentifier", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerDeviceFlowCodes", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResources", - columns: table => new - { - Id = table.Column(type: "uniqueidentifier", nullable: false), - Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - DisplayName = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Enabled = table.Column(type: "bit", nullable: false), - Required = table.Column(type: "bit", nullable: false), - Emphasize = table.Column(type: "bit", nullable: false), - ShowInDiscoveryDocument = table.Column(type: "bit", nullable: false), + Description = table.Column(type: "nvarchar(max)", nullable: true), + Descriptions = table.Column(type: "nvarchar(max)", nullable: true), + DisplayName = table.Column(type: "nvarchar(max)", nullable: true), + DisplayNames = table.Column(type: "nvarchar(max)", nullable: true), + Name = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Resources = table.Column(type: "nvarchar(max)", nullable: true), ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), CreationTime = table.Column(type: "datetime2", nullable: false), @@ -414,30 +310,7 @@ namespace MyCompanyName.MyProjectName.Migrations }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResources", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerPersistedGrants", - columns: table => new - { - Key = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), - SubjectId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - SessionId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), - ClientId = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - Description = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: true), - CreationTime = table.Column(type: "datetime2", nullable: false), - Expiration = table.Column(type: "datetime2", nullable: true), - ConsumedTime = table.Column(type: "datetime2", nullable: true), - Data = table.Column(type: "nvarchar(max)", maxLength: 50000, nullable: false), - Id = table.Column(type: "uniqueidentifier", nullable: false), - ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), - ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerPersistedGrants", x => x.Key); + table.PrimaryKey("PK_OpenIddictScopes", x => x.Id); }); migrationBuilder.CreateTable( @@ -673,320 +546,35 @@ namespace MyCompanyName.MyProjectName.Migrations }); migrationBuilder.CreateTable( - name: "IdentityServerApiResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceClaims", x => new { x.ApiResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceClaims_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceProperties", + name: "OpenIddictAuthorizations", columns: table => new { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceProperties", x => new { x.ApiResourceId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceProperties_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceScopes", - columns: table => new - { - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceScopes", x => new { x.ApiResourceId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceScopes_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiResourceSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ApiResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(1000)", maxLength: 1000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiResourceSecrets", x => new { x.ApiResourceId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiResourceSecrets_IdentityServerApiResources_ApiResourceId", - column: x => x.ApiResourceId, - principalTable: "IdentityServerApiResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeClaims", x => new { x.ApiScopeId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeClaims_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerApiScopeProperties", - columns: table => new - { - ApiScopeId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerApiScopeProperties", x => new { x.ApiScopeId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerApiScopeProperties_IdentityServerApiScopes_ApiScopeId", - column: x => x.ApiScopeId, - principalTable: "IdentityServerApiScopes", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientClaims", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientClaims", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientClaims_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientCorsOrigins", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Origin = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientCorsOrigins", x => new { x.ClientId, x.Origin }); - table.ForeignKey( - name: "FK_IdentityServerClientCorsOrigins_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientGrantTypes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - GrantType = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientGrantTypes", x => new { x.ClientId, x.GrantType }); - table.ForeignKey( - name: "FK_IdentityServerClientGrantTypes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientIdPRestrictions", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Provider = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientIdPRestrictions", x => new { x.ClientId, x.Provider }); - table.ForeignKey( - name: "FK_IdentityServerClientIdPRestrictions_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientPostLogoutRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - PostLogoutRedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientPostLogoutRedirectUris", x => new { x.ClientId, x.PostLogoutRedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientPostLogoutRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientProperties", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientProperties", x => new { x.ClientId, x.Key, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientProperties_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientRedirectUris", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - RedirectUri = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientRedirectUris", x => new { x.ClientId, x.RedirectUri }); - table.ForeignKey( - name: "FK_IdentityServerClientRedirectUris_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientScopes", - columns: table => new - { - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Scope = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientScopes", x => new { x.ClientId, x.Scope }); - table.ForeignKey( - name: "FK_IdentityServerClientScopes_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerClientSecrets", - columns: table => new - { - Type = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(4000)", maxLength: 4000, nullable: false), - ClientId = table.Column(type: "uniqueidentifier", nullable: false), - Description = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: true), - Expiration = table.Column(type: "datetime2", nullable: true) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerClientSecrets", x => new { x.ClientId, x.Type, x.Value }); - table.ForeignKey( - name: "FK_IdentityServerClientSecrets_IdentityServerClients_ClientId", - column: x => x.ClientId, - principalTable: "IdentityServerClients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceClaims", - columns: table => new - { - Type = table.Column(type: "nvarchar(200)", maxLength: 200, nullable: false), - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_IdentityServerIdentityResourceClaims", x => new { x.IdentityResourceId, x.Type }); - table.ForeignKey( - name: "FK_IdentityServerIdentityResourceClaims_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "IdentityServerIdentityResourceProperties", - columns: table => new - { - IdentityResourceId = table.Column(type: "uniqueidentifier", nullable: false), - Key = table.Column(type: "nvarchar(250)", maxLength: 250, nullable: false), - Value = table.Column(type: "nvarchar(2000)", maxLength: 2000, nullable: false) + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + Scopes = table.Column(type: "nvarchar(max)", nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) }, constraints: table => { - table.PrimaryKey("PK_IdentityServerIdentityResourceProperties", x => new { x.IdentityResourceId, x.Key, x.Value }); + table.PrimaryKey("PK_OpenIddictAuthorizations", x => x.Id); table.ForeignKey( - name: "FK_IdentityServerIdentityResourceProperties_IdentityServerIdentityResources_IdentityResourceId", - column: x => x.IdentityResourceId, - principalTable: "IdentityServerIdentityResources", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); + name: "FK_OpenIddictAuthorizations_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); }); migrationBuilder.CreateTable( @@ -1012,6 +600,47 @@ namespace MyCompanyName.MyProjectName.Migrations onDelete: ReferentialAction.Cascade); }); + migrationBuilder.CreateTable( + name: "OpenIddictTokens", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + ApplicationId = table.Column(type: "uniqueidentifier", nullable: true), + AuthorizationId = table.Column(type: "uniqueidentifier", nullable: true), + CreationDate = table.Column(type: "datetime2", nullable: true), + ExpirationDate = table.Column(type: "datetime2", nullable: true), + Payload = table.Column(type: "nvarchar(max)", nullable: true), + Properties = table.Column(type: "nvarchar(max)", nullable: true), + RedemptionDate = table.Column(type: "datetime2", nullable: true), + ReferenceId = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Status = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + Subject = table.Column(type: "nvarchar(400)", maxLength: 400, nullable: true), + Type = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + ExtraProperties = table.Column(type: "nvarchar(max)", nullable: true), + ConcurrencyStamp = table.Column(type: "nvarchar(40)", maxLength: 40, nullable: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_OpenIddictTokens", x => x.Id); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictApplications_ApplicationId", + column: x => x.ApplicationId, + principalTable: "OpenIddictApplications", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_OpenIddictTokens_OpenIddictAuthorizations_AuthorizationId", + column: x => x.AuthorizationId, + principalTable: "OpenIddictAuthorizations", + principalColumn: "Id"); + }); + migrationBuilder.CreateIndex( name: "IX_AbpAuditLogActions_AuditLogId", table: "AbpAuditLogActions", @@ -1166,40 +795,34 @@ namespace MyCompanyName.MyProjectName.Migrations column: "UserName"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerClients_ClientId", - table: "IdentityServerClients", + name: "IX_OpenIddictApplications_ClientId", + table: "OpenIddictApplications", column: "ClientId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_DeviceCode", - table: "IdentityServerDeviceFlowCodes", - column: "DeviceCode", - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_Expiration", - table: "IdentityServerDeviceFlowCodes", - column: "Expiration"); + name: "IX_OpenIddictAuthorizations_ApplicationId_Status_Subject_Type", + table: "OpenIddictAuthorizations", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerDeviceFlowCodes_UserCode", - table: "IdentityServerDeviceFlowCodes", - column: "UserCode"); + name: "IX_OpenIddictScopes_Name", + table: "OpenIddictScopes", + column: "Name"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_Expiration", - table: "IdentityServerPersistedGrants", - column: "Expiration"); + name: "IX_OpenIddictTokens_ApplicationId_Status_Subject_Type", + table: "OpenIddictTokens", + columns: new[] { "ApplicationId", "Status", "Subject", "Type" }); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_ClientId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type" }); + name: "IX_OpenIddictTokens_AuthorizationId", + table: "OpenIddictTokens", + column: "AuthorizationId"); migrationBuilder.CreateIndex( - name: "IX_IdentityServerPersistedGrants_SubjectId_SessionId_Type", - table: "IdentityServerPersistedGrants", - columns: new[] { "SubjectId", "SessionId", "Type" }); + name: "IX_OpenIddictTokens_ReferenceId", + table: "OpenIddictTokens", + column: "ReferenceId"); } protected override void Down(MigrationBuilder migrationBuilder) @@ -1253,61 +876,10 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUserTokens"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceClaims"); + name: "OpenIddictScopes"); migrationBuilder.DropTable( - name: "IdentityServerApiResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerApiResourceSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopeProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerClientCorsOrigins"); - - migrationBuilder.DropTable( - name: "IdentityServerClientGrantTypes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientIdPRestrictions"); - - migrationBuilder.DropTable( - name: "IdentityServerClientPostLogoutRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerClientRedirectUris"); - - migrationBuilder.DropTable( - name: "IdentityServerClientScopes"); - - migrationBuilder.DropTable( - name: "IdentityServerClientSecrets"); - - migrationBuilder.DropTable( - name: "IdentityServerDeviceFlowCodes"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceClaims"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResourceProperties"); - - migrationBuilder.DropTable( - name: "IdentityServerPersistedGrants"); + name: "OpenIddictTokens"); migrationBuilder.DropTable( name: "AbpEntityChanges"); @@ -1325,19 +897,13 @@ namespace MyCompanyName.MyProjectName.Migrations name: "AbpUsers"); migrationBuilder.DropTable( - name: "IdentityServerApiResources"); - - migrationBuilder.DropTable( - name: "IdentityServerApiScopes"); + name: "OpenIddictAuthorizations"); migrationBuilder.DropTable( - name: "IdentityServerClients"); - - migrationBuilder.DropTable( - name: "IdentityServerIdentityResources"); + name: "AbpAuditLogs"); migrationBuilder.DropTable( - name: "AbpAuditLogs"); + name: "OpenIddictApplications"); } } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/IdentityServerHostMigrationsDbContextModelSnapshot.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs similarity index 64% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/IdentityServerHostMigrationsDbContextModelSnapshot.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs index 1fdc81f268..8ca18548b6 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Migrations/IdentityServerHostMigrationsDbContextModelSnapshot.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Migrations/AuthServerDbContextModelSnapshot.cs @@ -11,8 +11,8 @@ using Volo.Abp.EntityFrameworkCore; namespace MyCompanyName.MyProjectName.Migrations { - [DbContext(typeof(IdentityServerHostMigrationsDbContext))] - partial class IdentityServerHostMigrationsDbContextModelSnapshot : ModelSnapshot + [DbContext(typeof(AuthServerDbContext))] + partial class AuthServerDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { @@ -929,322 +929,18 @@ namespace MyCompanyName.MyProjectName.Migrations b.ToTable("AbpOrganizationUnitRoles", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("AllowedAccessTokenSigningAlgorithms") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiResources", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Type"); - - b.ToTable("IdentityServerApiResourceClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiResourceId", "Key", "Value"); - - b.ToTable("IdentityServerApiResourceProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiResourceId", "Scope"); - - b.ToTable("IdentityServerApiResourceScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.Property("ApiResourceId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ApiResourceId", "Type", "Value"); - - b.ToTable("IdentityServerApiResourceSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("DeleterId") - .HasColumnType("uniqueidentifier") - .HasColumnName("DeleterId"); - - b.Property("DeletionTime") - .HasColumnType("datetime2") - .HasColumnName("DeletionTime"); - - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Emphasize") - .HasColumnType("bit"); - - b.Property("Enabled") - .HasColumnType("bit"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("IsDeleted") - .ValueGeneratedOnAdd() - .HasColumnType("bit") - .HasDefaultValue(false) - .HasColumnName("IsDeleted"); - - b.Property("LastModificationTime") - .HasColumnType("datetime2") - .HasColumnName("LastModificationTime"); - - b.Property("LastModifierId") - .HasColumnType("uniqueidentifier") - .HasColumnName("LastModifierId"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Required") - .HasColumnType("bit"); - - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("IdentityServerApiScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ApiScopeId", "Type"); - - b.ToTable("IdentityServerApiScopeClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.Property("ApiScopeId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ApiScopeId", "Key", "Value"); - - b.ToTable("IdentityServerApiScopeProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("AbsoluteRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenLifetime") - .HasColumnType("int"); - - b.Property("AccessTokenType") - .HasColumnType("int"); - - b.Property("AllowAccessTokensViaBrowser") - .HasColumnType("bit"); - - b.Property("AllowOfflineAccess") - .HasColumnType("bit"); - - b.Property("AllowPlainTextPkce") - .HasColumnType("bit"); - - b.Property("AllowRememberConsent") - .HasColumnType("bit"); - - b.Property("AllowedIdentityTokenSigningAlgorithms") + b.Property("ClientId") .HasMaxLength(100) .HasColumnType("nvarchar(100)"); - b.Property("AlwaysIncludeUserClaimsInIdToken") - .HasColumnType("bit"); - - b.Property("AlwaysSendClientClaims") - .HasColumnType("bit"); - - b.Property("AuthorizationCodeLifetime") - .HasColumnType("int"); - - b.Property("BackChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("BackChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("ClientClaimsPrefix") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ClientUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("ClientSecret") + .HasColumnType("nvarchar(max)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1252,8 +948,9 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsentLifetime") - .HasColumnType("int"); + b.Property("ConsentType") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); b.Property("CreationTime") .HasColumnType("datetime2") @@ -1271,36 +968,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("datetime2") .HasColumnName("DeletionTime"); - b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); - - b.Property("DeviceCodeLifetime") - .HasColumnType("int"); - - b.Property("EnableLocalLogin") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("FrontChannelLogoutSessionRequired") - .HasColumnType("bit"); - - b.Property("FrontChannelLogoutUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("IdentityTokenLifetime") - .HasColumnType("int"); - - b.Property("IncludeJwtId") - .HasColumnType("bit"); - b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("bit") @@ -1315,284 +992,40 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("uniqueidentifier") .HasColumnName("LastModifierId"); - b.Property("LogoUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("PairWiseSubjectSalt") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ProtocolType") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("RefreshTokenExpiration") - .HasColumnType("int"); - - b.Property("RefreshTokenUsage") - .HasColumnType("int"); - - b.Property("RequireClientSecret") - .HasColumnType("bit"); - - b.Property("RequireConsent") - .HasColumnType("bit"); - - b.Property("RequirePkce") - .HasColumnType("bit"); - - b.Property("RequireRequestObject") - .HasColumnType("bit"); - - b.Property("SlidingRefreshTokenLifetime") - .HasColumnType("int"); - - b.Property("UpdateAccessTokenClaimsOnRefresh") - .HasColumnType("bit"); - - b.Property("UserCodeType") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); - - b.Property("UserSsoLifetime") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.ToTable("IdentityServerClients", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientClaims", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Origin") - .HasMaxLength(150) - .HasColumnType("nvarchar(150)"); - - b.HasKey("ClientId", "Origin"); - - b.ToTable("IdentityServerClientCorsOrigins", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("GrantType") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.HasKey("ClientId", "GrantType"); - - b.ToTable("IdentityServerClientGrantTypes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Provider") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Provider"); - - b.ToTable("IdentityServerClientIdPRestrictions", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("PostLogoutRedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "PostLogoutRedirectUri"); - - b.ToTable("IdentityServerClientPostLogoutRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "Key", "Value"); - - b.ToTable("IdentityServerClientProperties", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("RedirectUri") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.HasKey("ClientId", "RedirectUri"); - - b.ToTable("IdentityServerClientRedirectUris", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Scope") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.HasKey("ClientId", "Scope"); - - b.ToTable("IdentityServerClientScopes", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => - { - b.Property("ClientId") - .HasColumnType("uniqueidentifier"); - - b.Property("Type") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); - - b.Property("Value") - .HasMaxLength(4000) - .HasColumnType("nvarchar(4000)"); - - b.Property("Description") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); - - b.Property("Expiration") - .HasColumnType("datetime2"); - - b.HasKey("ClientId", "Type", "Value"); - - b.ToTable("IdentityServerClientSecrets", (string)null); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Devices.DeviceFlowCodes", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("uniqueidentifier"); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("ConcurrencyStamp") - .IsConcurrencyToken() - .HasMaxLength(40) - .HasColumnType("nvarchar(40)") - .HasColumnName("ConcurrencyStamp"); - - b.Property("CreationTime") - .HasColumnType("datetime2") - .HasColumnName("CreationTime"); - - b.Property("CreatorId") - .HasColumnType("uniqueidentifier") - .HasColumnName("CreatorId"); - - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) + b.Property("Permissions") .HasColumnType("nvarchar(max)"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("DeviceCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); - - b.Property("Expiration") - .IsRequired() - .HasColumnType("datetime2"); - - b.Property("ExtraProperties") - .HasColumnType("nvarchar(max)") - .HasColumnName("ExtraProperties"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("PostLogoutRedirectUris") + .HasColumnType("nvarchar(max)"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("UserCode") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("RedirectUris") + .HasColumnType("nvarchar(max)"); - b.HasKey("Id"); + b.Property("Requirements") + .HasColumnType("nvarchar(max)"); - b.HasIndex("DeviceCode") - .IsUnique(); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("Expiration"); + b.HasKey("Id"); - b.HasIndex("UserCode"); + b.HasIndex("ClientId"); - b.ToTable("IdentityServerDeviceFlowCodes", (string)null); + b.ToTable("OpenIddictApplications", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.Grants.PersistedGrant", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.Property("Key") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() @@ -1600,56 +1033,69 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnType("nvarchar(40)") .HasColumnName("ConcurrencyStamp"); - b.Property("ConsumedTime") + b.Property("CreationDate") .HasColumnType("datetime2"); b.Property("CreationTime") - .HasColumnType("datetime2"); + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Data") - .IsRequired() - .HasMaxLength(50000) - .HasColumnType("nvarchar(max)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); - b.Property("Expiration") - .HasColumnType("datetime2"); + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") .HasColumnName("ExtraProperties"); - b.Property("Id") - .HasColumnType("uniqueidentifier"); + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("nvarchar(100)"); + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); - b.Property("Type") - .IsRequired() + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("Scopes") + .HasColumnType("nvarchar(max)"); + + b.Property("Status") .HasMaxLength(50) .HasColumnType("nvarchar(50)"); - b.HasKey("Key"); + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); - b.HasIndex("Expiration"); + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasIndex("SubjectId", "ClientId", "Type"); + b.HasKey("Id"); - b.HasIndex("SubjectId", "SessionId", "Type"); + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerPersistedGrants", (string)null); + b.ToTable("OpenIddictAuthorizations", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Scopes.OpenIddictScope", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -1678,18 +1124,16 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("DeletionTime"); b.Property("Description") - .HasMaxLength(1000) - .HasColumnType("nvarchar(1000)"); + .HasColumnType("nvarchar(max)"); - b.Property("DisplayName") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("Descriptions") + .HasColumnType("nvarchar(max)"); - b.Property("Emphasize") - .HasColumnType("bit"); + b.Property("DisplayName") + .HasColumnType("nvarchar(max)"); - b.Property("Enabled") - .HasColumnType("bit"); + b.Property("DisplayNames") + .HasColumnType("nvarchar(max)"); b.Property("ExtraProperties") .HasColumnType("nvarchar(max)") @@ -1710,51 +1154,114 @@ namespace MyCompanyName.MyProjectName.Migrations .HasColumnName("LastModifierId"); b.Property("Name") - .IsRequired() .HasMaxLength(200) .HasColumnType("nvarchar(200)"); - b.Property("Required") - .HasColumnType("bit"); + b.Property("Properties") + .HasColumnType("nvarchar(max)"); - b.Property("ShowInDiscoveryDocument") - .HasColumnType("bit"); + b.Property("Resources") + .HasColumnType("nvarchar(max)"); b.HasKey("Id"); - b.ToTable("IdentityServerIdentityResources", (string)null); + b.HasIndex("Name"); + + b.ToTable("OpenIddictScopes", (string)null); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.Property("IdentityResourceId") + b.Property("Id") + .ValueGeneratedOnAdd() .HasColumnType("uniqueidentifier"); - b.Property("Type") - .HasMaxLength(200) - .HasColumnType("nvarchar(200)"); + b.Property("ApplicationId") + .HasColumnType("uniqueidentifier"); - b.HasKey("IdentityResourceId", "Type"); + b.Property("AuthorizationId") + .HasColumnType("uniqueidentifier"); - b.ToTable("IdentityServerIdentityResourceClaims", (string)null); - }); + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasMaxLength(40) + .HasColumnType("nvarchar(40)") + .HasColumnName("ConcurrencyStamp"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.Property("IdentityResourceId") - .HasColumnType("uniqueidentifier"); + b.Property("CreationDate") + .HasColumnType("datetime2"); - b.Property("Key") - .HasMaxLength(250) - .HasColumnType("nvarchar(250)"); + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); - b.Property("Value") - .HasMaxLength(2000) - .HasColumnType("nvarchar(2000)"); + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2"); + + b.Property("ExtraProperties") + .HasColumnType("nvarchar(max)") + .HasColumnName("ExtraProperties"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Payload") + .HasColumnType("nvarchar(max)"); + + b.Property("Properties") + .HasColumnType("nvarchar(max)"); + + b.Property("RedemptionDate") + .HasColumnType("datetime2"); + + b.Property("ReferenceId") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Status") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Subject") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Type") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); - b.HasKey("IdentityResourceId", "Key", "Value"); + b.HasKey("Id"); + + b.HasIndex("AuthorizationId"); + + b.HasIndex("ReferenceId"); + + b.HasIndex("ApplicationId", "Status", "Subject", "Type"); - b.ToTable("IdentityServerIdentityResourceProperties", (string)null); + b.ToTable("OpenIddictTokens", (string)null); }); modelBuilder.Entity("Volo.Abp.PermissionManagement.PermissionGrant", b => @@ -2016,157 +1523,22 @@ namespace MyCompanyName.MyProjectName.Migrations .IsRequired(); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("UserClaims") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Properties") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Scopes") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResourceSecret", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiResources.ApiResource", null) - .WithMany("Secrets") - .HasForeignKey("ApiResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("UserClaims") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScopeProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.ApiScopes.ApiScope", null) - .WithMany("Properties") - .HasForeignKey("ApiScopeId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientClaim", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Claims") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientCorsOrigin", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedCorsOrigins") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientGrantType", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedGrantTypes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientIdPRestriction", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("IdentityProviderRestrictions") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientPostLogoutRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("PostLogoutRedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("Properties") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientRedirectUri", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("RedirectUris") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientScope", b => - { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("AllowedScopes") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.ClientSecret", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", b => { - b.HasOne("Volo.Abp.IdentityServer.Clients.Client", null) - .WithMany("ClientSecrets") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceClaim", b => + modelBuilder.Entity("Volo.Abp.OpenIddict.Tokens.OpenIddictToken", b => { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("UserClaims") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); + b.HasOne("Volo.Abp.OpenIddict.Applications.OpenIddictApplication", null) + .WithMany() + .HasForeignKey("ApplicationId"); - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResourceProperty", b => - { - b.HasOne("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", null) - .WithMany("Properties") - .HasForeignKey("IdentityResourceId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); + b.HasOne("Volo.Abp.OpenIddict.Authorizations.OpenIddictAuthorization", null) + .WithMany() + .HasForeignKey("AuthorizationId"); }); modelBuilder.Entity("Volo.Abp.TenantManagement.TenantConnectionString", b => @@ -2213,52 +1585,6 @@ namespace MyCompanyName.MyProjectName.Migrations b.Navigation("Roles"); }); - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiResources.ApiResource", b => - { - b.Navigation("Properties"); - - b.Navigation("Scopes"); - - b.Navigation("Secrets"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.ApiScopes.ApiScope", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.Clients.Client", b => - { - b.Navigation("AllowedCorsOrigins"); - - b.Navigation("AllowedGrantTypes"); - - b.Navigation("AllowedScopes"); - - b.Navigation("Claims"); - - b.Navigation("ClientSecrets"); - - b.Navigation("IdentityProviderRestrictions"); - - b.Navigation("PostLogoutRedirectUris"); - - b.Navigation("Properties"); - - b.Navigation("RedirectUris"); - }); - - modelBuilder.Entity("Volo.Abp.IdentityServer.IdentityResources.IdentityResource", b => - { - b.Navigation("Properties"); - - b.Navigation("UserClaims"); - }); - modelBuilder.Entity("Volo.Abp.TenantManagement.Tenant", b => { b.Navigation("ConnectionStrings"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.abppkg.json similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.abppkg.json diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj similarity index 93% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index d91ec3f273..237ce701f9 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -10,10 +10,10 @@ - + - - + + all runtime; build; native; contentfiles; analyzers @@ -26,14 +26,14 @@ - + - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs similarity index 90% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index eb854d3bc1..831eb154bd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -4,14 +4,12 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.DataProtection; -using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Hosting; using MyCompanyName.MyProjectName.MultiTenancy; using StackExchange.Redis; using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Account; using Volo.Abp.Account.Web; @@ -34,10 +32,10 @@ using Volo.Abp.FeatureManagement; using Volo.Abp.FeatureManagement.EntityFrameworkCore; using Volo.Abp.Identity; using Volo.Abp.Identity.EntityFrameworkCore; -using Volo.Abp.IdentityServer.EntityFrameworkCore; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.MultiTenancy; +using Volo.Abp.OpenIddict.EntityFrameworkCore; using Volo.Abp.PermissionManagement; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.PermissionManagement.HttpApi; @@ -47,13 +45,12 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.Swashbuckle; using Volo.Abp.TenantManagement; using Volo.Abp.TenantManagement.EntityFrameworkCore; -using Volo.Abp.Threading; using Volo.Abp.UI.Navigation.Urls; namespace MyCompanyName.MyProjectName; [DependsOn( - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), typeof(AbpAccountApplicationModule), typeof(AbpAccountHttpApiModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), @@ -66,7 +63,7 @@ namespace MyCompanyName.MyProjectName; typeof(AbpIdentityEntityFrameworkCoreModule), typeof(AbpIdentityApplicationModule), typeof(AbpIdentityHttpApiModule), - typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpOpenIddictEntityFrameworkCoreModule), typeof(AbpPermissionManagementDomainIdentityModule), typeof(AbpPermissionManagementEntityFrameworkCoreModule), typeof(AbpPermissionManagementApplicationModule), @@ -85,8 +82,28 @@ namespace MyCompanyName.MyProjectName; typeof(AbpAspNetCoreSerilogModule), typeof(AbpSwashbuckleModule) )] -public class MyProjectNameIdentityServerModule : AbpModule +public class MyProjectNameAuthServerModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); + } + public override void ConfigureServices(ServiceConfigurationContext context) { var hostingEnvironment = context.Services.GetHostingEnvironment(); @@ -217,7 +234,6 @@ public class MyProjectNameIdentityServerModule : AbpModule } app.UseAbpRequestLocalization(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); app.UseAbpSwaggerUI(options => diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs new file mode 100644 index 0000000000..057cc82167 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/OpenIddict/OpenIddictDataSeedContributor.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Localization; +using OpenIddict.Abstractions; +using Volo.Abp; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; + +namespace MyCompanyName.MyProjectName.OpenIddict; + +/* Creates initial data that is needed to property run the application + * and make client-to-server communication possible. + */ +public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IConfiguration _configuration; + private readonly IOpenIddictApplicationManager _applicationManager; + private readonly IOpenIddictScopeManager _scopeManager; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IStringLocalizer L; + + public OpenIddictDataSeedContributor( + IConfiguration configuration, + IOpenIddictApplicationManager applicationManager, + IOpenIddictScopeManager scopeManager, + IPermissionDataSeeder permissionDataSeeder, + IStringLocalizer l) + { + _configuration = configuration; + _applicationManager = applicationManager; + _scopeManager = scopeManager; + _permissionDataSeeder = permissionDataSeeder; + L = l; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + await CreateScopesAsync(); + await CreateApplicationsAsync(); + } + + private async Task CreateScopesAsync() + { + if (await _scopeManager.FindByNameAsync("MyProjectName") == null) + { + await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor + { + Name = "MyProjectName", + DisplayName = "MyProjectName API", + Resources = + { + "MyProjectName" + } + }); + } + } + + private async Task CreateApplicationsAsync() + { + var commonScopes = new List + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles, + "MyProjectName" + }; + + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + + //Web Client + var webClientId = configurationSection["MyProjectName_Web:ClientId"]; + if (!webClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_Web:RootUrl"].EnsureEndsWith('/'); + + /* MyProjectName_Web client is only needed if you created a tiered + * solution. Otherwise, you can delete this client. */ + await CreateApplicationAsync( + name: webClientId, + type: OpenIddictConstants.ClientTypes.Confidential, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Web Application", + secret: configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*", + grantTypes: new List //Hybrid flow + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Implicit + }, + scopes: commonScopes, + redirectUri: $"{webClientRootUrl}signin-oidc", + postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc" + ); + } + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); + await CreateApplicationAsync( + name: consoleAndAngularClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Console Test / Angular Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.RefreshToken + }, + scopes: commonScopes, + redirectUri: webClientRootUrl, + postLogoutRedirectUri: webClientRootUrl + ); + } + + // Blazor Client + var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"]; + if (!blazorClientId.IsNullOrWhiteSpace()) + { + var blazorRootUrl = configurationSection["MyProjectName_Blazor:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: blazorClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Blazor Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{blazorRootUrl}/authentication/login-callback", + postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback" + ); + } + + // Swagger Client + var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); + + await CreateApplicationAsync( + name: swaggerClientId, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Swagger Application", + secret: null, + grantTypes: new List + { + OpenIddictConstants.GrantTypes.AuthorizationCode, + }, + scopes: commonScopes, + redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html" + ); + } + } + + private async Task CreateApplicationAsync( + [NotNull] string name, + [NotNull] string type, + [NotNull] string consentType, + string displayName, + string secret, + List grantTypes, + List scopes, + string redirectUri = null, + string postLogoutRedirectUri = null, + List permissions = null) + { + if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); + } + + if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); + } + + if (!string.IsNullOrEmpty(name) && await _applicationManager.FindByClientIdAsync(name) != null) + { + return; + //throw new BusinessException(L["TheClientIdentifierIsAlreadyTakenByAnotherApplication"]); + } + + var client = await _applicationManager.FindByClientIdAsync(name); + if (client == null) + { + var application = new OpenIddictApplicationDescriptor + { + ClientId = name, + Type = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName + }; + + Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); + Check.NotNullOrEmpty(scopes, nameof(scopes)); + + if (new [] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All(grantTypes.Contains)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); + + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken); + } + } + + if (!redirectUri.IsNullOrWhiteSpace() || !postLogoutRedirectUri.IsNullOrWhiteSpace()) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Logout); + } + + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + } + + var buildInScopes = new [] + { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles + }; + + foreach (var scope in scopes) + { + if (buildInScopes.Contains(scope)) + { + application.Permissions.Add(scope); + } + else + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); + } + } + + if (redirectUri != null) + { + if (!redirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidRedirectUri", redirectUri]); + } + + if (application.RedirectUris.All(x => x != uri)) + { + application.RedirectUris.Add(uri); + } + } + } + + if (postLogoutRedirectUri != null) + { + if (!postLogoutRedirectUri.IsNullOrEmpty()) + { + if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); + } + + if (application.PostLogoutRedirectUris.All(x => x != uri)) + { + application.PostLogoutRedirectUris.Add(uri); + } + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + await _applicationManager.CreateAsync(application); + } + } +} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml.cs similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/Index.cshtml.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/Index.cshtml.cs diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/_ViewImports.cshtml b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/_ViewImports.cshtml similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Pages/_ViewImports.cshtml rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Pages/_ViewImports.cshtml diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Program.cs similarity index 94% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Program.cs index 89fa523a4d..4e968eb684 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/Program.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Program.cs @@ -32,7 +32,7 @@ public class Program builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); - await builder.AddApplicationAsync(); + await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); await app.RunAsync(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json similarity index 86% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json index ba915d92d0..88d0f11ab1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/Properties/launchSettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/Properties/launchSettings.json @@ -1,6 +1,6 @@ { "iisSettings": { - "windowsAuthentication": false, + "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "https://localhost:44301", @@ -15,7 +15,7 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "MyCompanyName.MyProjectName.IdentityServer": { + "AuthServerHost": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:44301", @@ -24,4 +24,4 @@ } } } -} \ No newline at end of file +} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/abp.resourcemapping.js b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/abp.resourcemapping.js similarity index 100% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/abp.resourcemapping.js rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/abp.resourcemapping.js diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/appsettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/appsettings.json similarity index 86% rename from templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/appsettings.json rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/appsettings.json index c2dd8c9bc2..70b1fa6216 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/appsettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/appsettings.json @@ -15,24 +15,23 @@ "RequireHttpsMetadata": "false", "ApiName": "MyProjectName" }, - "IdentityServer": { - "Clients": { + "OpenIddict": { + "Applications": { "MyProjectName_Web": { "ClientId": "MyProjectName_Web", - "RootUrl": "https://localhost:44302/" + "ClientSecret": "1q2w3e*", + "RootUrl": "https://localhost:44302" }, "MyProjectName_Blazor": { "ClientId": "MyProjectName_Blazor", - "RootUrl": "https://localhost:44307/" + "RootUrl": "https://localhost:44307" }, "MyProjectName_App": { "ClientId": "MyProjectName_App", - "ClientSecret": "1q2w3e*", "RootUrl": "http://localhost:4200" }, "MyProjectName_Swagger": { "ClientId": "MyProjectName_Swagger", - "ClientSecret": "1q2w3e*", "RootUrl": "https://localhost:44300" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json new file mode 100644 index 0000000000..e65907860e --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/package.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "name": "my-app-authserver", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/yarn.lock similarity index 100% rename from templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock rename to templates/module/aspnet-core/host/MyCompanyName.MyProjectName.AuthServer/yarn.lock diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index 3a20fdb153..67219be5b6 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyProjectNameHostMenuContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyProjectNameHostMenuContributor.cs index c2527a0371..29337dc2cd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyProjectNameHostMenuContributor.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyProjectNameHostMenuContributor.cs @@ -27,12 +27,12 @@ public class MyProjectNameHostMenuContributor : IMenuContributor { var accountStringLocalizer = context.GetLocalizer(); - var identityServerUrl = _configuration["AuthServer:Authority"] ?? ""; + var openIddictUrl = _configuration["AuthServer:Authority"] ?? ""; context.Menu.AddItem(new ApplicationMenuItem( "Account.Manage", accountStringLocalizer["ManageYourProfile"], - $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", + $"{openIddictUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}", icon: "fa fa-cog", order: 1000, null).RequireAuthenticated()); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Properties/launchSettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Properties/launchSettings.json index 9ef766441e..341bee1974 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Properties/launchSettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44307", - "sslPort": 44307 + "applicationUrl": "https://localhost:44305", + "sslPort": 44305 } }, "profiles": { @@ -20,7 +20,7 @@ "commandName": "Project", "launchBrowser": true, "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", - "applicationUrl": "https://localhost:44307", + "applicationUrl": "https://localhost:44305", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/appsettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/appsettings.json index 96ff7b45e9..4d1a881b8b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/appsettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/wwwroot/appsettings.json @@ -1,6 +1,6 @@ { "App": { - "SelfUrl": "https://localhost:44307" + "SelfUrl": "https://localhost:44305" }, "AuthServer": { "Authority": "https://localhost:44301", diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj index 383fb4a1e2..b7b66f12ca 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.csproj @@ -14,9 +14,9 @@ - + - + @@ -29,7 +29,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs index cb44a1a683..7dce65bbdb 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyProjectNameBlazorHostModule.cs @@ -64,7 +64,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Host; typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpAccountWebIdentityServerModule), + typeof(AbpAccountWebOpenIddictModule), typeof(AbpAccountApplicationModule), typeof(AbpAspNetCoreComponentsServerBasicThemeModule), typeof(AbpIdentityApplicationModule), @@ -99,6 +99,23 @@ public class MyProjectNameBlazorHostModule : AbpModule typeof(MyProjectNameBlazorHostModule).Assembly ); }); + + PreConfigure(builder => + { + // https://documentation.openiddict.com/configuration/token-formats.html#disabling-jwt-access-token-encryption + // In production, it is recommended to use two RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + builder.DisableAccessTokenEncryption(); + }); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); } public override void ConfigureServices(ServiceConfigurationContext context) @@ -244,7 +261,6 @@ public class MyProjectNameBlazorHostModule : AbpModule } app.UseUnitOfWork(); - app.UseIdentityServer(); app.UseAuthorization(); app.UseSwagger(); app.UseAbpSwaggerUI(options => diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Properties/launchSettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Properties/launchSettings.json index e31f812c85..aa9b1670fd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Properties/launchSettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/Properties/launchSettings.json @@ -3,8 +3,8 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "https://localhost:44313/", - "sslPort": 44313 + "applicationUrl": "https://localhost:44304/", + "sslPort": 44304 } }, "profiles": { @@ -19,7 +19,7 @@ "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, - "applicationUrl": "https://localhost:44313/", + "applicationUrl": "https://localhost:44304/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/appsettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/appsettings.json index afd5f605dc..75f6e96512 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/appsettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/appsettings.json @@ -1,13 +1,13 @@ { "App": { - "SelfUrl": "https://localhost:44313", - "RedirectAllowedUrls": "https://localhost:44313" + "SelfUrl": "https://localhost:44304", + "RedirectAllowedUrls": "https://localhost:44304" }, "ConnectionStrings": { "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName_Unified;Trusted_Connection=True" }, "AuthServer": { - "Authority": "https://localhost:44313", + "Authority": "https://localhost:44304", "RequireHttpsMetadata": "false" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index b7d47de013..49176baf14 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2", + "@abp/aspnetcore.components.server.basictheme": "^5.3.0-rc.2" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index e3cf3dc1b6..b48c14ab1e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -10,12 +10,12 @@ - + - - - + + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index e154c1a877..17b0cc8a88 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -189,7 +189,6 @@ public class MyProjectNameHttpApiHostModule : AbpModule var configuration = context.GetConfiguration(); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); options.OAuthScopes("MyProjectName"); }); app.UseAuditing(); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs deleted file mode 100644 index 6f8bbf0d69..0000000000 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs +++ /dev/null @@ -1,323 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using IdentityServer4.Models; -using Microsoft.Extensions.Configuration; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; -using Volo.Abp.IdentityServer.ApiResources; -using Volo.Abp.IdentityServer.ApiScopes; -using Volo.Abp.IdentityServer.Clients; -using Volo.Abp.IdentityServer.IdentityResources; -using Volo.Abp.MultiTenancy; -using Volo.Abp.PermissionManagement; -using Volo.Abp.Uow; -using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; -using ApiScope = Volo.Abp.IdentityServer.ApiScopes.ApiScope; -using Client = Volo.Abp.IdentityServer.Clients.Client; - -namespace MyCompanyName.MyProjectName.IdentityServer; - -public class IdentityServerDataSeedContributor : IDataSeedContributor, ITransientDependency -{ - private readonly IApiResourceRepository _apiResourceRepository; - private readonly IApiScopeRepository _apiScopeRepository; - private readonly IClientRepository _clientRepository; - private readonly IIdentityResourceDataSeeder _identityResourceDataSeeder; - private readonly IGuidGenerator _guidGenerator; - private readonly IPermissionDataSeeder _permissionDataSeeder; - private readonly IConfiguration _configuration; - private readonly ICurrentTenant _currentTenant; - - public IdentityServerDataSeedContributor( - IClientRepository clientRepository, - IApiResourceRepository apiResourceRepository, - IApiScopeRepository apiScopeRepository, - IIdentityResourceDataSeeder identityResourceDataSeeder, - IGuidGenerator guidGenerator, - IPermissionDataSeeder permissionDataSeeder, - IConfiguration configuration, - ICurrentTenant currentTenant) - { - _clientRepository = clientRepository; - _apiResourceRepository = apiResourceRepository; - _apiScopeRepository = apiScopeRepository; - _identityResourceDataSeeder = identityResourceDataSeeder; - _guidGenerator = guidGenerator; - _permissionDataSeeder = permissionDataSeeder; - _configuration = configuration; - _currentTenant = currentTenant; - } - - [UnitOfWork] - public virtual async Task SeedAsync(DataSeedContext context) - { - using (_currentTenant.Change(context?.TenantId)) - { - await _identityResourceDataSeeder.CreateStandardResourcesAsync(); - await CreateApiResourcesAsync(); - await CreateApiScopesAsync(); - await CreateClientsAsync(); - } - } - - private async Task CreateApiScopesAsync() - { - await CreateApiScopeAsync("MyProjectName"); - } - - private async Task CreateApiResourcesAsync() - { - var commonApiUserClaims = new[] - { - "email", - "email_verified", - "name", - "phone_number", - "phone_number_verified", - "role" - }; - - await CreateApiResourceAsync("MyProjectName", commonApiUserClaims); - } - - private async Task CreateApiResourceAsync(string name, IEnumerable claims) - { - var apiResource = await _apiResourceRepository.FindByNameAsync(name); - if (apiResource == null) - { - apiResource = await _apiResourceRepository.InsertAsync( - new ApiResource( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - foreach (var claim in claims) - { - if (apiResource.FindClaim(claim) == null) - { - apiResource.AddUserClaim(claim); - } - } - - return await _apiResourceRepository.UpdateAsync(apiResource); - } - - private async Task CreateApiScopeAsync(string name) - { - var apiScope = await _apiScopeRepository.FindByNameAsync(name); - if (apiScope == null) - { - apiScope = await _apiScopeRepository.InsertAsync( - new ApiScope( - _guidGenerator.Create(), - name, - name + " API" - ), - autoSave: true - ); - } - - return apiScope; - } - - private async Task CreateClientsAsync() - { - var commonScopes = new[] - { - "email", - "openid", - "profile", - "role", - "phone", - "address", - "MyProjectName" - }; - - var configurationSection = _configuration.GetSection("IdentityServer:Clients"); - - //Web Client - var webClientId = configurationSection["MyProjectName_Web:ClientId"]; - if (!webClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_Web:RootUrl"].EnsureEndsWith('/'); - - /* MyProjectName_Web client is only needed if you created a tiered - * solution. Otherwise, you can delete this client. */ - - await CreateClientAsync( - name: webClientId, - scopes: commonScopes, - grantTypes: new[] { "hybrid" }, - secret: (configurationSection["MyProjectName_Web:ClientSecret"] ?? "1q2w3e*").Sha256(), - redirectUri: $"{webClientRootUrl}signin-oidc", - postLogoutRedirectUri: $"{webClientRootUrl}signout-callback-oidc", - frontChannelLogoutUri: $"{webClientRootUrl}Account/FrontChannelLogout", - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - //Console Test / Angular Client - var consoleAndAngularClientId = configurationSection["MyProjectName_App:ClientId"]; - if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) - { - var webClientRootUrl = configurationSection["MyProjectName_App:RootUrl"]?.TrimEnd('/'); - - await CreateClientAsync( - name: consoleAndAngularClientId, - scopes: commonScopes, - grantTypes: new[] { "password", "client_credentials", "authorization_code" }, - secret: (configurationSection["MyProjectName_App:ClientSecret"] ?? "1q2w3e*").Sha256(), - requireClientSecret: false, - redirectUri: webClientRootUrl, - postLogoutRedirectUri: webClientRootUrl, - corsOrigins: new[] { webClientRootUrl.RemovePostFix("/") } - ); - } - - // Blazor Client - var blazorClientId = configurationSection["MyProjectName_Blazor:ClientId"]; - if (!blazorClientId.IsNullOrWhiteSpace()) - { - var blazorRootUrl = configurationSection["MyProjectName_Blazor:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: blazorClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Blazor:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{blazorRootUrl}/authentication/login-callback", - postLogoutRedirectUri: $"{blazorRootUrl}/authentication/logout-callback", - corsOrigins: new[] { blazorRootUrl.RemovePostFix("/") } - ); - } - - // Swagger Client - var swaggerClientId = configurationSection["MyProjectName_Swagger:ClientId"]; - if (!swaggerClientId.IsNullOrWhiteSpace()) - { - var swaggerRootUrl = configurationSection["MyProjectName_Swagger:RootUrl"].TrimEnd('/'); - - await CreateClientAsync( - name: swaggerClientId, - scopes: commonScopes, - grantTypes: new[] { "authorization_code" }, - secret: configurationSection["MyProjectName_Swagger:ClientSecret"]?.Sha256(), - requireClientSecret: false, - redirectUri: $"{swaggerRootUrl}/swagger/oauth2-redirect.html", - corsOrigins: new[] { swaggerRootUrl.RemovePostFix("/") } - ); - } - } - - private async Task CreateClientAsync( - string name, - IEnumerable scopes, - IEnumerable grantTypes, - string secret = null, - string redirectUri = null, - string postLogoutRedirectUri = null, - string frontChannelLogoutUri = null, - bool requireClientSecret = true, - bool requirePkce = false, - IEnumerable permissions = null, - IEnumerable corsOrigins = null) - { - var client = await _clientRepository.FindByClientIdAsync(name); - if (client == null) - { - client = await _clientRepository.InsertAsync( - new Client( - _guidGenerator.Create(), - name - ) - { - ClientName = name, - ProtocolType = "oidc", - Description = name, - AlwaysIncludeUserClaimsInIdToken = true, - AllowOfflineAccess = true, - AbsoluteRefreshTokenLifetime = 31536000, //365 days - AccessTokenLifetime = 31536000, //365 days - AuthorizationCodeLifetime = 300, - IdentityTokenLifetime = 300, - RequireConsent = false, - FrontChannelLogoutUri = frontChannelLogoutUri, - RequireClientSecret = requireClientSecret, - RequirePkce = requirePkce - }, - autoSave: true - ); - } - - foreach (var scope in scopes) - { - if (client.FindScope(scope) == null) - { - client.AddScope(scope); - } - } - - foreach (var grantType in grantTypes) - { - if (client.FindGrantType(grantType) == null) - { - client.AddGrantType(grantType); - } - } - - if (!secret.IsNullOrEmpty()) - { - if (client.FindSecret(secret) == null) - { - client.AddSecret(secret); - } - } - - if (redirectUri != null) - { - if (client.FindRedirectUri(redirectUri) == null) - { - client.AddRedirectUri(redirectUri); - } - } - - if (postLogoutRedirectUri != null) - { - if (client.FindPostLogoutRedirectUri(postLogoutRedirectUri) == null) - { - client.AddPostLogoutRedirectUri(postLogoutRedirectUri); - } - } - - if (permissions != null) - { - await _permissionDataSeeder.SeedAsync( - ClientPermissionValueProvider.ProviderName, - name, - permissions, - null - ); - } - - if (corsOrigins != null) - { - foreach (var origin in corsOrigins) - { - if (!origin.IsNullOrWhiteSpace() && client.FindCorsOrigin(origin) == null) - { - client.AddCorsOrigin(origin); - } - } - } - - return await _clientRepository.UpdateAsync(client); - } -} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json deleted file mode 100644 index 09b98ca204..0000000000 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": "1.0.0", - "name": "my-app-identityserver", - "private": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" - } -} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa deleted file mode 100644 index aa07a3b6a0..0000000000 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"0590816638b0f87bd230e19c32f7cec9","Parameters":{"D":"yIGe39uGuy/OUB5AurrPjG+bjZ9V+bt7m/yJjOd/1jtzq4rcxc8iz7ZLgXVkSyzjgbg6m1x/xMFoUGdwYHdauvcuM2ATuP4IMxJ4R3L0s5Xk6dqYaCyN+3LJ/1H6YlBz6e5NdljVwybjHJGxuJRSE1JhsoHx8f3S3ITvVVLKxknXyWcjIdtYo+x5qEnHyQd7/I0M2q7JkRP8e2pPfQsCNbUYmjWmv/Kr3hI0Jyn2x8QpcoOBwe0gX3tq0V771x6A+zqQYMaU8zltdvzjHBCeqkBJBgYTh/jKBcWDfcmk2yxHg000sCQ5lSMTS5gt5kYsv482S+TrsSu9pCuQ2Nw6BQ==","DP":"iLJNtCSxG77N6xWGbjaJCr99evuPs6SOtUSx/RR7zHQKITSuTq127kpESoaK9FbZyQMSGqj20FX72OdUqlJO/aSaUZA9yBKhpv2+hHpc3wsBaSbv+DadcWpe3c6MnadlV/WhRMWqGRNOr5iAroCbuDR3xR3isIEqZxnf86xla88=","DQ":"jkOQUtr0PSAtRexVQpu4bTVgJP2pfNK90o3NzG7rFscWJb94uBZC22clCUlmRJ+fFTkL4iO7rD7Uz0AYKLOtrw+WOvpEv4MBg7x/sWWblbbJr7alt7XwWoi2CT0R+pBS7VuQE+XhTUxFM+SQDWDMIpdGQ4/MBk9OXLZL99kipLc=","Exponent":"AQAB","InverseQ":"VSPcFjYbRq1lLOV8LfZnF2wdomOMH4uX2Va2b1Z0MCr+gDBx28EJNpUl2EGLY58ejA7dS0uapx0TyDehEM3ShS4cHFMnf8OoUB52EEgsF9msIDX5xvqJ+Bkt9mYiY7CWbXFCI4PZT94j/XdepO6JSr1/P6ZH3ncRRH2IJ6pPjDo=","Modulus":"z1wM2it4NloyS0MO9oZo/SP5N+BwsiP/yay3MsFJXz2/GBUznjTdtdwZnFga27VCmuOjeRYjWjtESlh/M6eTY8ztPOIr1ci7zVpYZ48Iy+9HE9poVy5ATdLuS19nivUANSOdmHB7X1oKwGHJRW43xUwAx3qkpmLnSE5J8Zpemyyto9tkvHqZhOAfcP/Gw7KszOvKHS1FEmaE9JFrqFtD5ODglAwF14uTfa6I6Wy0ws49LMm7ul6YZ7Ey1Y9kQ50TuJ+Z7BK/OkjOnTIuM0JsqwSMZ99Nq5po3ERo0iBxAZaYvO4SRjRxwL/tr7KLBtCp/4cEFRXRYz5k/hzGGfbDBQ==","P":"1ntEkTjBbqhZDYw1femyxVfV2RZq8fwUYkFwunUtuLgnZ420U/1ctgl9vX5oBqFdGp+OO5q7+5eQWSis2LBTWneGyF74W+/OPi472CrQFhzL7F1vwZL55uHnCCEpApFvC+PWwTCs4KvariSXbYzy4gZDfUq9x3QU6eHgZXkVhR8=","Q":"93/Z4QwtsdbEO5F4M5l10q9g43M12+qgDAoWUZEM7huxHxZvipBRxuOeEEkQaWZ02cL3/vbmOU35Vz4FKBKw1B2HecZwUUZO6p01FJDWDyulAl+70IlhwlDpyNqSJTcWz5kDszHoqHZDBSSKPL7cMH1tRf02AYgBqIRUf5pob1s="}} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index e1b1e2fccb..491a246ea1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -10,9 +10,9 @@ - + - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index 874e5a9eb5..f6139d1eb8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -158,12 +158,11 @@ public class MyProjectNameWebHostModule : AbpModule options.ResponseType = OpenIdConnectResponseType.CodeIdToken; options.ClientId = configuration["AuthServer:ClientId"]; - options.ClientSecret = configuration["AuthServer:ClientSecret"]; options.SaveTokens = true; options.GetClaimsFromUserInfoEndpoint = true; - options.Scope.Add("role"); + options.Scope.Add("roles"); options.Scope.Add("email"); options.Scope.Add("phone"); options.Scope.Add("MyProjectName"); diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/appsettings.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/appsettings.json index eb949080df..9aa64d47b7 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/appsettings.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/appsettings.json @@ -16,7 +16,6 @@ "AuthServer": { "Authority": "https://localhost:44301/", "RequireHttpsMetadata": "false", - "ClientId": "MyProjectName_Web", - "ClientSecret": "1q2w3e*" + "ClientId": "MyProjectName_Web" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index aa8fd5fe5f..c807ce3049 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -10,9 +10,9 @@ - + - + all runtime; build; native; contentfiles; analyzers diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 0f2145759f..02c80e93f1 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0-rc.2" } -} \ No newline at end of file +} diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index 49016bce6f..d468b62c59 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index d1455cf92b..c6b9ea8d03 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -21,7 +21,7 @@ - + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json deleted file mode 100644 index 3196608ce0..0000000000 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:64779/", - "sslPort": 44326 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "MyCompanyName.MyProjectName.Web": { - "commandName": "Project", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "https://localhost:5001;http://localhost:5000" - } - } -} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj index 20269aa37b..0dc4ddd733 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.csproj @@ -10,7 +10,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj index aa03ce2497..b2a8dbed03 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 995c44cfd9..0d577f1e96 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs index 5081d8be6c..8290b2df36 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs @@ -93,8 +93,6 @@ public class ClientDemoService : ITransientDependency } /* Shows how to use HttpClient to perform a request to the HTTP API. - * It obtains access token using IdentityServer's API. See its documentation: - * https://identityserver4.readthedocs.io/en/latest/quickstarts/2_resource_owner_passwords.html */ private async Task TestAllManuallyAsync() { diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index e92149a072..bca4086c54 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -22,7 +22,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj index 9d62fb7d38..31efe22b92 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj index 9e49ab428f..9af92ffc88 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.csproj @@ -8,12 +8,12 @@ - - + + - + diff --git a/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 6b5352c3e7..cead3f8c94 100644 --- a/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/wpf/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj b/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj index a3e769e45b..60168258f0 100644 --- a/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj +++ b/test/DistEvents/DistDemoApp.EfCoreRabbitMq/DistDemoApp.EfCoreRabbitMq.csproj @@ -13,7 +13,7 @@ - + runtime; build; native; contentfiles; analyzers compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native diff --git a/tools/nuget/nuget.exe b/tools/nuget/nuget.exe index a34c36752a..3bd8edb90f 100644 Binary files a/tools/nuget/nuget.exe and b/tools/nuget/nuget.exe differ