Пример #1
0
 function _testBusy()
 {
     $Contact = DBContact::GetInstance()->LoadByCLID('VRSGN3');
     //$Module = $this->Registry->GetModule();
     //$Domain = $this->Registry->NewDomainInstance();
     //$Domain->Name = "webta";
     //$Module->CreateDomain($Domain, 2);
     $Domain = $this->Registry->NewDomainInstance();
     $Domain->Name = "webta-" . rand(1000, 9999);
     $Domain->UserID = 1;
     $Domain->SetContact($Contact, CONTACT_TYPE::REGISTRANT);
     $Domain->SetContact($Contact, CONTACT_TYPE::BILLING);
     $Domain->SetContact($Contact, CONTACT_TYPE::TECH);
     $this->Registry->CreateDomain($Domain, 2);
     //$ns1 = new NameserverHost('ns1.' . $Domain->GetHostName(), gethostbyname('hostdad.com'));
     //$ns2 = new NameserverHost('ns2.' . $Domain->GetHostName(), gethostbyname('hostdad.com'));
     /*
     $this->Registry->CreateNameserverHost($ns1);
     $this->Registry->CreateNameserverHost($ns2);
     
     $Changes = $Domain->GetNameserverChangelist();
     $Changes->Add($ns1);
     $Changes->Add($ns2);
     $this->Registry->UpdateDomainNameservers($Domain, $Changes);
     */
 }
Пример #2
0
 function __construct($module, $userid, $in)
 {
     $this->module = $module;
     $this->userid = $userid;
     if (false === ($in0 = realpath(dirname(__FILE__) . "/" . $in)) || !file_exists($in0) || !is_readable($in0)) {
         throw new Exception("'{$in}' is not exists or not readable");
     }
     $this->in = $in0;
     $this->registryFactory = RegistryModuleFactory::GetInstance();
     $this->dbContact = DBContact::GetInstance();
 }
Пример #3
0
 /**
  * @param $params = array(
  * 		clid		string		Contact CLID
  * 		fields		array		
  * )
  * @return eppdrs-api.xsd#updateContactResponse
  */
 function UpdateContact($params)
 {
     $this->CheckContactAccess($params['clid']);
     $contact = DBContact::GetInstance()->LoadByCLID($params['clid']);
     $registry = $contact->ModuleName ? $this->registry_factory->GetRegistryByName($contact->ModuleName) : $this->registry_factory->GetRegistryByExtension($contact->Extension);
     try {
         $contact->SetFieldList($params['fields']);
     } catch (ErrorList $e) {
         throw new Exception(join("\n", $e->GetAllMessages()));
     }
     $registry->UpdateContact($contact);
     return new stdClass();
 }
Пример #4
0
 /**
  * 
  * @param $params = array(
  * 		query		string		Search over contact fields and clid
  * 		userId		int 		User ID (Only in admin mode)
  * 
  * 		start		int			Data slice start. Default 0
  * 		limit		int			Date slice size. Default 25. -1 Unlimited 
  * )
  * @return object
  */
 function ListContacts($params = null)
 {
     $sql = "SELECT DISTINCT c.* from contacts AS c";
     $where = array();
     $bind = array();
     // Apply filter
     if ($params["query"]) {
         $query = mysql_escape_string($params["query"]);
         $sql .= " LEFT JOIN contacts_data as cd ON c.clid = cd.contactid";
         $where[] = "(c.clid LIKE '%{$query}%' OR cd.`value` LIKE '%{$query}%')";
     }
     if ($this->access_mode == self::ACCESS_MODE_ADMIN) {
         if ($params["userId"]) {
             $where[] = "c.userid = ?";
             $bind[] = $params["userId"];
         }
     } else {
         // Users can search only in their domains
         $where[] = "c.userid = ?";
         $bind[] = $this->user_id;
     }
     // Build SQL
     $sql .= $where ? " WHERE " . join(" AND ", $where) : "";
     $sql_total = preg_replace('/DISTINCT c\\.\\*/', 'COUNT(DISTINCT c.id)', $sql, 1);
     // Sorting
     $sql .= " ORDER BY id ASC";
     // Apply limits
     if ($params["limit"] != -1) {
         $sql .= sprintf(" LIMIT %d, %d", $params["start"] ? $params["start"] : 0, $params["limit"] ? $params["limit"] : 25);
     }
     $rows = $this->db->GetAll($sql, $bind);
     $total = $this->db->GetOne($sql_total, $bind);
     $ret = new stdClass();
     $ret->contactList = new stdClass();
     $ret->total = $total;
     $db_contact = DBContact::GetInstance();
     foreach ($rows as $row) {
         $ret_contact = new stdClass();
         $ret_contact->clid = $row["clid"];
         try {
             $contact = $db_contact->Load($row["id"]);
             $ret_contact->name = $contact->GetFullName();
             $ret_contact->email = $contact->GetEmail();
         } catch (Exception $e) {
             $ret_contact->name = $ret_contact->email = "Unknown";
         }
         $ret->contactList->contact[] = $ret_contact;
     }
     return $ret;
 }
