protected function createUsersAndRoles($dbAdapter, $configuration, $sqlType)
{
//Create role
$roles = (include GC_APPLICATION_PATH . '/data/install/acl/roles.php');
try {
foreach ($roles['role'] as $key => $value) {
$statement = $dbAdapter->createStatement("INSERT INTO user_acl_role (name) VALUES ('" . $value . "')");
$result = $statement->execute();
}
} catch (Exception $e) {
return $this->returnJson(array('messages' => $e->getMessage()));
}
//resources
$resources = (include GC_APPLICATION_PATH . '/data/install/acl/resources.php');
try {
foreach ($resources as $key => $value) {
$statement = $dbAdapter->createStatement("INSERT INTO user_acl_resource (resource) VALUES ('" . $key . "')");
$result = $statement->execute();
$statement = $dbAdapter->createStatement("SELECT id FROM user_acl_resource WHERE resource = '" . $key . "'");
$result = $statement->execute();
$lastInsertId = $result->current();
$lastInsertId = $lastInsertId['id'];
$permissions = array();
foreach ($value as $k => $v) {
if (!in_array($k, $permissions)) {
$statement = $dbAdapter->createStatement("INSERT INTO user_acl_permission\n (\n permission,\n user_acl_resource_id\n )\n VALUES ('" . $k . "', '" . $lastInsertId . "')");
$result = $statement->execute();
$permissions[] = $k;
}
}
}
foreach ($resources as $key => $value) {
$statement = $dbAdapter->createStatement("SELECT id FROM user_acl_resource WHERE resource = '" . $key . "'");
$result = $statement->execute();
$lastResourceInsertId = $result->current();
$lastResourceInsertId = $lastResourceInsertId['id'];
foreach ($value as $k => $v) {
$statement = $dbAdapter->createStatement("SELECT id\n FROM user_acl_permission\n WHERE permission = '" . $k . "'\n AND user_acl_resource_id = '" . $lastResourceInsertId . "'");
$result = $statement->execute();
$lastInsertId = $result->current();
$lastInsertId = $lastInsertId['id'];
$statement = $dbAdapter->createStatement("SELECT id FROM user_acl_role WHERE name = '" . $v . "'");
$result = $statement->execute();
$role = $result->current();
if (!empty($role['id'])) {
$statement = $dbAdapter->createStatement("INSERT INTO user_acl\n (\n user_acl_role_id,\n user_acl_permission_id\n )\n VALUES ('" . $role['id'] . "', " . $lastInsertId . ')');
$result = $statement->execute();
}
}
}
} catch (Exception $e) {
return $this->returnJson(array('messages' => $e->getMessage()));
}
//Add admin user
if ($sqlType == 'mysql') {
$sqlString = 'INSERT INTO `user`
(
created_at,
updated_at,
lastname,
firstname,
email,
login,
password,
user_acl_role_id
)
VALUES (NOW(), NOW(), ?, ?, ?, ?, ?, 1)';
} else {
$sqlString = 'INSERT INTO "user"
(
created_at,
updated_at,
lastname,
firstname,
email,
login,
password,
user_acl_role_id
)
VALUES (NOW(), NOW(), ?, ?, ?, ?, ?, 1)';
}
$dbAdapter->query($sqlString, array($configuration['admin_lastname'], $configuration['admin_firstname'], $configuration['admin_email'], $configuration['admin_login'], sha1($configuration['admin_password'])));
}