Orocrm 仪表板显示 "You do not have permission to perform this action." 错误

Orocrm dashboard displays a "You do not have permission to perform this action." error

好的,这是全新的 Orocrm 安装,我遇到以下错误:

当我在网络日志中挖掘一点时,这是我发现的:

我不知道它是否相关,但是当我按照 orocrm 文档中可用的 WebSocket Connection Configuration 页面的所有说明启用 SSL 支持时,这些错误已经开始出现。

这是我的 nginx 配置文件的内容:

server {
        listen 80;
        listen [::]:80;
        server_name crm.domain.tld;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;

        server_name crm.domain.tld;
        root /home/whatever/crm/public;

        ssl_certificate /etc/letsencrypt/live/crm.domain.tld/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/crm.domain.tld/privkey.pem;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

        include /etc/letsencrypt/options-ssl-nginx.conf;
        # ssl_protocols TLSv1.2;
        # ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES2;

        location / {
                try_files $uri /index.php$is_args$args;
        }

        location ~ ^/index\.php(/|$) {
                fastcgi_pass unix:/run/php/crm-php7.4-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;

                include fastcgi_params;

                fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
                fastcgi_param DOCUMENT_ROOT $realpath_root;

                internal;
        }

        location ~ \.php {
                return 404;
        }

        location /ws {
                # redirect all traffic to localhost:8080;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_set_header X-Forwarded-Proto $scheme;

                proxy_pass http://127.0.0.1:8080/$is_args$args;
                proxy_redirect off;
                proxy_read_timeout 86400;

                # enables WS support
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";

                # prevents 502 bad gateway error
                proxy_buffers 8 32k;
                proxy_buffer_size 64k;

                reset_timedout_connection on;

                error_log /home/whatever/logs/oro_wss_error.log;
                access_log /home/whatever/logs/oro_wss_access.log;
        }

        error_log /home/whatever/logs/error.log;
        access_log /home/whatever/logs/access.log;
}

这是我parameters.yml的内容:

parameters:
    database_driver: pdo_mysql
    database_host: '%env(ORO_DB_HOST)%'
    database_port: '%env(ORO_DB_PORT)%'
    database_name: '%env(ORO_DB_NAME)%'
    database_user: '%env(ORO_DB_USER)%'
    database_password: '%env(ORO_DB_PASSWORD)%'
    database_server_version: '%env(ORO_DB_VERSION)%'
    database_driver_options: {  }

    mailer_transport: '%env(ORO_MAILER_DRIVER)%'
    mailer_host: '%env(ORO_MAILER_HOST)%'
    mailer_port: '%env(ORO_MAILER_PORT)%'
    mailer_encryption: '%env(ORO_MAILER_ENCRYPTION)%'
    mailer_user: '%env(ORO_MAILER_USER)%'
    mailer_password: '%env(ORO_MAILER_PASSWORD)%'

    websocket_bind_address: 0.0.0.0
    websocket_bind_port: 8080
    websocket_frontend_host: '*'
    websocket_frontend_port: 443
    websocket_frontend_path: 'ws'
    websocket_backend_host: '*'
    websocket_backend_port: 443
    websocket_backend_path: 'ws'
    websocket_backend_transport: 'ssl'
    websocket_backend_ssl_context_options: {  }

    web_backend_prefix: ''
    session_handler: session.handler.native_file
    secret: '%env(ORO_SECRET)%'
    installed: '*******************'
    assets_version: *******************
    assets_version_strategy: time_hash
    message_queue_transport: dbal
    message_queue_transport_config: null
    deployment_type: null
    liip_imagine.jpegoptim.binary: null
    liip_imagine.pngquant.binary: null

    env(ORO_DB_HOST): localhost
    env(ORO_DB_PORT): null
    env(ORO_DB_NAME): *******************
    env(ORO_DB_USER): *******************
    env(ORO_DB_PASSWORD): *******************
    env(ORO_DB_VERSION): null
    env(ORO_MAILER_DRIVER): smtp
    env(ORO_MAILER_HOST): 127.0.0.1
    env(ORO_MAILER_PORT): null
    env(ORO_MAILER_ENCRYPTION): null
    env(ORO_MAILER_USER): null
    env(ORO_MAILER_PASSWORD): null
    env(ORO_SECRET): *******************

这是我的 supervisor 配置文件的内容:

***

[program:oro_web_socket]
command=php ./bin/console gos:websocket:server --env=prod
numprocs=1
autostart=true
autorestart=true
directory=/home/whatever/crm
user=whatever
redirect_stderr=true

[program:oro_message_consumer]
command=php ./bin/console oro:message-queue:consume --env=prod
process_name=%(program_name)s_%(process_num)02d
numprocs=5
autostart=true
autorestart=true
directory=/home/whatever/crm
user=whatever
redirect_stderr=true

var/logs/prod.log 不输入任何内容 tail -f prod.log.

WSS 日志为空

它也可能是相关的,但是在 Orocrm 选项中启用 api 沙箱后 我陷入了一个循环 每隔几秒左右将我重定向到仪表板Orocrm 的。我设法通过在正确的时间点击浏览器的停止加载按钮来以某种方式修复它。禁用该选项后,不再有循环重定向。

有什么线索吗?我 运行 没主意了。

它确实与 SSL 相关,从 unsafe 移动到 SSL 是根深蒂固的潜在问题。

对于一些上下文,这是我在收到错误消息之前所做的:

当我开始安装 Orocrm 时,我没有 SSL 证书。我打开浏览器并开始配置它。当我完成配置 Orocrm 时,我不得不更改密码,因为我使用的是临时密码,但在此之前我必须安装 SSL 证书

我已经开始使用 Letsencrypt 工具 安装 SSL 证书。完成后,我设置了 Orocrm 以支持 SSL,然后我再次重新打开 orocrm,事情开始出错。

是什么引发了错误消息?

不安全 移动到 SSL 后未清除 cookie。

我不确定深层工作情况如何,但这可能是因为我的浏览器中已经有一个可用的 _csrf cookie,https-_csrf cookie 是不可能的可能由于某处条件而存在。

如何修复错误消息?

你现在可能已经猜到了,它非常简单。要修复错误消息,您只需删除 _csrf cookie,然后刷新页面即可。它将被 https-_csrf cookie 代替。