packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/ajax.php
author Dan Fuhry <dan@fuhry.us>
Sat, 16 Feb 2013 20:47:45 -0500
changeset 7 faf6f7941e8f
parent 0 3906ca745819
permissions -rw-r--r--
Enhancements to User CP - handle attribute deletion/mod more gracefully

<?php

require('includes/starthere.php');

if ( !isset($_GET['op']) )
	die();

$result = false;
switch($_GET['op'])
{
	case 'checkAvailability':
		if ( !preg_match('/^[a-z0-9]{3,32}$/', $_GET['uid']) )
		{
			$result = 'Username contains invalid characters, or does not meet length requirement (3-32 characters).';
			break;
		}
		$userinfo = ldap_get_user($_GET['uid']);
		if ( !$userinfo )
			$result = true;
		else
			$result = 'This username is already taken.';
	case 'listUsers':
		$result = ldap_list_users();
		break;
	case 'getGroup':
		$result = ldap_get_group($_GET['gid']);
		break;
	case 'removeUserFromGroup':
		$group = ldap_get_group($_GET['gid']);
		if ( in_array($_GET['uid'], $group['memberUid']) )
			$result = ldap_delete_group_member($_GET['gid'], $_GET['uid']);
		break;
	case 'addUserToGroup':
		$group = ldap_get_group($_GET['gid']);
		if ( $group && !in_array($_GET['uid'], $group['memberUid']) )
			$result = ldap_add_group_member($_GET['gid'], $_GET['uid']);
		break;
}

header('Content-type: text/javascript');
echo json_encode($result);