+ All Categories
Home > Technology > SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations...

SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations...

Date post: 19-Jan-2017
Category:
Upload: sencha
View: 50 times
Download: 6 times
Share this document with a friend
11
Powered by Encuesta Visión de los mercados Septiembre de 2015
Transcript
Page 1: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations

Steve WhatmoreArchitect, PureFacts Financial Solutions Inc.

Page 2: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Introduction

• PureFacts Financial Solutions- ISV that produces a best-in-class mission critical software for the Wealth Management Industry

- Located on Bay St. in Toronto, Canada

- 1/4 of Trillion dollars managed on our platform

• Steve Whatmore- 35 + years in software development

- MBA, Hon BSc in Comp Sci, currently pursuing CFA

- Experience across multiple industries and numerous technology stacks

2

www.purefacts.com

Page 3: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

• Multi tenant

• SaaS enabled

• Multi-lingual

• Role based

• White-labelled

• Client customizations

• Salesforce and Dynamics Integrations

PureWealth Suite

Page 4: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

• Single code base / architecture

• 15 K classes (even split before UI / backend)

• Ext.Direct (highly customized)

• Extensive use of common components

• Configuration based (everything)

PureWealth Suite

Page 5: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

PureWealth Suite

Page 6: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Application JS File

<!-- ************************************************************************ PureFees JS FILES ************************************************************************--> <object id="PureFeesMain" type="System.Collections.ArrayList"> <constructor-arg name="c"> <list> <value>Web\js\PureFees\default\app\model\AbstractFeeSearchResult.js</value> <value>Web\js\PureFees\default\app\model\FeeRefFrequency.js</value> <value>Web\js\PureFees\default\app\model\FeeRefMethodology.js</value> <value>Web\js\PureFees\default\app\model\FeeRefPerformanceBaseline.js</value> <value>Web\js\PureFees\default\app\model\FeeRefBillingAccountType.js</value> <value>Web\js\PureFees\default\app\model\FeeConfiguration.js</value> <value>Web\js\PureFees\default\app\model\FeeType.js</value> <value>Web\js\PureFees\default\app\model\FeeRefState.js</value>

Single request Matches on page nameReads the manifest which defines the entire applicationConcatenates all the JS files into a single JS file

Page 7: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Application JS File

• Dynamic class loading – disabled!

• File ordering is obviously important

• Caching

• Cache busting

• Developer support

• Conceptually the same strategy applies too:- CSS files

- Language files

7

Page 8: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Enterprise Applications and Roles

Page 9: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Enterprise Applications

• What are they?- Complex data and processes

- Robust, Scalable, Performant

- Secure

• Why are roles important?

9

Page 10: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

PureWealth Suite

Page 11: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Secured Content

buildItems: function () { var items = [ this.buildLeftForm(), this.buildRightForm() ]; if (this.getEditButton) { items.push(this.getEditButton()); }

return items; },

Surprisingly simple paradigmCheck for the existence of the methodIf the method exists then call it.

Page 12: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Role checking <secured_element> <roles> <role>fee_function_setup_accounts_add_edit</role> </roles> <script> <![CDATA[ Ext.override(PureFees.view.accounts.details.Banner, { getEditButton: function() { return { xtype: 'container', region: 'east', items: [{ xtype: 'button', handler: 'showAccountAddEditWindow' }]

Again surprisingly simpleIterate the roles assigned to userIf role found append to the app JS file

Page 13: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Enterprise Applications and Client Customizations

Page 14: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Client Customizations

• Leverage the application JS file

• Extend the paradigm utilized for roles

• Parameterize the selection of which files to deliver to the browser

14

Page 15: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Client Customizations

<!-- ************************************************************************ Core JS FILES ************************************************************************--> <object id= "coreJSFiles" type="System.Collections.ArrayList"> <constructor-arg name="c"> <list> <value>Web\js\PureWealth\config\environment.js</value>

<value>Web\js\PureWealth\default\app\store\BaseContactSearchResults.js</value> <value>Web\js\PureWealth\default\app\store\GroupByBreakdowns.js</value> <value>Web\js\PureWealth\clients\{0}\app\store\GroupByBreakdowns.js</value> <value>Web\js\PureWealth\default\app\store\SuperObjectPickerItems.js</value>

Iterate the list of files to serveReplace parameters with client valuesIf file exists then add to the app JS file

Page 16: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Client Customizations

Ext.override(PureWealth.store.GroupByBreakdowns, { config: { data: [{ // Household id: 1, name: t('pw_super_object_picker_group_by_breakdown_no'), referenceKey: PureWealth.util.Constants.getGroupByBreakdownNone(), objectTypeID: PureWealth.util.Constants.getObjectTypeIDHousehold(), financialsTabName: PureWealth.util.Constants.getFinancialsTabNameAll(), ordinal: 1 }, { id: 2,

Client overrides specific behavior in base classClient can override the class entirely if needed

Page 17: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Closing Remarks

Page 18: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Final Thoughts

• ExtJS 6 – start using it

• The role of a designer – get yourself a good one

• Training – paramount

• Sencha Professional Services – use them you will not regret it

18

Page 19: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

The Team

Page 20: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Questions?

Further information:

Steven Whatmore – aka [email protected] use the SenchaCon app to review this session!

www.purefacts.com

Page 21: SenchaCon 2016: Enterprise Applications, Role Based Access Controls (RBAC) and Client Customizations - Steve Whatmore

Recommended