Пример #5
0
 function __construct(AbstractRegistryModule $reg_module)
 {
     $this->DB = Core::GetDBInstance();
     $this->DBDomain = DBDomain::GetInstance();
     $this->DBContact = DBContact::GetInstance();
     $this->DBHameserverHost = DBNameserverHost::GetInstance();
     $this->RegModule = $reg_module;
     $this->Manifest = $reg_module->Manifest;
     $this->Extension = $reg_module->Extension;
     //$reg_module->SetRegistryAccessible(new RegistryAccessible($this));
     $reg_module->SetRegistryAccessible($this);
     // Get interfaces implemented by module
     $impls = (array) class_implements(get_class($reg_module));
     $this->ObserverImplemented = in_array('IRegistryObserver', $impls);
     $this->ServerPollableImplemented = in_array('IRegistryModuleServerPollable', $impls);
     $this->ClientPollableImplemented = in_array('IRegistryModuleClientPollable', $impls);
 }
Пример #6
0
 public function __construct($old_dsn, $options)
 {
     foreach ($options as $flag => $b) {
         $this->{$flag} = $b;
     }
     $this->DbOld =& NewADOConnection($old_dsn);
     $this->DbOld->SetFetchMode(ADODB_FETCH_ASSOC);
     $this->DbNew = Core::GetDBInstance();
     $this->DBDomain = DBDomain::GetInstance();
     $this->DBContact = DBContact::GetInstance();
     $this->RegistryFactory = RegistryModuleFactory::GetInstance();
     $this->Crypto = $GLOBALS['Crypto'];
     $this->TableList = array();
     foreach ($this->DbOld->GetAll('SHOW TABLES') as $row) {
         $this->TableList[] = array_shift(array_values($row));
         // first column in row
     }
     $this->ModuleNameMapFlip = array_flip($this->ModuleNameMap);
 }
 /**
  * @param Invoice $Invoice Paid trade invoice
  * @throws LogicException
  */
 private function initFromInvoice(Invoice $Invoice)
 {
     if ($Invoice->Status != INVOICE_STATUS::PAID) {
         throw new LogicException("Invoice is unpaid");
     }
     if ($Invoice->Purpose != INVOICE_PURPOSE::DOMAIN_TRADE) {
         throw new LogicException("Invoice status must be INVOICE_PURPOSE::DOMAIN_TRADE. '{$Invoice->Purpose}' taken");
     }
     try {
         $this->Domain = DBDomain::GetInstance()->Load($Invoice->ItemID);
         $this->contact_type = CONTACT_TYPE::REGISTRANT;
         $this->NewContact = DBContact::GetInstance()->LoadByCLID($this->Domain->NewRegistrantCLID);
         $this->Invoice = $Invoice;
     } catch (Exception $e) {
         $this->Domain = null;
         $this->contact_type = null;
         $this->NewContact = null;
         $this->Invoice = null;
         throw new LogicException(sprintf(_("Cannot initialize action. Reason: %s"), $e->getMessage()));
     }
 }
Пример #8
0
 public function __construct()
 {
     $this->DB = Core::GetDBInstance();
     $this->DBContact = DBContact::GetInstance();
     $this->DBNameserverHost = DBNameserverHost::GetInstance();
 }
Пример #9
0
				$Registry->RemovePendingOperation($PendingOperation->ID);
				if ($PendingOperation->Type == Registry::OP_UPDATE_APPROVE)
				{
					$fields = array();
					foreach ($Contact->GetEditableNames() as $n)
					{
						$fields[$n] = $PendingOperation->ObjectBefore->GetField($n);
					}
					$Contact->SetFieldList($fields);	
					$Contact->SetDiscloseList($PendingOperation->ObjectBefore->GetDiscloseList());
					DBContact::GetInstance()->Save($Contact);	
					$okmsg = _("Contact update rejected");
				}
				else
				{
					DBContact::GetInstance()->Delete($Contact);
					$okmsg = _("Contact create rejected");					
				}
				
				CoreUtils::Redirect("contacts_view.php");
				break;
			}
		}
	}
	
   
    $display["help"] = _("This page contains all your contacts for all domain extensions that you have registered. Contacts are unique per domain extension. There are different types of contacts. Most common are Registrant, Billing and Technical. Some domain extension require other contact types to register domain.");
    $display["load_extjs"] = true;
    
	require_once ("src/append.inc.php")
