This kind of information is often stored in a corporate directory using something called LDAP. I am not sure of the size of your company but it sounds like it is large enough to consider this solution. There is OpenLDAP on Linux or Active Directory on Microsoft which perform this task as concrete examples of product. The web2py server has a contrib module for using LDAP authentication which is documented in the manual. Check if your CMS is capable of this as well.
The web2py server has a very diverse set of authentication mechanisms such as SMTP server login etc. This would get you username and password in one location but not a hierarchy or org chart. Since the choice of CMS is unknown at this point it is difficult to tell if it is open enough to be able to refer to tables in the web2py portion of the infrastructure. A couple of ideas, Ron

