Bootcamp:Chapter 11
No edit summary
No edit summary
Line 32: Line 32:


== Chapter 11: User Login, Access Groups, Default Superclass, Singleton Pattern, and Merge Model ==
== Chapter 11: User Login, Access Groups, Default Superclass, Singleton Pattern, and Merge Model ==
332. Go to the Wiki Model Examples and download the SysUserAuthentication model.  
332. Go to the Wiki [[Model Examples]] and download the SysUserAuthentication model.  


333. Open and Merge in the downloaded file.
333. Open and Merge in the downloaded file.


334. Verify that the SysSingleton has the property IsSingleton set in the objects inspector.
334. Verify that the SysSingleton has the property ''IsSingleton'' set in the objects inspector.


335. Make sure you understand the Singleton pattern. Check the Wiki and also google the concept: https://en.wikipedia.org/wiki/Singleton_pattern
335. Make sure you understand the Singleton pattern. Check the Wiki and also google the concept: https://en.wikipedia.org/wiki/Singleton_pattern
Line 44: Line 44:
337. Test the OCLSingleton operator in the prototyper - ensure you get an object.
337. Test the OCLSingleton operator in the prototyper - ensure you get an object.


338. Select the SysSingleton CurrentUser association in the class diagram. Check that Persistent is set to false and thus, the association is transient.
338. Select the SysSingleton ''CurrentUser'' association in the class diagram. Check that Persistent is set to ''false'' and thus, the association is transient.


339. Select the SysSuperClass in the diagram. Check the OnCreate and OnUpdate on the Wiki.
339. Select the SysSuperClass in the diagram. Check the OnCreate and OnUpdate on the Wiki.


340. Make sure you understand what OnCreate and OnUpdate actually do. Make use of the debugger to verify your theory on how it works.
340. Make sure you understand what [[OCLOperators OnCreate|OnCreate]] and [[OCLOperators OnUpdate|OnUpdate]] actually do. Make use of the debugger to verify your theory on how it works.


341. Ensure that the SysSuperClass is the default superclass for the AuthenticationPackage.
341. Ensure that the SysSuperClass is the default superclass for the AuthenticationPackage.
Line 70: Line 70:
350. Go to the debugger and check that you have a new SysUser object.
350. Go to the debugger and check that you have a new SysUser object.


351. Go to CarSeeker ViewModel and set AccessGroup to IsLoggedIn. Save
351. Go to CarSeeker ViewModel and set AccessGroup to IsLoggedIn. Save.


352. Ensure you cannot see CarSeeker when you are not logged in.
352. Ensure you cannot see CarSeeker when you are not logged in.
Line 80: Line 80:
355. Check the expressions that build up the IsLoggedIn access group and make sure you understand them.
355. Check the expressions that build up the IsLoggedIn access group and make sure you understand them.


356. Add a new access group: IsAdministrator
356. Add a new access group: <code>IsAdministrator</code>


357. Refresh the AutoForms. Make sure you get autoforms for SysUser.
357. Refresh the AutoForms. Make sure you get Autoforms for SysUser.


358. Go to AutoformsysUser and set access group IsAdministrator.
358. Go to AutoformsysUser and set access group ''IsAdministrator''.


359. Do the same for AutoFormSysUserSeeker.
359. Do the same for AutoFormSysUserSeeker.
Line 90: Line 90:
360. Ensure you don't get access.
360. Ensure you don't get access.


361. Create a new ViewModel name: AccessDenied. Make it explain that the user does not have access.
361. Create a new ViewModel name: <code>AccessDenied</code>. Make it explain that the user does not have access.


362. Use the debugger and set the user as IsAdmin. Save.
362. Use the debugger and set the user as ''IsAdmin''. Save.


363. Ensure you can get into AutoFormSysUserSeeker since you are now an administrator.
363. Ensure you can get into AutoFormSysUserSeeker since you are now an administrator.


364. Create a new user b@b.se (or something else) and log in as that. Confirm that this user does not reach the AutoFormSysUserSeeker, but instead, ends up at the AccessDenied view.
364. Create a new user <code>b@b.se</code> (or something else) and log in as that. Confirm that this user does not reach the AutoFormSysUserSeeker, but instead, ends up at the AccessDenied view.


'''Next Chapter:'''  
'''Next Chapter:'''  

Revision as of 06:28, 27 July 2023

This is Chapter 11. Are you looking for the beginning? Find it here: Chapter 1, or link to Chapter 10 (the previous chapter)

Here's the Chapter 11 Video: https://www.youtube.com/watch?v=j7NfjVZgZ38

Video 11: MDrivenEducationVideo Chapter 11

Title Time(Segment Start)
Introduction Introduction
Singleton Pattern Singleton Pattern at 3:40
CIS Supercross CIS Supercross at 11:45
CIS Superclose CIS Superclose at 15:12
External Login External Login at 23:52
Access Groups Access Groups at 29:25
Access Group Editor Access Group Editor at 32:00

Chapter 11: User Login, Access Groups, Default Superclass, Singleton Pattern, and Merge Model

332. Go to the Wiki Model Examples and download the SysUserAuthentication model.

333. Open and Merge in the downloaded file.

334. Verify that the SysSingleton has the property IsSingleton set in the objects inspector.

335. Make sure you understand the Singleton pattern. Check the Wiki and also google the concept: https://en.wikipedia.org/wiki/Singleton_pattern

336. Start the prototyper with XML persistence.

337. Test the OCLSingleton operator in the prototyper - ensure you get an object.

338. Select the SysSingleton CurrentUser association in the class diagram. Check that Persistent is set to false and thus, the association is transient.

339. Select the SysSuperClass in the diagram. Check the OnCreate and OnUpdate on the Wiki.

340. Make sure you understand what OnCreate and OnUpdate actually do. Make use of the debugger to verify your theory on how it works.

341. Ensure that the SysSuperClass is the default superclass for the AuthenticationPackage.

342. Check the oclIsTypeOf and oclKindOf and superTypes operators in the debugger.

343. Set the Default superclass of Package1 to the SysSuperClass.

344. Start the debugger or refresh the model. Make sure Person now has the ChangeTime attribute.

345. In the debugger, set the empty Guid property to a new Guid for all persons.

346. When you save the persons, ensure the ChangeTime is updated.

347. Start Local Turnkey Prototyper.

348. Try and login with any user.

349. Register a new user with email and password.

350. Go to the debugger and check that you have a new SysUser object.

351. Go to CarSeeker ViewModel and set AccessGroup to IsLoggedIn. Save.

352. Ensure you cannot see CarSeeker when you are not logged in.

353. Ensure you can see CarSeeker when you are logged in.

354. Go to the AccessGroup-tool button.

355. Check the expressions that build up the IsLoggedIn access group and make sure you understand them.

356. Add a new access group: IsAdministrator

357. Refresh the AutoForms. Make sure you get Autoforms for SysUser.

358. Go to AutoformsysUser and set access group IsAdministrator.

359. Do the same for AutoFormSysUserSeeker.

360. Ensure you don't get access.

361. Create a new ViewModel name: AccessDenied. Make it explain that the user does not have access.

362. Use the debugger and set the user as IsAdmin. Save.

363. Ensure you can get into AutoFormSysUserSeeker since you are now an administrator.

364. Create a new user b@b.se (or something else) and log in as that. Confirm that this user does not reach the AutoFormSysUserSeeker, but instead, ends up at the AccessDenied view.

Next Chapter:

The_1000_steps_program_to_MDriven_Chapter_12

This page was edited 4 days ago on 09/16/2024. What links here