?>
Пример #10
0
 function _testGenerateCLID()
 {
     return;
     $DBContact = DBContact::GetInstance();
     $clid = $DBContact->GenerateCLID('H%d8');
     $this->assertTrue(preg_match('/^H\\d{8}$/', $clid) == true, 'Generate CLID');
 }
 protected function PostContacts()
 {
     $k = "contact_list";
     $DbContact = DBContact::GetInstance();
     $ErrList = new ErrorList();
     foreach ($this->attr[$k] as $tld => $contacts) {
         foreach ($contacts as $clid) {
             if ($clid) {
                 try {
                     $Contact = $DbContact->LoadByCLID($clid);
                     if ($Contact->HasPendingOperation(Registry::OP_CREATE_APPROVE) || $Contact->HasPendingOperation(Registry::OP_UPDATE_APPROVE)) {
                         throw new Exception(sprintf(_("Contact <%s> is not yet approved by administrator"), $Contact->GetTitle()));
                     }
                 } catch (Exception $e) {
                     $ErrList->AddMessage($e->getMessage());
                 }
             }
         }
     }
     if ($ErrList->HasMessages()) {
         throw $ErrList;
     }
     $this->{$k} = $this->attr[$k];
 }
Пример #12
0
            	$err = $e->getAllMessages();
            }
            
            if (!$err)
            {
				$Contact->UserID = $_SESSION['userid'];

				try
				{
	   				// Get contact change policy
					$ContactConfig = $Contact->GetConfig();
					$need_approval = $ContactConfig->policy->approveChangesPolicy 
							&& $ContactConfig->policy->approveChangesPolicy->getName(); 
					if ($need_approval)
					{
						DBContact::GetInstance()->Save($Contact);						
						$Registry->AddPendingOperation($Contact, Registry::OP_CREATE_APPROVE);
						EmailToRegistrantObserver::OnNewChangeContactRequest($Contact, Registry::OP_CREATE_APPROVE);
						
						$okmsg = _("Contact will be created after administrator approval");
						CoreUtils::Redirect("change_contact_policy.php?contactid=".$Contact->ID."&next_url=".urlencode("contacts_view.php"));
					}
					else
					{
						$Registry->CreateContact($Contact);
		            	$okmsg = _("Contact successfully created.");
						CoreUtils::Redirect("contacts_view.php");
					}
				}
				catch (Exception $e)
				{
 /**
  * Enter description here...
  */
 public function Render()
 {
     $this->rendered_data = array();
     $Manifest = $this->Registry->GetManifest();
     $section_shared_contacts = (bool) $Manifest->GetRegistryOptions()->ability->section_shared_contacts;
     $contacts_config = UI::GetContactsListForSmarty($Manifest->GetSectionConfig());
     $DbContact = DBContact::GetInstance();
     foreach ($contacts_config as $v) {
         $smarty_contact = $v;
         $smarty_contact["groupname"] = $Manifest->GetGroupNameByContactType($v["type"]);
         if (!$section_shared_contacts) {
             $section_name = $Manifest->GetSectionName();
             $target_index = $Manifest->GetContactTargetIndex($this->tld, $smarty_contact["groupname"]);
             $smarty_contact['target_title'] = $Manifest->GetContactTargetTitle($this->tld, $smarty_contact["groupname"]);
         } else {
             $section_name = "";
             $target_index = 0;
             $smarty_contact['target_title'] = $this->Registry->GetModuleName();
         }
         // Calculate contact num in group
         $num_items = (int) $this->Db->GetOne("\r\n        \t\tSELECT COUNT(clid) FROM contacts \r\n        \t\tWHERE userid=? AND \r\n        \t\t(TLD = ? OR (module_name=? AND section_name=? AND target_index=?)) AND \r\n        \t\tgroupname=?", array($this->userid, $this->tld, $this->Registry->GetModuleName(), $section_name, $target_index, $smarty_contact["groupname"]));
         if ($num_items < self::MAX_ITEMS) {
             // Render simple contact select list
             $smarty_contact["exists"] = $this->Db->GetAll("\r\n\t        \t\tSELECT clid FROM contacts \r\n\t        \t\tWHERE userid=? AND \r\n\t        \t\t(TLD = ? OR (module_name=? AND section_name=? AND target_index=?)) AND \r\n\t        \t\tgroupname=? \r\n\t        \t\tORDER BY id ASC", array($this->userid, $this->tld, $this->Registry->GetModuleName(), $section_name, $target_index, $smarty_contact["groupname"]));
             $DomainContact = null;
             if ($this->Domain) {
                 $DomainContact = $this->Domain->GetContact($v["type"]);
             }
             $smarty_contact["disabled"] = array();
             foreach ($smarty_contact["exists"] as &$c) {
                 try {
                     $Contact = $DbContact->LoadByCLID($c["clid"]);
                     $smarty_contact["disabled"][$c["clid"]] = count($Contact->GetPendingOperationList());
                     $c['title'] = $Contact->GetTitle();
                     // Check selected
                     if ($DomainContact && $DomainContact->CLID == $c["clid"]) {
                         $c["selected"] = true;
                         $smarty_contact['selected'] = $c['clid'];
                     }
                 } catch (Exception $e) {
                     Log::Log($e->getMessage(), E_USER_ERROR);
                     unset($c);
                     continue;
                 } catch (ErrorList $e) {
                     Log::Log(join('; ', $e->GetAllMessages()), E_USER_ERROR);
                     unset($c);
                     continue;
                 }
             }
             $smarty_contact['list'] = array();
             foreach ($smarty_contact['exists'] as $ex) {
                 $smarty_contact['list'][$ex['clid']] = $ex['title'];
             }
         } else {
             // External contact select
             $smarty_contact['too_many_items'] = true;
         }
         $this->rendered_data['contacts'][] = $smarty_contact;
     }
     $this->rendered_data['tld'] = $this->tld;
     $this->rendered_data['form_title'] = $this->form_title;
     $this->rendered_data['button_text'] = $this->button_text;
     $this->rendered_data['form_action'] = $this->form_action;
     $this->rendered_data['form_method'] = $this->form_method;
     $this->rendered_data['form_fields'] = $this->form_fields;
 }
 private function Init()
 {
     if (!$this->prepared) {
         $ErrList = new ErrorList();
         if (!$this->Registry) {
             $Factory = RegistryModuleFactory::GetInstance();
             try {
                 $this->Registry = $Factory->GetRegistryByExtension($this->tld);
             } catch (Exception $e) {
                 throw new RegisterDomainAction_Exception(sprintf(_("Cannot init registry module. Reason: %s"), $e->getMessage()));
             }
         }
         $registry_config = $this->Registry->GetManifest()->GetSectionConfig();
         $Validator = new Validator();
         /**
          * Validate period
          */
         if ($this->period) {
             self::ValidatePeriod($this->period, $this->Registry);
         }
         /*
          * Validate additional domain information
          */
         $extra_fields = null;
         if (count($registry_config->domain->registration->extra_fields->field) > 0) {
             $extra_fields = UI::GetRegExtraFieldsForSmarty($registry_config);
             foreach ($extra_fields as $field) {
                 if ($field["isrequired"] == 1 && $field["type"] != "checkbox") {
                     if (!strlen($this->extra_data[$field['name']])) {
                         $ErrList->AddMessage(sprintf(_("%s required"), ucfirst($field["name"])));
                     }
                 }
             }
         }
         // Break on errors
         $this->ExceptionOnErrors($ErrList);
         /**
          * Validate DNS
          */
         if (!$this->managed_dns_enabled) {
             if (!$this->nameserver_list) {
                 foreach ($this->ns_list as $ns) {
                     $this->nameserver_list[] = new Nameserver($ns);
                 }
             }
             $nameserver_list = $this->nameserver_list;
             if (count(array_unique($nameserver_list)) < count($nameserver_list)) {
                 $ErrList->AddMessage(_("Cannot use the same nameserver twice."));
             } else {
                 foreach ($nameserver_list as $Nameserver) {
                     if (!$Validator->IsDomain($Nameserver->HostName)) {
                         $ErrList->AddMessage(sprintf(_("'%s' is not a valid host"), $Nameserver->HostName));
                     }
                 }
             }
         } else {
             $this->nameserver_list = array(new Nameserver(CONFIG::$NS1), new Nameserver(CONFIG::$NS2));
         }
         $this->ExceptionOnErrors($ErrList);
         /*
          * Validate contacts 
          */
         if (!$this->contact_list) {
             $DbContact = DBContact::GetInstance();
             $this->contact_list = array();
             foreach ($this->clid_list as $ctype => $clid) {
                 if (!$clid) {
                     continue;
                 }
                 try {
                     $Contact = $DbContact->LoadByCLID($clid);
                     $this->contact_list[$ctype] = $Contact;
                 } catch (Exception $e) {
                     $ErrList->AddMessage(sprintf(_("Cannot load %s contact. %s"), $ctype, $clid, $e->getMessage()));
                 }
             }
             // Break on errors
             $this->ExceptionOnErrors($ErrList);
         }
         $this->ExceptionOnErrors(self::ValidateContactList($this->contact_list, $this->Registry));
         $this->prepared = true;
     }
 }
Пример #15
0
        function _testContactObject()
        {
        	// CreateContact
        	/*
        	try
        	{
	        	$c = $this->registry->NewContactInstance("registrant");
	        	$c->SetFieldList(array(
	        		'name' 		=> 'marat komarov',
	        		'org' 		=> 'MK1O',
	        		'cc' 		=> 'NO',
	        		'sp' 		=> 'crimea',
	        		'city' 		=> 'TRONDHEIM',
	        		'pc' 		=> '7491',
	        		'sp' 		=> 'Crimea',
	        		'street1' 	=> 'bbfdgfd fds',
					'street2' 	=> 'dsf fd d',
	        		'voice' 	=> '+33.12345678',
	        		'fax' 		=> '+33.12345678',
	        		'email' 	=> '*****@*****.**'	
	        	));
        	}
        	catch(ErrorList $e)
        	{
        		var_dump($e);
        	}
        	
        	try 
        	{
        		//$this->registry->CreateContact($c);
        		//$this->assertTrue(true, 'Contact created');
        	}
        	catch (Exception $e)
        	{
        		$this->assertTrue(false, 'Contact created');
        		var_dump($e);
        	}
        	
        	try
        	{
	        	$c = $this->registry->NewContactInstance("tech");
	        	$c->SetFieldList(array(
	        		'name' 		=> 'marat komarov',
	        		'org' 		=> 'MK1O',
	        		'cc' 		=> 'NO',
	        		'sp' 		=> 'crimea',
	        		'city' 		=> 'TRONDHEIM',
	        		'pc' 		=> '7491',
	        		'sp' 		=> 'Crimea',
	        		'street1' 	=> 'bbfdgfd fds',
					'street2' 	=> 'dsf fd d',
	        		'voice' 	=> '+33.12345678',
	        		'fax' 		=> '+33.12345678',
	        		'email' 	=> '*****@*****.**'	
	        	));
        	}
        	catch(ErrorList $e)
        	{
        		var_dump($e);
        	}
        	
        	try 
        	{
        		//$this->registry->CreateContact($c);
        		//$this->assertTrue(true, 'Contact created');
        	}
        	catch (Exception $e)
        	{
        		$this->assertTrue(false, 'Contact created');
        		var_dump($e);
        	}
        	
        	exit();
        	sleep(1);
        	
        	try
        	{
	        	$c->SetFieldList(array(
	        		'name' 		=> 'marat komarov2',
	        		'org' 		=> 'MK1O2',
	        		'cc' 		=> 'UA',
	        		'sp' 		=> 'crimea2',
	        		'city' 		=> 'TRONDHEIM2',
	        		'pc' 		=> '74912',
	        		'sp' 		=> 'Crimea2',
	        		'street1' 	=> 'bbfdgfd fds2',
					'street2' 	=> 'dsf fd d2',
	        		'voice' 	=> '+33.123456782',
	        		'fax' 		=> '+33.123456782',
	        		'email' 	=> '*****@*****.**'	
	        	));
        	}
        	catch(ErrorList $e)
        	{
        		var_dump($e);
        		exit();
        	}
        	
        	try
        	{
        		//$this->registry->UpdateContact($c);        		
        	}
        	catch (Exception $e)
        	{
        		$this->assertTrue(false, 'Contact updated');
        		var_dump($e->getMessage());
        	}
        	
        	sleep(1);
        	*/
        	$c = DBContact::GetInstance()->LoadByCLID("11390275");
        	
        	try 
        	{
        		$c2 = $this->registry->GetRemoteContact($c);
        		var_dump($c2);
        		$this->assertTrue($c2, 'Remote contact received');
        	} 
        	catch (Exception $e) 
        	{
        		var_dump($e);
        		$this->assertTrue(false, 'remote contact received');
        	}
        		
        	try 
        	{
        		//$this->registry->DeleteContact($c2);
        	}
        	catch (Exception $e)
        	{
        		$this->assertTrue(false, 'Contact deleted');
        		var_dump($e->getMessage());        		
        	}
        }
Пример #16
0
<?php

require_once 'src/prepend.inc.php';
// Load contact from DB
$DbContact = DBContact::GetInstance();
try {
    $Contact = $DbContact->Load($req_contactid);
} catch (Exception $e) {
    $errmsg = $e->getMessage();
}
if ($Contact) {
    // Get contact registry module
    try {
        $Registry = $Contact->ModuleName ? $RegistryModuleFactory->GetRegistryByName($Contact->ModuleName) : $RegistryModuleFactory->GetRegistryByExtension($Contact->Extension);
    } catch (Exception $e) {
        $errmsg = $e->getMessage();
    }
    $ContactConfig = $Contact->GetConfig();
    $policy = $ContactConfig->policy->children();
    $policy = $policy[0];
    $policy_id = $policy->attributes()->id;
    $RegistryOptions = $Registry->GetManifest()->GetRegistryOptions();
    $Policy = $RegistryOptions->xpath("policy[@id='{$policy_id}']");
    $display["policy_text"] = count($Policy) ? (string) $Policy[0] : null;
}
$display["button_js_action"] = "location.href='{$req_next_url}'";
require "src/append.inc.php";
Пример #17
0
}
if ($req_query) {
    $filter = mysql_escape_string($req_query);
    $sql .= " AND (clid IN (SELECT DISTINCT contactid FROM contacts_data WHERE value LIKE '%{$filter}%') or clid LIKE '%{$filter}%')";
}
//	$sort = $req_sort ? mysql_escape_string($req_sort) : "module_name";
//	$dir = $req_dir ? mysql_escape_string($req_dir) : "ASC";
$sql .= " ORDER BY tld ASC, module_name ASC";
$response["total"] = $db->GetOne(preg_replace('/clid/', 'COUNT(*)', $sql, 1));
$start = $req_start ? (int) $req_start : 0;
$limit = $req_limit ? (int) $req_limit : 20;
$sql .= " LIMIT {$start}, {$limit}";
$response["data"] = array();
foreach ($db->GetAll($sql) as $row) {
    try {
        $Contact = DBContact::GetInstance()->LoadByCLID($row["clid"]);
    } catch (ErrorList $e) {
        Log::Log(join('; ', $e->GetAllMessages()), E_USER_ERROR);
        continue;
    } catch (Exception $e) {
        Log::Log($e->getMessage(), E_USER_ERROR);
        continue;
    }
    $status = null;
    if ($Contact->HasPendingOperation(Registry::OP_UPDATE_APPROVE)) {
        $status = "Await update approve";
    }
    if ($Contact->HasPendingOperation(Registry::OP_CREATE_APPROVE)) {
        $status = "Await create approve";
    }
    $allows = array();
Пример #18
0
			$RegistryContacts = UI::GetContactsListForSmarty($registry_config);		
			
	        $display["TLD"] = $_SESSION["domaininfo"]["extension"];
	
	        foreach ($RegistryContacts as $k=>$v)
	        {
	        	if (!$_POST[$v["type"]] && $v["isrequired"] == 1)
	        	{
	        		$message = sprintf(_("%s contact not specified"), $v["name"]);
	        		$exception->AddMessage(sprintf(_("%s contact not specified"), $v["name"]));
	        	}
	        	else if ($_POST[$v["type"]])
	        	{
	        		try
	        		{
	        			$Contact = DBContact::GetInstance()->LoadByCLID($_POST[$v["type"]]);
	        			if ($Contact->HasPendingOperation(Registry::OP_CREATE_APPROVE)
	        				|| $Contact->HasPendingOperation(Registry::OP_UPDATE_APPROVE))
	        			{
	        				$exception->AddMessage(
	        					sprintf(_("Contact <%s> is not yet approved by administrator"), $Contact->GetTitle()));
	        			}
	        			else
	        			{
	        				// Accept contact
		        			$_SESSION["domaininfo"][$v["type"]] = $_POST[$v["type"]];	        				
	        			}
	        		}
	        		catch (Exception $e)
	        		{
	        			$exception->AddMessage($e->getMessage());
Пример #19
0
		function updateRoleObject () {
			$title = 'Update the contact role with an additional contact person.';
			try {
				// Need to save contact to prevent 
				// [Exception] Contact was not loaded through DBContact, or was deleted at class.DBContact.php line 55
				// DotNO module during UpdateContact checks DBContact initial state
				$dbContact = DBContact::GetInstance();
				$dbContact->Save($this->role1);				
				
				$data = $this->role1->GetFieldList();
				$data['id'] = $this->role1->CLID;
				$data['no-ext-add'] = "<no-ext-contact:add>"
						. "<no-ext-contact:roleContact>{$this->contact2->CLID}</no-ext-contact:roleContact>"
						. "</no-ext-contact:add>";
				$data['no-ext-rem'] = '';
				
				$trResp = $this->module->Request('contact-update', $data);
				$this->assertTrue($trResp->Succeed, $title);
				
			} catch (RegistryException $e) {
				$this->fail($title);
			}
			
			$dbContact->Delete($this->role1);
		}
Пример #20
0
 function Report(Task $Task)
 {
     $Job = $Task->JobObject;
     $DbContact = DBContact::GetInstance();
     if ($Job->clids[CONTACT_TYPE::REGISTRANT]) {
         $emlvars['Registrant'] = $DbContact->LoadByCLID($Job->clids[CONTACT_TYPE::REGISTRANT]);
     }
     if ($Job->clids[CONTACT_TYPE::ADMIN]) {
         $emlvars['Admin'] = $DbContact->LoadByCLID($Job->clids[CONTACT_TYPE::ADMIN]);
     }
     if ($Job->clids[CONTACT_TYPE::TECH]) {
         $emlvars['Tech'] = $DbContact->LoadByCLID($Job->clids[CONTACT_TYPE::TECH]);
     }
     if ($Job->clids[CONTACT_TYPE::BILLING]) {
         $emlvars['Billing'] = $DbContact->LoadByCLID($Job->clids[CONTACT_TYPE::BILLING]);
     }
     $emlvars['report'] = array();
     foreach ($Task->GetAllTargets() as $Target) {
         $emlvars['report'][] = array('domain' => "{$Target->target}.{$Job->TLD}", 'status' => $Target->status == TargetStatus::OK ? "ok" : "failed", 'fail_reason' => $Target->fail_reason);
     }
     $Client = Client::Load($Task->userid);
     $emlvars['Client'] = $Client;
     mailer_send("bulk_update_contact.eml", $emlvars, $Client->Email, $Client->Name);
 }
Пример #21
0
				foreach ($errors as $_errmsg) $err[] = $_errmsg;
		}
		
		//var_dump($err);
		//var_dump($post_add_data);
		//die();
		
		if (!$err)
		{
			if ($transfer_contacts)
			{
				foreach($transfer_contacts as $v)
				{
					if ($_POST[$v])
					{
						$c = DBContact::GetInstance()->LoadByCLID($_POST[$v]);
						if ($c->HasPendingOperation(Registry::OP_CREATE_APPROVE)
	        				|| $c->HasPendingOperation(Registry::OP_UPDATE_APPROVE))
	        			{
	        				$err[] = sprintf(_("Contact <%s> is not yet approved by administrator"), $c->GetTitle()); 
	        			}
	        			else
	        			{
							$Domain->SetContact($c, $v);
	        			}						
					}			
				}
			}
	
			if (!$err)
			{
Пример #22
0
 function _testMemento()
 {
     // Skip
     return;
     // Domain
     $DBDomain = DBDomain::GetInstance();
     $domain = $DBDomain->Load(88);
     $domain->Status = DOMAIN_STATUS::DELEGATED;
     $oldDomain = $DBDomain->GetInitialState($domain);
     $this->assertTrue($oldDomain->Status == DOMAIN_STATUS::REGISTRATION_PENDING, 'Domain memento');
     // Contact
     $DBContact = DBContact::GetInstance();
     $contact = $DBContact->LoadByCLID('H26523637');
     $contact->SetDiscloseValue('addr', 1);
     $oldContact = $DBContact->GetInitialState($contact);
     $oldDisclose = $oldContact->GetDiscloseList();
     $this->assertTrue($oldDisclose['addr'] == 0, 'Contact memento');
 }
Пример #23
0
 } else {
     if ($stepno == 2) {
         // Accept selected domains
         if (!empty($post_domains)) {
             $_SESSION['BU_DOMAINS'] = $post_domains;
             $stepno = 3;
         } else {
             $errmsg = sprintf(_("No domains were selected"));
         }
     } else {
         if ($stepno == 3) {
             // Accept selected contacts and create pending update operation
             foreach (array($post_registrant, $post_admin, $post_billing, $post_tech) as $clid) {
                 if ($clid) {
                     try {
                         $Contact = DBContact::GetInstance()->LoadByCLID($clid);
                         if ($Contact->HasPendingOperation(Registry::OP_CREATE_APPROVE) || $Contact->HasPendingOperation(Registry::OP_UPDATE_APPROVE)) {
                             $err[] = sprintf(_("Contact <%s> is not yet approved by administrator"), $Contact->GetTitle());
                         }
                     } catch (Exception $e) {
                         $err[] = $e->getMessage();
                     }
                 }
             }
             if (!$err) {
                 if (!($post_registrant || $post_admin || $post_billing || $post_tech)) {
                     $errmsg = sprintf(_("No contacts were selected"));
                 } else {
                     if (!$_SESSION['BU_TLD']) {
                         $errmsg = sprintf(_("No domain extension was selected"));
                     } else {
Пример #24
0
			$req_filter_q,
			array(),
			"(clid IN (SELECT DISTINCT contactid FROM contacts_data WHERE value LIKE '%[FILTER]%')) or clid LIKE '%[FILTER]%'"
		);
		$paging->SetURLFormat("javascript:ContactList_ShowPage('{$req_type}', %d)");
		$paging->TrainLength = 5;
		$sql = $paging->ApplySQLPaging();
		$paging->ParseHTML();
			
		$clids = $db->GetAll($sql);
		$rows = array();
		foreach ($clids as $clid)
		{
			try
			{
				$c = DBContact::GetInstance()->LoadByCLID($clid['clid']);
				$contact_fields = $c->GetFieldList();
				$rows[] = array
				(
					'clid' => $c->CLID,
					'title' => $c->GetTitle()
				);
			}
			catch (Exception $e)
			{}
		}

		$display['rows'] = $rows;
		$display['paging'] = $paging->GetPagerHTML("client/inc/paging.tpl");
		$display['filter'] = $paging->GetFilterHTML('client/inc/contact_table_filter.tpl');
		$display['type'] = $req_type;
Пример #25
0
				(userid=? OR (clid='{$c[0]}' OR clid='{$c[1]}' OR clid='{$c[2]}' OR clid='{$c[3]}')) AND 
				groupname=? AND 
				(TLD = ? OR (module_name=? AND section_name=? AND target_index=?)) 
			ORDER BY IF(clid = ?, 1, 0) DESC",
			array(
				$_SESSION['userid'], $group_name, 
				$Domain->Extension, $Registry->GetModuleName(), $section_name, $target_index, 
				$curr_clid
			)
		);
		
		foreach ($contacts as &$c)
		{
			try
			{
				$Cont = DBContact::GetInstance()->LoadByCLID($c["clid"], $Manifest);
				$c['title'] = $Cont->GetTitle();
				
				unset($Cont);
				$display['contacts'][] = $c;
			}
			catch (Exception $e) 
			{
			}
		}
	}
	else
	{
		$display['too_many_items'] = true;
	}
	
Пример #26
0
		CoreUtils::Redirect("domains_view.php");
	}
			
	$oDomain = @unserialize($info["object_before"]);
	$nDomain = @unserialize($info["object_after"]);
			
	if ($oDomain->UserID != $_SESSION['userid'] || $nDomain->UserID != $_SESSION['userid'])
		CoreUtils::Redirect("domains_view.php");
		
	switch($info["operation"])
	{			
		case "TRADE":
			
			$attrs = array(
							"NewContact" => DBContact::GetInstance()->LoadByCLID($nDomain->GetContact("registrant")->CLID),
							"OldContact" => DBContact::GetInstance()->LoadByCLID($oDomain->GetContact("registrant")->CLID),
						  );
			
			$smarty->assign($attrs);
			$display["details"] = $smarty->fetch("inc/pending_operations_details/trade.tpl"); 
						  
			break;
						
		case "UPDATE":
			
			$contacts = $oDomain->GetContactList();
			foreach ($contacts as $type=>$contact)
			{
				if ($contact->CLID != $nDomain->GetContact($type)->CLID)
					$changes[] = sprintf("Change %s contact from %s to %s", ucfirst($type), $contact->GetFullName(), $nDomain->GetContact($type)->GetFullName());
			}