function create_admin()

in workshop/99_Miscellaneous/Refactoring/functions/database.php [66:91]


function create_admin($databaseConnection, $admin_role_id)
{
    // HACK: Storing config values in variables so that they aren't passed by reference later.
    $default_admin_username = DEFAULT_ADMIN_USERNAME;
    $default_admin_password = DEFAULT_ADMIN_PASSWORD;

    $query_check_admin_exists = "SELECT id FROM users WHERE username = ? LIMIT 1";
    $statement_check_admin_exists = $databaseConnection->prepare($query_check_admin_exists);
    $statement_check_admin_exists->bind_param('s', $default_admin_username);
    $statement_check_admin_exists->execute();
    $statement_check_admin_exists->store_result();
    if ($statement_check_admin_exists->num_rows == 0) {
        $query_insert_admin = "INSERT INTO users (username, password) VALUES (?, SHA(?))";
        $statement_insert_admin = $databaseConnection->prepare($query_insert_admin);
        $statement_insert_admin->bind_param('ss', $default_admin_username, $default_admin_password);
        $statement_insert_admin->execute();
        $statement_insert_admin->store_result();

        $admin_user_id = $statement_insert_admin->insert_id;
        $query_add_admin_to_role = "INSERT INTO users_in_roles (user_id, role_id) VALUES (?, ?)";
        $statement_add_admin_to_role = $databaseConnection->prepare($query_add_admin_to_role);
        $statement_add_admin_to_role->bind_param('dd', $admin_user_id, $admin_role_id);
        $statement_add_admin_to_role->execute();
        $statement_add_admin_to_role->close();
    }
}