I would like to migrate a small application that is on an older version of the ASPNETBOILERPLATE foundation to the ABP.IO stack. I'm familiar with most of the middleware adjustments but I'm curious about the data migration.
When I go to migrate users, roles, tenants, etc.. Is there any guidance or info you can provide?
Do the two frameworks use similar password hashing algorithms, can I just copy users and password data from one system to the other or is that not going to work?
Do any of the SSO options for ABP.IO support Organizational Units?
This is probably going to be a rather large project whether we go with option A or B. Can you provide any other details that can help in making this decision, it's an important an challenging decision so I'd like to consider as much as possible before starting.
I could use some advise on how to best implement SSO for a multi-tenant app. I have a legacy aspnetboilerplate application (react frontend) that is currently on version 5.1 of the framework which I believe is 3 major versions behind.
The app now wants to use SSO for at least one of the tenants that has thousands of users. So the options I'm trying to consider are:
A. Update the aspnetboilerplate to the latest version then setup idententity server.
B. Port the application to ABP.IO commercial and then use the SSO implementation in that framework. The application is relatively small so porting from aspnetboilerplate react to abp.io angular is doable but I don't want to add any unnecessary risk.
A few questions:
If the tenant in question is using ADFS does one of these approaches provide better integration?
I know aspnetboilerplate has tables for Organizational Units but I assume all of the management would have to be custom built. I believe ABP.io may already have functionality to use ADFS Organizational Units. I guess in my ideal configuration we could setup Organizational Units in ADFS to group the users. If ABP.IO Keeps that in sync then we should be able to setup roles and permissions for users of the Organizational units. That way new users just get created in ADFS, put into a group and then they inherit the correct permissions in the app.
Any thoughts, suggestions, questions?
We were able to produce the error, an issue was created on the subject. It will be fixed in the next version.
Is there a link to the issue so I can keep an eye on it?
Browser Console Error When Page Loads.
core.mjs:8400 ERROR TypeError: Expected a plugin class, but got object. Please verify that the plugin was imported and spelled correctly. at Uppy.use (index.js:1486:13) at Object.next (volo-abp.ng.file-management.mjs:984:18) at ConsumerObserver.next (Subscriber.js:91:33) at SafeSubscriber._next (Subscriber.js:60:26) at SafeSubscriber.next (Subscriber.js:31:18) at take.js:12:32 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) at OperatorSubscriber.next (Subscriber.js:31:18) at map.js:7:24 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) handleError @ core.mjs:8400 next @ core.mjs:24891 next @ Subscriber.js:91 _next @ Subscriber.js:60 next @ Subscriber.js:31 (anonymous) @ Subject.js:34 errorContext @ errorContext.js:19 next @ Subject.js:27 emit @ core.mjs:20900 (anonymous) @ core.mjs:24236 invoke @ zone.js:372 run @ zone.js:134 runOutsideAngular @ core.mjs:24109 onHandleError @ core.mjs:24236 handleError @ zone.js:376 runTask @ zone.js:181 invokeTask @ zone.js:487 ZoneTask.invoke @ zone.js:476 data.args.<computed> @ zone.js:2385 core.mjs:8400 ERROR TypeError: Cannot read properties of undefined (reading 'addEventListener') at isEventTarget (fromEvent.js:50:30) at fromEvent (fromEvent.js:18:27) at UploadService.initUppy (volo-abp.ng.file-management.mjs:1012:42) at Object.next (volo-abp.ng.file-management.mjs:1265:32) at ConsumerObserver.next (Subscriber.js:91:33) at SafeSubscriber._next (Subscriber.js:60:26) at SafeSubscriber.next (Subscriber.js:31:18) at take.js:12:32 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) at OperatorSubscriber.next (Subscriber.js:31:18) handleError @ core.mjs:8400 next @ core.mjs:24891 next @ Subscriber.js:91 _next @ Subscriber.js:60 next @ Subscriber.js:31 (anonymous) @ Subject.js:34 errorContext @ errorContext.js:19 next @ Subject.js:27 emit @ core.mjs:20900 (anonymous) @ core.mjs:24236 invoke @ zone.js:372 run @ zone.js:134 runOutsideAngular @ core.mjs:24109 onHandleError @ core.mjs:24236 handleError @ zone.js:376 runTask @ zone.js:181 invokeTask @ zone.js:487 ZoneTask.invoke @ zone.js:476 data.args.<computed> @ zone.js:2385
Install FileUploadModule https://docs.abp.io/en/commercial/latest/modules/file-management Load the page Adding / Managing folders works The uploader does not come up when clicked on.
Is there an issue with Uploading Files in FileManagementModule in **angular **using **LeptonX **theme?
I've tried installing the module twice now on a new installation and I get the same results. The module loads and works for adding folders but the upload Modal does not appear and I see the following console errors.
I followed this guide while adding the module. https://docs.abp.io/en/commercial/latest/modules/file-management
ERROR TypeError: Expected a plugin class, but got object. Please verify that the plugin was imported and spelled correctly. at Uppy.use (index.js:1486:13) at Object.next (volo-abp.ng.file-management.mjs:984:18) at ConsumerObserver.next (Subscriber.js:91:33) at SafeSubscriber._next (Subscriber.js:60:26) at SafeSubscriber.next (Subscriber.js:31:18) at take.js:12:32 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) at OperatorSubscriber.next (Subscriber.js:31:18) at map.js:7:24 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) handleError @ core.mjs:8400 core.mjs:8400 ERROR TypeError: Cannot read properties of undefined (reading 'addEventListener') at isEventTarget (fromEvent.js:50:30) at fromEvent (fromEvent.js:18:27) at UploadService.initUppy (volo-abp.ng.file-management.mjs:1012:42) at Object.next (volo-abp.ng.file-management.mjs:1265:32) at ConsumerObserver.next (Subscriber.js:91:33) at SafeSubscriber._next (Subscriber.js:60:26) at SafeSubscriber.next (Subscriber.js:31:18) at take.js:12:32 at OperatorSubscriber._next (OperatorSubscriber.js:13:21) at OperatorSubscriber.next (Subscriber.js:31:18) handleError @ core.mjs:8400
I'm not looking to update the Users UI, I'm Looking to update the user's profile page instead so the user can manage these new properties them selves.
My issues are very similar to this thread https://support.abp.io/QA/Questions/1404/Customizing-PersonalSettings-Personal-Info-page-not-working
My changes follow the thread above almost exactly. I have added a new tab that can display and update the extra properties, this part is done and working.
**My problem is with the Personal Info tab that has not been modified or replaced. That tab wipes out any extra properties on the object when a save is performed. ** ex. Extra properties are not passed when someone updates their name.
Some of the relevant bits aspnet-core\src\QRC.Application.Contracts\QRCDtoExtensions.cs ObjectExtensionManager.Instance .AddOrUpdateProperty<ProfileDto, UserProjectRole>("Project Role") .AddOrUpdateProperty<ProfileDto, string>("Zip Code") .AddOrUpdateProperty<ProfileDto, UserAgeRange>("Age Range") .AddOrUpdateProperty<UpdateProfileDto, UserProjectRole>("Project Role") .AddOrUpdateProperty<UpdateProfileDto, string>("Zip Code") .AddOrUpdateProperty<UpdateProfileDto, UserAgeRange>("Age Range");
I want my new User ExtraProperties to show up on my Angular Registration page and Profile page.
I have already added new User ExtraProperties and they show up in the admin UI for users following this guide. https://docs.abp.io/en/abp/latest/Module-Entity-Extensions
I'm not sure what I need to do for the Account pages.
The documentation is not clear in this area as far as I can tell and this is a very basic use case in my opinion.
In my Angular application I'm trying to call some code to initialize my application after a user has successfully logged in.
I was using the separate login pages from the server so I had this initialization in the AppModule since the user was being authenticated before starting the angular app.
Now I've switched to the login pages within angular so the AppModule creation happens before I know a user has successfully logged in.
Any suggestions on a single point of entry for Angular when a user has successfully finished login.
I found the issue.
For some reason I had added canActivate: [AuthGuard, PermissionGuard], on all the routes in app-routing.module.ts
Looks like the login page is now working within Angular.
**Can you help with one small related question. ** If I need to run some code when a user successfully logs in where does that belong?