Remote Users, Adding a Client

Discussion in 'Developers' Forum' started by desanidesigns, Mar 13, 2012.

  1. desanidesigns

    desanidesigns New Member

    I've been trying to get the 'client_add' remoting option to work as I would expect, but maybe I'm expecting too much.

    Trying to add a new client, I am setting the following variables:
    PHP:
    $params = array(
    "company_name" => $client_data['companyname'],
    "contact_name" => $client_data['firstname']." ".$client_data['lastname'],
    "username" => $details['option1']['value'],
    "password" => $details['option3']['value'],
    "language" => "en",
    "usertheme" => 'default',
    "street" => $client_data['address1']." ".$client_data['address2'],
    "zip" => $client_data['postcode'],
    "city" => $client_data['city'],
    "state" => $client_data['state'],
    "country" => $client_data['country'],
    "telephone" => $client_data['phonenumber'],
    "mobile" => "",
    "fax" => "",
    "email" => $client_data['email'],
    "internet" => $client_data['domainname'],
    "icq" =>"",
    "notes" => $client_data['notes'],
    "default_webserver" => $options['option3']['value'],
    "default_mailserver" => $options['option3']['value'],
    "default_dnsserver" => $options['option3']['value'],
    "default_dbserver" => $options['option3']['value'],
    "limit_web_ip" => $options['option2']['value'],
    "template_master" => $options['option1']['value']);
    What isn't working as expected, is the "limit_web_ip." What I am expecting is that when the user creates a new site, they will only be able to use the IP I set in this field, assuming it is one of the server's configured IP addresses. Am I correct?

    If yes, it is not working properly. The user can still select the asterisk or any of the IP addresses assigned to the server. How do I resolve this?

    If I am incorrect, is there any functionality built in that would allow this restriction?

    Thanks
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    Youre wrong, the Limit you are searching for is set in the server_ip database table and not in the client table. See ispconfig interface: System > Server IP, there you assign the IP addresses to a client.
     
  3. desanidesigns

    desanidesigns New Member

    I understand how to do all this manually; I need it done automagically. Is there any way to assign an IP to a client using the remoting framework?
     
  4. till

    till Super Moderator Staff Member ISPConfig Developer

    The functions to add / edit / delete server IP adresses have been added in the svn stable branch. I've added the chnaged files.

    You can get the SVN stable release with:

    svn export svn://svn.ispconfig.org/ispconfig3/branches/ispconfig-3.0.4

    the required files are:

    interface/lib/classes/remoting.inc.php
    interface/web/admin/lib/remote.conf.php

    Copy these files into your ispconfig installation, then enable the new functions in the remote user. The function names are:

    server_ip_get, server_ip_update and server_ip_delete
     
  5. desanidesigns

    desanidesigns New Member

    I will check it out. Will this allow me to specify multiple clients per IP address or is it limited to 1 per IP? What I want to avoid is someone being able to select the asterisk when they're adding domains.

    Edit: After changing all the domains to the asterisk, aside from those needing their ssl cert, nothing went awry. Must have been a misconfig on my part somewhere else causing the issue.
     
    Last edited: Mar 13, 2012
  6. till

    till Super Moderator Staff Member ISPConfig Developer

    In ISPConfig a IP address is either visible to all clients (if no client is assigned to the IP) or one client.

    The asterisk is a wildcard and not a IP, so its not affected by IP settings. The asterisk is always visible to all clients. Normally you would use the asterisk for all websites and assign only IP addresses to specific clients that need a sl website.

    A function to disable the * wildcard will be availble in ISPConfig 3.0.5 as you can see in the roadmap:

    http://bugtracker.ispconfig.org/index.php?do=details&task_id=1977&project=3
     
  7. desanidesigns

    desanidesigns New Member

    I did see that in the roadmap. I believe what I ran into before is that when I selected the * for a domain, it messed with sites that didn't have the * and would show the wrong site. Say I went to www.a.com, it would show www.b.com.
     
  8. till

    till Super Moderator Staff Member ISPConfig Developer

    The problem is that a IP address is priorized in favor of a wildcard by apache. But this can be avoided by the correct IP setup:

    1) Create a "fake" client account and assign it the "main" ip which is internally used for all sites with *. So there is no site where this IP address is selected directly,all sites that point in DNS to this IP use * instead.

    2) All websites that dont use SSL use *. The clients have no other choice then using * as there are no other IP's active on the server 'globally' and the only other IP is assigned to the fake client.

    3) If you add a ssl site that requires a separate IP, add this new ip under system > Server IP and assign it to the client that owns this sl site. So this IP will only show up for him and no other customers.
     
  9. desanidesigns

    desanidesigns New Member

    In the SVN I wasn't able to find any examples or API docs on these functions. I'm guessing the usage is:
    Code:
    $params = array("server_id" => 1);
    server_ip_get($session_id, $params)
    
    Returned is a multidimensional array containing the information from the server_ip table.
    
    Is this correct?
     
  10. till

    till Super Moderator Staff Member ISPConfig Developer

    The usage on all functions is similar. So if you refer to one of the _get functions, then you can pass an array as parameter to search or select values.
     

Share This Page