GcFrontend\Controller\InstallController::createUsersAndRoles PHP Метод

createUsersAndRoles() защищенный Метод

Create users and roles
protected createUsersAndRoles ( Zend\Db\Adapter\Adapter $dbAdapter, array $configuration, string $sqlType ) : Zend\View\Model\JsonModel | null
$dbAdapter Zend\Db\Adapter\Adapter Database adapter
$configuration array Configuration
$sqlType string Sql database type
Результат Zend\View\Model\JsonModel | null
    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'])));
    }