@Bolarinwa_Balogun wrote:
Hi,
I am working on a plugin and I want to display the avatar of users. Is there a way to get a user avatar using their username?
Posts: 2
Participants: 2
@Bolarinwa_Balogun wrote:
Hi,
I am working on a plugin and I want to display the avatar of users. Is there a way to get a user avatar using their username?
Posts: 2
Participants: 2
@mdfrg wrote:
Hello,
I have a problem with setting up Discourse forum with Letsencrypt SSL cert. For the sake of example, I will refer to my page as mypage.com.
THE GOAL:
I want to set up VPS where I will have wordpress blog working on blog.mypage.com, landingpage on mypage.com and Discourse forum on forum.mypage.com. I want to use nginx with mariadb and have Letsencrypt SSL certs installed.
THE PROBLEM:
When I enter the forum.mypage.com for the first time with “fresh” browser (cookies and history deleted, new profile) in chrome I have an error
“This site can’t provide a secure connection
forum.mypage.com sent an invalid response.
ERR_SSL_PROTOCOL_ERROR”With FIrefox, nothing happens - the window is blank and page is not loading.
However, if I go to mypage.com FIRST, everything works as expected and if I THEN enter forum.mypage.com, the DISCOURSE FORUM LOADS WITHOUT PROBLEM.
THE SETUP:
Digital Ocean DNS settings are configured properly, i.e. they redirect mypage.com, www.mypage.com, blog.mypage.com, www.blog.mypage.com, forum.mypage.com and www.forum.mypage.com to my VPS IP. (A record). Record for mailgun are also set properly, as I receive registarion mails from my Discourse installation.
I use Ubuntu 16.04 DigitalOcean droplet where I installed newest stable versions of nginx 1.12.2, php 7.2.2 and mariadb 10.2.13 from maintainers PPAs. 2GB swap file is enabled as requested for Discourse.
I installed certbot using instructions from https://certbot.eff.org/. I used syntax certbot --nginx -d mypage.com,www.mypage.com,blog.mypage.com,www.blog.mypage.com,forum.mypage.com,www.forum.mypage.com
Here is my configuration files:
All files in /var/www are readable by www-data.
/etc/nginx/sites-enabled/default
server { root /var/www/html/; index index.php index.html index.htm index.nginx-debian.html; server_name mypage.com www.mypage.com _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/mypage.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mypage.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = www.mypage.com) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = mypage.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name mypage.com www.mypage.com _; return 404; # managed by Certbot }
/etc/nginx/sites-enabled/discourse
server { listen 80; listen [::]:80; server_name forum.mypage.com www.forum.mypage.com; # <-- change this return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name forum.mypage.com; # <-- change this ssl on; ssl_certificate /var/discourse/shared/standalone/ssl/ssl.crt; ssl_certificate_key /var/discourse/shared/standalone/ssl/ssl.key; ssl_dhparam /var/discourse/shared/standalone/ssl/dhparams.pem; #ssl_certificate /etc/letsencrypt/live/mypage.com/fullchain.pem; #ssl_certificate_key /etc/letsencrypt/live/mypage.com/privkey.pem; #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; ssl_session_tickets off; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA; http2_idle_timeout 5m; # up from 3m default location / { proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } }
/etc/nginx/sites-enabled/blog
server { root /var/www/blog; index index.php index.html index.htm index.nginx-debian.html; server_name blog.mypage.com www.blog.mypage.com; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } listen [::]:443 ssl ipv6only=on; # managed by Certbot listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/mypage.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mypage.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = www.blog.mypage.com) { return 301 https://$host$request_uri; } # managed by Certbot if ($host = blog.mypage.com) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name blog.mypage.com www.blog.mypage.com; return 404; # managed by Certbot }
/var/discourse/containers/app.yml
templates: - "templates/postgres.template.yml" - "templates/redis.template.yml" - "templates/web.template.yml" - "templates/web.ratelimited.template.yml" - "templates/web.socketed.template.yml" ## Uncomment these two lines if you wish to add Lets Encrypt (https) - "templates/web.ssl.template.yml" #- "templates/web.letsencrypt.ssl.template.yml" ## which TCP/IP ports should this container expose? ## If you want Discourse to share a port with another webserver like Apache or nginx, ## see https://meta.discourse.org/t/17247 for details expose: # - "80:80" # http # - "443:443" # https params: db_default_text_search_config: "pg_catalog.english" db_shared_buffers: "128MB" env: LANG: en_US.UTF-8 UNICORN_WORKERS: 2 DISCOURSE_HOSTNAME: forum.mypage.com DISCOURSE_DEVELOPER_EMAILS: 'my@mail.com' DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org DISCOURSE_SMTP_PORT: 587 DISCOURSE_SMTP_USER_NAME: postmaster@mg.mypage.com DISCOURSE_SMTP_PASSWORD: "mypassword" volumes: - volume: host: /var/discourse/shared/standalone guest: /shared - volume: host: /var/discourse/shared/standalone/log/var-log guest: /var/log hooks: after_code: - exec: cd: $home/plugins cmd: - git clone https://github.com/discourse/docker_manager.git
To set up Discourse I followed instructions from Running other websites on the same machine as Discourse
EDIT: added nginx log
nginx error log (debug mode):
http proxy header: "POST /message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t HTTP/1.1 Host: forum.mypage.com X-Forwarded-For: 94.254.162.203 X-Forwarded-Proto: https Connection: close Content-Length: 154 user-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0 accept: application/json, text/javascript, */*; q=0.01 accept-language: en-GB,en;q=0.5 accept-encoding: gzip, deflate, br referer: https://forum.mypage.com/ x-csrf-token: undefined content-type: application/x-www-form-urlencoded; charset=UTF-8 x-silence-logger: true dont-chunk: true x-requested-with: XMLHttpRequest cookie: __cfduid=dabdb09c0c5b037b730155b7e7afd7be71517471541 " http cleanup add: 00005651877B0FF8 get rr peer, try: 1 stream socket 13 epoll add connection: fd:13 ev:80002005 connect to unix:/var/discourse/shared/standalone/nginx.http.sock, fd:13 #4 connected http upstream connect: 0 posix_memalign: 00005651877A3A50:128 @16 http upstream send request http upstream send request body chain writer buf fl:0 s:705 chain writer buf fl:1 s:154 chain writer in: 000056518772D348 writev: 859 of 859 chain writer out: 0000000000000000 event timer add: 13: 60000:1519655986745 http2 frame complete pos:0000565187806582 end:0000565187806582 http2 frame out: 0000565187733EB0 sid:0 bl:0 len:4 http2 frame out: 0000565187733BF0 sid:0 bl:0 len:0 malloc: 00005651878462C0:16384 SSL buf copy: 9 SSL buf copy: 13 SSL to write: 22 SSL_write: 22 http2 frame sent: 0000565187733BF0 sid:0 bl:0 len:0 http2 frame sent: 0000565187733EB0 sid:0 bl:0 len:4 event timer del: 3: 1519656226737 http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream dummy handler http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream dummy handler http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream process header malloc: 000056518772E040:4096 recv: eof:0, avail:1 recv: fd:13 547 of 4096 http proxy status 200 "200 OK" http proxy header: "Server: nginx" http proxy header: "Date: Mon, 26 Feb 2018 14:38:46 GMT" http proxy header: "Content-Type: application/json; charset=utf-8" http proxy header: "Transfer-Encoding: chunked" http proxy header: "Connection: close" http proxy header: "Vary: Accept-Encoding" http proxy header: "Cache-Control: must-revalidate, private, max-age=0" http proxy header: "Pragma: no-cache" http proxy header: "Expires: 0" http proxy header: "Access-Control-Allow-Origin: https://forum.mypage.com" http proxy header: "Access-Control-Allow-Methods: GET, POST" http proxy header: "Access-Control-Allow-Headers: X-SILENCE-LOGGER, X-Shared-Session-Key, Dont-Chunk, Discourse-Visible" http proxy header: "X-Runtime: 0.012014" http proxy header: "Content-Encoding: gzip" http proxy header done xslt filter header http2 header filter http2 output header: ":status: 200" http2 output header: "server: nginx/1.12.2" http2 output header: "date: Mon, 26 Feb 2018 14:38:46 GMT" http2 output header: "content-type: application/json; charset=utf-8" http2 output header: "vary: Accept-Encoding" http2 output header: "cache-control: must-revalidate, private, max-age=0" http2 output header: "pragma: no-cache" http2 output header: "expires: 0" http2 output header: "access-control-allow-origin: https://forum.mypage.com" http2 output header: "access-control-allow-methods: GET, POST" http2 output header: "access-control-allow-headers: X-SILENCE-LOGGER, X-Shared-Session-Key, Dont-Chunk, Discourse-Visible" http2 output header: "x-runtime: 0.012014" http2 output header: "content-encoding: gzip" http2:15 create HEADERS frame 000056518772DB98: len:331 http cleanup add: 000056518772DC80 http2 frame out: 000056518772DB98 sid:15 bl:1 len:331 SSL buf copy: 9 SSL buf copy: 331 http2:15 HEADERS frame 000056518772DB98 was sent http2 frame sent: 000056518772DB98 sid:15 bl:1 len:331 http cacheable: 0 http proxy filter init s:200 h:0 c:1 l:-1 http upstream process upstream pipe read upstream: 0 pipe preread: 20 pipe buf free s:0 t:1 f:0 000056518772E040, pos 000056518772E24F, size: 20 file: 0, size: 0 pipe length: 3 http chunked byte: 66 s:0 http chunked byte: 0D s:1 http chunked byte: 0A s:3 http chunked byte: 1F s:4 input buf #0 000056518772E252 http chunked byte: 0D s:5 http chunked byte: 0A s:6 http proxy chunked state 0, length 3 input buf 000056518772E252 15 pipe write downstream: 1 pipe write busy: 0 pipe write buf ls:1 000056518772E252 15 pipe write: out:000056518772D348, f:0 http output filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http copy filter: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" image filter xslt filter body http postpone filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" 000056518772D348 write new buf t:1 f:0 000056518772E040, pos 000056518772E252, size: 15 file: 0, size: 0 http write filter: l:0 f:1 s:15 http write filter limit 0 http2:15 available windows: conn:12582912 stream:12582912 http2:15 create DATA frame 000056518772DB98: len:15 flags:0 http2 frame out: 000056518772DB98 sid:15 bl:0 len:15 SSL buf copy: 9 SSL buf copy: 15 SSL to write: 364 SSL_write: 364 http2:15 DATA frame 000056518772DB98 was sent http2 frame sent: 000056518772DB98 sid:15 bl:0 len:15 http write filter 0000000000000000 http copy filter: 0 "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" pipe write busy: 0 pipe write: out:0000000000000000, f:0 pipe read upstream: 0 pipe buf free s:0 t:1 f:0 000056518772E040, pos 000056518772E040, size: 0 file: 0, size: 0 pipe length: 3 event timer: 13, old: 1519655986745, new: 1519655986759 http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream dummy handler http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream process upstream pipe read upstream: 1 readv: eof:0, avail:1 readv: 1, last:4096 pipe recv chain: 13 pipe buf free s:0 t:1 f:0 000056518772E040, pos 000056518772E040, size: 13 file: 0, size: 0 pipe length: 3 http chunked byte: 38 s:0 http chunked byte: 0D s:1 http chunked byte: 0A s:3 http chunked byte: 8A s:4 input buf #1 000056518772E043 http chunked byte: 0D s:5 http chunked byte: 0A s:6 http proxy chunked state 0, length 3 input buf 000056518772E043 8 pipe write downstream: 1 pipe write busy: 0 pipe write buf ls:1 000056518772E043 8 pipe write: out:000056518772D348, f:0 http output filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http copy filter: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" image filter xslt filter body http postpone filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" 000056518772D348 write new buf t:1 f:0 000056518772E040, pos 000056518772E043, size: 8 file: 0, size: 0 http write filter: l:0 f:1 s:8 http write filter limit 0 http2:15 available windows: conn:12582897 stream:12582897 http2:15 create DATA frame 000056518772DB98: len:8 flags:0 http2 frame out: 000056518772DB98 sid:15 bl:0 len:8 SSL buf copy: 9 SSL buf copy: 8 SSL to write: 17 SSL_write: 17 http2:15 DATA frame 000056518772DB98 was sent http2 frame sent: 000056518772DB98 sid:15 bl:0 len:8 http write filter 0000000000000000 http copy filter: 0 "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" pipe write busy: 0 pipe write: out:0000000000000000, f:0 pipe read upstream: 0 pipe buf free s:0 t:1 f:0 000056518772E040, pos 000056518772E040, size: 0 file: 0, size: 0 pipe length: 3 event timer: 13, old: 1519655986745, new: 1519655986760 http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream dummy handler http upstream request: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http upstream process upstream pipe read upstream: 1 readv: eof:0, avail:1 readv: 1, last:4096 pipe recv chain: 20 pipe buf free s:0 t:1 f:0 000056518772E040, pos 000056518772E040, size: 20 file: 0, size: 0 pipe length: 3 http chunked byte: 61 s:0 http chunked byte: 0D s:1 http chunked byte: 0A s:3 http chunked byte: 03 s:4 input buf #2 000056518772E043 http chunked byte: 0D s:5 http chunked byte: 0A s:6 http chunked byte: 30 s:0 http chunked byte: 0D s:1 http chunked byte: 0A s:8 http chunked byte: 0D s:9 http chunked byte: 0A s:10 http proxy chunked state 0, length 3 input buf 000056518772E043 10 pipe write downstream: 1 pipe write downstream flush in http output filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http copy filter: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" image filter xslt filter body http postpone filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" 000056518772D348 write new buf t:1 f:0 000056518772E040, pos 000056518772E043, size: 10 file: 0, size: 0 http write filter: l:0 f:0 s:10 http copy filter: 0 "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" pipe write downstream done event timer: 13, old: 1519655986745, new: 1519655986760 http upstream exit: 0000000000000000 finalize http upstream request: 0 finalize http proxy request free rr peer 1 0 close http upstream connection: 13 free: 00005651877A3A50, unused: 48 event timer del: 13: 1519655986745 reusable connection: 0 http upstream temp fd: -1 http output filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http copy filter: "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" image filter xslt filter body http postpone filter "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" 00007FFDB2259F80 write old buf t:1 f:0 000056518772E040, pos 000056518772E043, size: 10 file: 0, size: 0 write new buf t:0 f:0 0000000000000000, pos 0000000000000000, size: 0 file: 0, size: 0 http write filter: l:1 f:0 s:10 http write filter limit 0 http2:15 available windows: conn:12582889 stream:12582889 http2:15 create DATA frame 000056518772DB98: len:10 flags:1 http2 frame out: 000056518772DB98 sid:15 bl:0 len:10 SSL buf copy: 9 SSL buf copy: 10 SSL to write: 19 SSL_write: 19 http2:15 DATA frame 000056518772DB98 was sent http2 frame sent: 000056518772DB98 sid:15 bl:0 len:10 http write filter 0000000000000000 http copy filter: 0 "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" http finalize request: 0, "/message-bus/f4c00a7368eb483db0a50783f4188da6/poll?dlp=t" a:1, c:1 http request count:1 blk:0 http2 close stream 15, queued 0, processing 1 http close request http log handler free: 000056518772E040 free: 00005651877AF030, unused: 2 free: 00005651877B0040, unused: 8 free: 000056518772D030, unused: 35 free: 00005651877A1930, unused: 375 post event 00005651877E2470 delete posted event 00005651877E2470 http2 handle connection handler free: 0000565187733BA0, unused: 3136 free: 00005651878462C0 reusable connection: 1 event timer add: 3: 300000:1519656226760 http2 idle handler reusable connection: 0 posix_memalign: 0000565187733BA0:4096 @16 http2 read handler SSL_read: 0 SSL_get_error: 1 SL_read() failed (SSL: error:140943F2:SSL routines:ssl3_read_bytes:sslv3 alert unexpected message:SSL alert number 10) while processing HTTP/2 connection, client: 94.254.162.203, server: 0.0.0.0:443 close http connection: 3 SSL_shutdown: 1 event timer del: 3: 1519656226760 reusable connection: 0 run cleanup: 00005651877A12C0 free: 0000565187733BA0, unused: 4016 free: 0000000000000000 free: 000056518772C020 free: 00005651877B1050 free: 00005651877A1130, unused: 8 free: 00005651877AE9B0, unused: 0 free: 000056518775D8A0, unused: 0 free: 000056518775DAB0, unused: 0 free: 00005651877A1D40, unused: 88
Posts: 4
Participants: 2
@thorbenegberts wrote:
Hi there,
as non-admin users try to invite another user to a private message, they get an error 500:
For admin-users everything works fine.
(Version: Discourse 2.0.0.beta3 - GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. version a9699da67290905174879ef971eb6876e30bf675, hosted instance forum.plentymarkets.com)
Posts: 1
Participants: 1
@RCheesley wrote:
Hello all,
I wondered if it possible to have categories where users can see the category, but they can’t see posts within unless they are of a certain group?
The use case is a large membership site which has multiple interest groups or regional groups which would be organised by category - people may not know the interest group exists if they can’t see the category, and the idea being they would then request access and be approved, then being able to view all the posts within.
I’ve tried searching but not coming up with answers, possibly using the wrong phrases!
Thanks in advance!
Ruth
Posts: 4
Participants: 3
@erikmolenaarnl wrote:
Hi Discourse team,
Sometimes replies below WP Posts are very long. This is great content when reading directly in Discourse, but sometimes too much to handle to show below a WP Post. It can almost look kinda spammy.
I would like to suggest to limit the length of the reply and show a link to continue reading the reply on Discourse.
Suggested settings in Wordpress plugin:
A real live example is at: Multiple Spanning Tree (MST) | NetworkLessons.com. I always show 5 replies and the 4th reply is almost 16,000 pixels in height.
Thanks for listening and looking forward to your reply.
Posts: 1
Participants: 1
@erikmolenaarnl wrote:
Hi,
Users regulary upload images to enrich their Discourse replies. Which is great content!
These images are shown in the replies below the WP Posts as well. However, they can get quite out of hand. Users do not compress images, can upload quite a lot of images and this affects loading times of the page and thus SEO negatively.
I would like to suggest to remove images below WP Posts and just show a link to the uploaded image. Or: show a link to continue reading the reply (and check out the images) in Discourse.
This way the replies just work like a textual preview of what’s to read more directly in Discourse?
Thanks for listening. I hope my suggestion is of any help to improve the Wordpress plugin. Looking forward to your reply.
Posts: 1
Participants: 1
@BPBPBP wrote:
Hello,
I think there is still no similar topic as mine. I would like to have a feature that allows me as admin/mod to delete the posts BUT the regular users would have the chance to click on the removed post and see it if they want. So I have a long story discussion under one topic but there are some posts not worth to be seen so I delete them but anyone can still if they wish to see what’s behind it.For example. I see something not ok, I edit it and then delete. Regular user can have the same option as me mod/admin to “show hidden messages” but of course WITHOUT options to get it back.
Is there a way to somehow ‘share’ the privilege with ACL (access control list)-like option to do it?
Thank you,
Bartosz
Posts: 1
Participants: 1
@McBlu wrote:
G’day,
I have no clue how crazy this sounds as an idea to look into. I wasn’t able to find what I wanted to know with the search terms I used. Feel free to direct me to topics, if applicable. Thanks in advance.
Here goes . . .
We’d like to watch live-streamed town council meetings while chatting in the forum in the Babble - A Chat Plugin.
Is there any way to embed that live streaming video into a discourse forum topic so people can access it easily while chatting in the forum chat window?
If not, I am trying to think of the most efficient and tech-friendly way to go . . . the chat would be conducted in the forum chat channel, and we could start a topic with a link to the live streamed meeting. I imagine in that case, people would make thoughtful comments as replies to the topic while being more ad lib in the chat channel . . .
Posts: 7
Participants: 4
@tobiaseigen wrote:
@vinothkannans I have now upgraded and started testing the new feature allowing staff to tag personal messages. I’ve been looking forward to this for a long time and it’s looking good so far! Nice work.
Some things I noticed:
- maybe a bug - the tags used by staff in PMs show up in the /tags list, also for regular (and anonymous) users. If a user doesn’t have permission to see tagged messages or topics the tag should not be visible at all to that user. (this is, btw, the case in the tags pulldown search - in my test the tag did not show up there)
- there is no UI for getting to PM tags and lists of PMs that have a particular tag, except via the link below the message title when looking at a message or message lists. Intuition tells me there should be a https://meta.discourse.org/messages/tags and/or https://meta.discourse.org/u/tobiaseigen/messages/tags page
- there is no bulk action available for PMs to bulk change/append tags which would be hugely helpful to staff trying to get organized with handling a backlog of messages. There are other bulk actions that would also be very handy to have (e.g. bulk delete, bulk assign, bulk solve, bulk add/remove user or group from message, etc).
- I don’t know if it’s possible to have staff only tags, ideally organized into tag groups for easy management and for limiting who can see them - if so can someone show me how to set this up?
Posts: 2
Participants: 2
@jomaxro wrote:
Our Google login provider has the following code:
def after_create_account(user, auth) data = auth[:extra_data] GoogleUserInfo.create({ user_id: user.id }.merge(data)) if auth[:email_valid].to_s == 'true' && data[:email]&.downcase == user.email EmailToken.confirm(user.email_tokens.first.token) user.set_automatic_groups end end
Specifically,
user.set_automatic_groups
ensures that automatic group rules are applied to the user. This function is not called by our other auto providers, including GitHub, Facebook, and Twitter. We should ensure that all social login provider calluser.set_automatic_groups
, or that the call is extracted to a shared function that all providers use.
Posts: 2
Participants: 2
@Jay91 wrote:
Hello friends,
I use Categories and latest posts on my website and i want to show latest posts only on mobile without categories.
somebody here suggested the solution here:
How to default to latest on mobile and categories+latest on desktop?by editing the nginx-settings but i have no idea how to do that, can you guys help me with this,
Thanks a lot in advance.
Posts: 1
Participants: 1
@vikaskedia wrote:
On the home page the categories listing is not displayed properly.
Here is a screenshot:
Posts: 10
Participants: 3
@8BIT wrote:
recently i’ve been notified that users can see the uncategorized category on mobile but not on desktop. confirmed on different users and different themes (default white and default dark theme):
^^^ mobile… you can see it… but below, desktop:
can’t see it…
^^^ mobile… different user, default dark… but you can’t see it on desktop:
running:
Posts: 3
Participants: 2
@HAWK wrote:
Following a direct link to a group activity page results in a 400 error.
e.g: https://meta.discourse.org/groups/plugin_authors/activity/postsIf you navigate via the UI it works fine
e.g./groups
>/groups/plugin_authors
>/groups/plugin_authors/activity/posts
Posts: 3
Participants: 2
@tobiaseigen wrote:
I am adding this as a feature topic because I don’t see it in hte admin settings anywhere. Until all the wonderful work being done to PM tagging has settled down, I think it would be very helpful to many communities to be able to limit access to the /tags page which displays all the tags currently. This includes staff tags and internal tags for private categories, which just adds clutter and confusion for members.
Is hiding or limiting access to /tags something that can be done already, or an admin setting you’d be willing to add?
Update: to give you a sense of the issue I’m talking about, take a look at Global Legal Empowerment Network Community Discussions which currently shows anonymous users a bunch of tags that appear to be used for many topics but then when you click through you see nothing. Like birthday, techupdate, procedure, teamwide-call in screenshot below. I’d like these to only be visible to staff or to the topics in categories they have been used in. (we’ve talked about this here before but I have not yet been able to find the topic…)
Posts: 1
Participants: 1
@ChrisBeach wrote:
I’m very close to finishing a new plugin that allows members to pay to pin their own topics.
Just one little thing is eluding me. I store the user’s balance in a user custom_field, updating the balance when a payment is made. When a user creates a pinned topic, the balance is reduced. All works fine.
What I’d like to do is to hide the “Pinned” checkbox on the Composer if the user’s balance is zero or insufficient.
However, I can’t find an easy way to access the user custom_field from within the composer connector
.js.es6
fileCurrent code (not working):
import { showTxns } from 'discourse/plugins/stripe/discourse-plugin-stripe/lib/txns'; import { getOwner } from 'discourse-common/lib/get-owner'; export default { shouldRender(args, component) { // FIXME not working const balance = component.currentUser.custom_fields["stripe_txn_balance"]; const fee = component.siteSettings.stripe_plugin_fee; return balance >= fee; } };
Do I need to make a call to the “store” (i.e. the backend) to query the custom_field?
Would appreciate your help.
Posts: 3
Participants: 2
@tobiaseigen wrote:
Continuing the discussion from Discourse as a private email support portal:
@sam Can you confirm that this is the case, or did the original idea survive? I think that might be an interesting idea.
Posts: 3
Participants: 2
@Andi_B wrote:
Hi all,
I need to pull data for a category in order to follow up on any unsolved topics created in a certain time span. I’ve attempted at a beyond-novice level to no avail!
This is what I’m thinking I’d need:
date created (if possible between “date A” and “date B”)
date solved (this is what I’m having trouble finding)
topic id
category idMany thanks in advance to whoever can assist!
Posts: 3
Participants: 2
@tobiaseigen wrote:
I spent some time exploring tags today, and came across a few UX issues.
Firstly, are tag groups designed so that each tag can be in multiple tag groups? If not, could it be an admin setting to enforce this?
Then if so, it would help if the filter used when adding tags to a tag group excluded any tags that are already in a tag group. Right now it appears to only exclude tags used for the current tag group you are managing.
It would be so nice to have UI for assigning a tag to a tag group from the tag edit page. Right now you can only rename the tag but it would be helpful to be able to change the tag group from there.
I had multiple browser tabs open as a result, which led to another issue. I was adding tags to a tag group, and then realized I wanted to rename a tag that I had had already added. I renamed it in another tab. The old tag name was still listed as part of the tag group and I was able to add the new one.
And finally, this is still happening:
Posts: 1
Participants: 1
@ChrisBeach wrote:
One thing that’s always slightly bothered me is the black bar that regularly pops up over images, often hiding important details, and (to me) not serving a useful purpose:
Our members wouldn’t be particularly interested in the image dimensions or file size.
Could this be made configurable … or just disabled?
Posts: 4
Participants: 3