Hi all, I've been working for the past couple months on a prototype software that is used to run our construction company. I've recently decided to try to make it an actual commercial platform and am starting to work on that release. I have a couple issues I'm having a hard time grasping and thought I'd get some feedback from community members. Basically, what I have currently is 1 company with multiple users that are structured into branches. So, users in branch 1 can not see branch 2 customers, etc. This is handled by assigning a Branch column in the Customers MySQL table and also assigning various allowed user account - (Manager, Closer, Inspector, etc) that keeps sales guys from "poaching". I have a few questions though...
1. How to implement this for multiple COMPANIES that also have multiple users and branches. I'm creating an API that returns JSON and accepts posted data and also requires a public key and a hashed value containing a private key - so this will authenticate different COMPANIES to the API. I was thinking about then saving a CHAR filed is the API_Authenticate MySQL DB that will store a string that corresponds to that companies database with their customers and that's pulled if the public key and hash values match. Is this a correct way to accomplish my intentions?
2. How to handle the user login. Right now they simply go to our website and enter the username - jdoe. However, when hosting multiple Companies, I think I'll have to have a 3rd Database that authenticates the user and gets their appropriate company and gets settings that?? ie. jdoe@companyX -> lookup in MySQL then return their company name.
3. Settings - I'm thinking that every company will want their software slightly different (this is what lead to creating our own - could find an off the shelf that worked) so I'm going to use setting.ini files - probably saved after the Company Identifier that would be saved in DB mentioned in Question 2.
I'm still drawing on my whiteboard - but I'm trying to tackle this issue today to start Version 2.0 - essentially - and don't want to write it then "fix" it later.
Any suggestions are greatly appreciated and please let me know if I wasn't clear on anything. I've typed this out very quickly.
Application Planning Help
1 reply to this topic
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users