function addLocalForward($username, $domainId, $destination, $active, $printErrors = TRUE) { if (!isSiteAdmin()) { if ($printErrors) { print json_encode(array('success' => false, 'errors' => array('username' => 'Permission denied'))); } return FALSE; } if ($active) { $active = 't'; } else { $active = 'f'; } $errors = array(); $foundError = FALSE; if (!$username) { $foundError = TRUE; $errors['username'] = '******'; } if (!$domainId) { $foundError = TRUE; $errors['domain'] = 'This field is required'; } if (!$destination) { $foundError = TRUE; $errors['destination'] = 'This field is required'; } if (!$active) { $foundError = TRUE; $errors['active'] = 'This field is required'; } if ($foundError) { if ($printErrors) { print json_encode(array('success' => false, 'errors' => $errors)); } return FALSE; } $username = strtolower($username); if (!validUserName($username)) { $foundError = TRUE; $errors['username'] = '******'; } $domain = getDomain($domainId); if (!$domain) { $foundError = TRUE; $errors['domain'] = 'Invalid domain'; } if (!validUserName($destination)) { $foundError = TRUE; $errors['destination'] = 'Invalid destination'; } if ($foundError) { if ($printErrors) { print json_encode(array('success' => false, 'errors' => $errors)); } return FALSE; } $email = $username . '@' . $domain; if (userExists($email) || localForwardExists($email)) { if ($printErrors) { print json_encode(array('success' => false, 'errors' => array('username' => 'Username already exists'))); } return FALSE; } $params = array('username' => $username, 'domain_id' => $domainId, 'destination' => $destination, 'active' => $active); return db_insert('virtual_aliases', $params, 'alias_id'); }
function addUser($newUser) { $username = $newUser['username']; $domainId = $newUser['domainId']; $pass = $newUser['pass']; $repPass = $newUser['repPass']; $name = $newUser['name']; $active = $newUser['active']; $errors = array(); $foundError = FALSE; if (!$username) { $foundError = TRUE; $errors['username'] = '******'; } if (!$domainId) { $foundError = TRUE; $errors['domain'] = 'This field is required'; } if (!$pass) { $foundError = TRUE; $errors['password'] = '******'; } if (!$repPass) { $foundError = TRUE; $errors['reppassword'] = '******'; } if (!$active) { $foundError = TRUE; $errors['active'] = 'This field is required'; } if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return; } $username = strtolower($username); if (!validUserName($username)) { $foundError = TRUE; $errors['username'] = '******'; } $domain = getDomain($domainId); if (!$domain) { $foundError = TRUE; $errors['domain'] = 'Invalid domain'; } if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return; } $email = $username . '@' . $domain; $errors = array(); $foundError = FALSE; if (userExists($email) || localForwardExists($email)) { $foundError = TRUE; $errors['username'] = '******'; } if (strlen($pass) < 8) { $foundError = TRUE; $errors['password'] = '******'; } if ($pass != $repPass) { $foundError = TRUE; $errors['reppassword'] = '******'; } $adminDomains = getAdminDomains(); if (!in_array($domain, $adminDomains)) { $foundError = TRUE; $errors['domain'] = 'Permission denied on domain: ' . $domain; } // TODO add password complexity requirements here if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return; } if (!$name) { $name = ''; } if ($active == 'true') { $active = 't'; } else { $active = 'f'; } $sql = 'INSERT INTO virtual_users (' . ' username,' . ' domain_id,' . ' password,' . ' role_id,' . ' description,' . ' active' . ' ) VALUES (?, ?, CRYPT(?, GEN_SALT(\'bf\', 8)), ?, ?, ?)'; $params = array($username, $domainId, $pass, getRoleId('user'), $name, $active); beginTransaction(); $rs = db_do($sql, $params); if (!$rs) { cancelTransaction(); print json_encode(array('success' => false, 'errors' => array('username' => 'Unknown Error'))); return; } $userId = getUserId($email); if (!$userId) { cancelTransaction(); print json_encode(array('success' => false, 'errors' => array('username' => 'Unknown Error'))); return; } $alias = array('username' => $username, 'domain_id' => $domainId, 'destination' => $email, 'active' => $active); $aliasId = db_insert('virtual_aliases', $alias, 'alias_id'); if (!$aliasId) { cancelTransaction(); print json_encode(array('success' => false, 'errors' => array('username' => 'Unknown Error'))); return; } $alias['active'] = $active; $alias['destination'] = $email . '@autoreply.' . $domain; $aliasId = db_insert('virtual_aliases', $alias, 'alias_id'); if (!$aliasId) { cancelTransaction(); print json_encode(array('success' => false, 'errors' => array('username' => 'Unknown Error'))); return; } endTransaction(); print json_encode(array('success' => true)); }
function addAlias($username, $domainId, $destinationId, $active) { if ($active) { $active = 't'; } else { $active = 'f'; } $foundError = FALSE; $errors = array(); if (!$username) { $errors['username'] = '******'; $foundError = TRUE; } if (!$domainId) { $errors['domain'] = 'This field is required'; $foundError = TRUE; } if (!$destinationId) { $errors['destination'] = 'This field is required'; $foundError = TRUE; } if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return FALSE; } $username = strtolower($username); if (!validUserName($username)) { $errors['username'] = '******'; print json_encode(array('success' => false, 'errors' => $errors)); return FALSE; } $domain = getDomain($domainId); if (!$domain) { $errors['domain'] = 'Invalid domain'; $foundError = TRUE; } $email = $username . '@' . $domain; if (userExists($email) || localForwardExists($email)) { $errors['username'] = '******'; $foundError = TRUE; } $destination = getUserEmail($destinationId); if (!$destination) { $errors['destination'] = 'Invalid destination'; $foundError = TRUE; } if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return FALSE; } if (aliasExists($email, $destination)) { $errors['username'] = '******'; $foundError = TRUE; } $adminDomains = getAdminDomains(); if (!in_array($domain, $adminDomains)) { $errors['domain'] = 'Permission denied on domain: ' . $domain; $foundError = TRUE; } $destinationParts = split('@', $destination); $destinationDomain = $destinationParts[1]; if (!in_array($destinationDomain, $adminDomains)) { $errors['destination'] = 'Permission denied on domain: ' . $destinationDomain; $foundError = TRUE; } if ($foundError) { print json_encode(array('success' => false, 'errors' => $errors)); return FALSE; } $params = array('username' => $username, 'domain_id' => $domainId, 'destination' => $destination, 'active' => $active); $ret = db_insert('virtual_aliases', $params, 'alias_id'); if ($ret) { print json_encode(array('success' => TRUE)); return; } print json_encode(array('success' => FALSE, 'msg' => 'Unknown error')); }