pw2db.pl replacement script

Discussion in 'Tips/Tricks/Mods' started by catdude, Jan 14, 2008.

  1. catdude

    catdude ISPConfig Developer

    I initially installed the pw2db.pl script that I found recommended on one of threads in this forum. For those who don't use it, it's a script that builds Courier's userdb table from the contents of the /etc/passwd and /etc/shadow files.

    The stock version works well enough, but has some limitations that bit me: if you have some long domain names, pw2db.pl maps the system user to a trucated e-mail address, not the full e-mail address. And if you use a user prefix of WEBID instead of DOMAIN, it get's really confused :)

    I wrote a replacement for this script. You can find it at http://www.iowatelecom.net/~mahoneyf/scripts. It's written in Python, so you'll need to have python installed. It also reads ISPConfig's database to build user e-mail addresses, so you also need to have the MySQLdb python module (http://sourceforge.net/projects/mysql-python) installed.

    Falko and Till, I am querying isp_isp_web, isp_isp_user, and isp_dep to get the information I need. In my query I'm hard-coding "child_doctype_id = 1014" when I'm looking for isp_isp_user records and "parent_doctype_id = 1013" when I'm linking to isp_web records. Is it safe to do this, or should I actually go to the trouble of doing a lookup against "doctype" to determine the doctype_id for "isp_user" and "isp"web"?

    Also, the query I use to determine the domain name for a given user is:
    "SELECT web_domain FROM isp_isp_web, isp_dep, \
    isp_isp_user WHERE user_username = <sys user name> AND \
    isp_dep.child_doc_id = isp_isp_user.doc_id AND \
    isp_dep.child_doctype_id = 1014 AND \
    isp_dep.parent_doc_id = isp_isp_web.doc_id AND \
    isp_dep.parent_doctype_id = 1013"
    The query I use to determine the user name part of the e-mail address is:
    "SELECT user_email FROM isp_isp_user \
    WHERE user_username = '<sys user name>'"
    Can you confirm that are indeed the proper queries to be using for these purposes?
     
  2. till

    till Super Moderator

    Thats safe, the docytpe ID's will not change in future. The queries look fine.
     

Share This Page