From 68fd4f11b24203d71bbd92f51fe9f19829469de6 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:56:14 +0900 Subject: [PATCH 001/127] Revert "Delete bbb-icons-ori.woff" This reverts commit 84937a0d076f79076d8df201e3edb278374df0d0. --- .../public/fonts/BbbIcons/bbb-icons-ori.woff | Bin 0 -> 16556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff new file mode 100644 index 0000000000000000000000000000000000000000..8063d6bf985b0c9763682428d38fc671e7af9a22 GIT binary patch literal 16556 zcmZU4V{|4>xa}L;wr$(CZBJ}YFtKfCVw)4&w%*v9*vXmi+`HEOaclLis=fQ!Ro$z8 zbyYu}N|KUF>gq}WfN(Vc4)Cw2!2>}4YybZuCMih_0DuVt0Q|WCfPAvo9|I^!Np*#P zUhsd>`2QiYVX{w3TtX565Ze96N&kToKm`a?Qe$ET06>2H`?x_OUuE>8_n3(_TL;uq_{(%$q0FLR$Kk=XTF9tyT59H7SpcOyt-Ms$U{^ODV zFhtY@LuYT|^=~{7<9{6Tf1#%ga4@mA_@_1h1NXnVyoI7qL7g03-Tu7?{l6Hre<1#D z1F(7Jm>HWJ8w2)ZA&x|DKRAtW+I6sncV#ydL6QAzDP4!Yd%qF1)7bPtI`HA;iB$kH z`S9rf%>UQd`sUb&JV<)`ee*4yb_6esg5HM+NWg`-0sxc&0KNYcXYw`79T=Dz7-&to zhyw{3<_|snlGUG)h(4hlhR z4h|@#f=~Ewtki^An*m|u@ZLwGv;KvqG6CA<`bgqa7R>%CsIvxCQFv)m79Ot~um_Y4 ztW&(^Q9&)LY=P!bRd~DO&CH#dFUvqYpfdXo0a6@>pCNu*`~IMFb|NnK^_*6GT<2D$ z)u_ODZ?vj=twmc)nT;mAm&;b;Gv}7&VA%m8nEOq8v}Wc(-l36BlIx+oi0nWf>U2Ux z;t(KsHYT#fCzb+F*J3O%O52peO7<*C#-8CD8Y%7dR=;?>XKC<9G1$Q@WgyIycDOYv zVI_C<1ncYrZ?yP_r06@bQM(97kB_Q})4?6~@9sr>413CY<7A;+HzG@mzLRpJXd8?}e!5X*j+U;fsy6Xn5_!&{j&rj({js=4l6DgP7puiW`Qc!Z>LD39S86vu z!2upuk-0~f0HcN81HKTW1@P1vb)4Zqb*$!qye&T4Q9ila++v*EI;kOPlfqNBRN7M7 zQs!9tSO!ztFwtE0jvOM%R3>$Z-dXx1iEgad`H?8e|CFf zdt`e?VgLI0`hf5_?-`y zadz@TvV$CMK0AxG8uD8)o$mz{-)rHP_qg{+RgZc3(x zzJ56)!31m?WC3^hE*l8YlV%0Aq#({>}sWKRMSc-ynrR;SYu<; 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 Date: Sat, 9 Jan 2021 12:56:30 +0900 Subject: [PATCH 002/127] Revert "Add files via upload" This reverts commit 391434445ab286a160fde63533fa843175e9e8a0. --- .../public/fonts/BbbIcons/bbb-icons.woff | Bin 16556 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff deleted file mode 100644 index 8063d6bf985b0c9763682428d38fc671e7af9a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16556 zcmZU4V{|4>xa}L;wr$(CZBJ}YFtKfCVw)4&w%*v9*vXmi+`HEOaclLis=fQ!Ro$z8 zbyYu}N|KUF>gq}WfN(Vc4)Cw2!2>}4YybZuCMih_0DuVt0Q|WCfPAvo9|I^!Np*#P zUhsd>`2QiYVX{w3TtX565Ze96N&kToKm`a?Qe$ET06>2H`?x_OUuE>8_n3(_TL;uq_{(%$q0FLR$Kk=XTF9tyT59H7SpcOyt-Ms$U{^ODV zFhtY@LuYT|^=~{7<9{6Tf1#%ga4@mA_@_1h1NXnVyoI7qL7g03-Tu7?{l6Hre<1#D z1F(7Jm>HWJ8w2)ZA&x|DKRAtW+I6sncV#ydL6QAzDP4!Yd%qF1)7bPtI`HA;iB$kH z`S9rf%>UQd`sUb&JV<)`ee*4yb_6esg5HM+NWg`-0sxc&0KNYcXYw`79T=Dz7-&to zhyw{3<_|snlGUG)h(4hlhR z4h|@#f=~Ewtki^An*m|u@ZLwGv;KvqG6CA<`bgqa7R>%CsIvxCQFv)m79Ot~um_Y4 ztW&(^Q9&)LY=P!bRd~DO&CH#dFUvqYpfdXo0a6@>pCNu*`~IMFb|NnK^_*6GT<2D$ z)u_ODZ?vj=twmc)nT;mAm&;b;Gv}7&VA%m8nEOq8v}Wc(-l36BlIx+oi0nWf>U2Ux z;t(KsHYT#fCzb+F*J3O%O52peO7<*C#-8CD8Y%7dR=;?>XKC<9G1$Q@WgyIycDOYv zVI_C<1ncYrZ?yP_r06@bQM(97kB_Q})4?6~@9sr>413CY<7A;+HzG@mzLRpJXd8?}e!5X*j+U;fsy6Xn5_!&{j&rj({js=4l6DgP7puiW`Qc!Z>LD39S86vu z!2upuk-0~f0HcN81HKTW1@P1vb)4Zqb*$!qye&T4Q9ila++v*EI;kOPlfqNBRN7M7 zQs!9tSO!ztFwtE0jvOM%R3>$Z-dXx1iEgad`H?8e|CFf zdt`e?VgLI0`hf5_?-`y zadz@TvV$CMK0AxG8uD8)o$mz{-)rHP_qg{+RgZc3(x zzJ56)!31m?WC3^hE*l8YlV%0Aq#({>}sWKRMSc-ynrR;SYu<; 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 Date: Sat, 9 Jan 2021 12:56:41 +0900 Subject: [PATCH 003/127] Revert "Delete bbb-icons.woff" This reverts commit 7c245c666d9adc7a8a1b1dc88b01bce749109b2f. --- .../public/fonts/BbbIcons/bbb-icons.woff | Bin 0 -> 17180 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..ab00f58e6669f937c43b295b8a9e89b87db12367 GIT binary patch literal 17180 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

X-x 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 YdN;r4sozBQtn{{N3j=<~5cmK906vslvH$=8 literal 0 HcmV?d00001 From 4f8b7aa488a1bcfee7518d7d38cfcbf5a2e86860 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:56:46 +0900 Subject: [PATCH 004/127] Revert "Add files via upload" This reverts commit 6f8c764c4bc35d646d9691cec8298d0ad3b98b11. --- .../public/fonts/BbbIcons/bbb-icons-ori.woff | Bin 16556 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons-ori.woff deleted file mode 100644 index 8063d6bf985b0c9763682428d38fc671e7af9a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16556 zcmZU4V{|4>xa}L;wr$(CZBJ}YFtKfCVw)4&w%*v9*vXmi+`HEOaclLis=fQ!Ro$z8 zbyYu}N|KUF>gq}WfN(Vc4)Cw2!2>}4YybZuCMih_0DuVt0Q|WCfPAvo9|I^!Np*#P zUhsd>`2QiYVX{w3TtX565Ze96N&kToKm`a?Qe$ET06>2H`?x_OUuE>8_n3(_TL;uq_{(%$q0FLR$Kk=XTF9tyT59H7SpcOyt-Ms$U{^ODV zFhtY@LuYT|^=~{7<9{6Tf1#%ga4@mA_@_1h1NXnVyoI7qL7g03-Tu7?{l6Hre<1#D z1F(7Jm>HWJ8w2)ZA&x|DKRAtW+I6sncV#ydL6QAzDP4!Yd%qF1)7bPtI`HA;iB$kH z`S9rf%>UQd`sUb&JV<)`ee*4yb_6esg5HM+NWg`-0sxc&0KNYcXYw`79T=Dz7-&to zhyw{3<_|snlGUG)h(4hlhR z4h|@#f=~Ewtki^An*m|u@ZLwGv;KvqG6CA<`bgqa7R>%CsIvxCQFv)m79Ot~um_Y4 ztW&(^Q9&)LY=P!bRd~DO&CH#dFUvqYpfdXo0a6@>pCNu*`~IMFb|NnK^_*6GT<2D$ z)u_ODZ?vj=twmc)nT;mAm&;b;Gv}7&VA%m8nEOq8v}Wc(-l36BlIx+oi0nWf>U2Ux z;t(KsHYT#fCzb+F*J3O%O52peO7<*C#-8CD8Y%7dR=;?>XKC<9G1$Q@WgyIycDOYv zVI_C<1ncYrZ?yP_r06@bQM(97kB_Q})4?6~@9sr>413CY<7A;+HzG@mzLRpJXd8?}e!5X*j+U;fsy6Xn5_!&{j&rj({js=4l6DgP7puiW`Qc!Z>LD39S86vu z!2upuk-0~f0HcN81HKTW1@P1vb)4Zqb*$!qye&T4Q9ila++v*EI;kOPlfqNBRN7M7 zQs!9tSO!ztFwtE0jvOM%R3>$Z-dXx1iEgad`H?8e|CFf zdt`e?VgLI0`hf5_?-`y zadz@TvV$CMK0AxG8uD8)o$mz{-)rHP_qg{+RgZc3(x zzJ56)!31m?WC3^hE*l8YlV%0Aq#({>}sWKRMSc-ynrR;SYu<; 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 Date: Sat, 9 Jan 2021 12:56:52 +0900 Subject: [PATCH 005/127] Revert "Delete tmp.woff" This reverts commit 5141e653599b4d83ddff6123ed59c1e4eb4d18e0. --- bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff | 1 + 1 file changed, 1 insertion(+) create mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff b/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff @@ -0,0 +1 @@ + From d77527e17a1f8ae638a8cebbb9d49bb50d2e10bf Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:56:57 +0900 Subject: [PATCH 006/127] Revert "Add files via upload" This reverts commit c8f7b17b0483910b6fa2750b2138cc3895e57145. --- .../public/fonts/BbbIcons/bbb-icons.woff | Bin 17180 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff deleted file mode 100644 index ab00f58e6669f937c43b295b8a9e89b87db12367..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17180 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

X-x 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 YdN;r4sozBQtn{{N3j=<~5cmK906vslvH$=8 From 267dc412d561c3d2eac49959e4b0ada77b8364bd Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:57:02 +0900 Subject: [PATCH 007/127] Revert "Create tmp.woff" This reverts commit 73c45065944d96f7779971b3535943c96feb2897. --- bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff | 1 - 1 file changed, 1 deletion(-) delete mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff b/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff deleted file mode 100644 index 8b137891791f..000000000000 --- a/bigbluebutton-html5/public/fonts/BbbIcons/tmp.woff +++ /dev/null @@ -1 +0,0 @@ - From d221d290cd5ad33b3c455b09f9da36d5788ee152 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Sat, 9 Jan 2021 12:57:10 +0900 Subject: [PATCH 008/127] Revert "Delete bbb-icons.woff" This reverts commit 9d01d58527bac04ebbf9be61140a13e7e14d7cc8. --- .../public/fonts/BbbIcons/bbb-icons.woff | Bin 0 -> 16556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff diff --git a/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff b/bigbluebutton-html5/public/fonts/BbbIcons/bbb-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..8063d6bf985b0c9763682428d38fc671e7af9a22 GIT binary patch literal 16556 zcmZU4V{|4>xa}L;wr$(CZBJ}YFtKfCVw)4&w%*v9*vXmi+`HEOaclLis=fQ!Ro$z8 zbyYu}N|KUF>gq}WfN(Vc4)Cw2!2>}4YybZuCMih_0DuVt0Q|WCfPAvo9|I^!Np*#P zUhsd>`2QiYVX{w3TtX565Ze96N&kToKm`a?Qe$ET06>2H`?x_OUuE>8_n3(_TL;uq_{(%$q0FLR$Kk=XTF9tyT59H7SpcOyt-Ms$U{^ODV zFhtY@LuYT|^=~{7<9{6Tf1#%ga4@mA_@_1h1NXnVyoI7qL7g03-Tu7?{l6Hre<1#D z1F(7Jm>HWJ8w2)ZA&x|DKRAtW+I6sncV#ydL6QAzDP4!Yd%qF1)7bPtI`HA;iB$kH z`S9rf%>UQd`sUb&JV<)`ee*4yb_6esg5HM+NWg`-0sxc&0KNYcXYw`79T=Dz7-&to zhyw{3<_|snlGUG)h(4hlhR z4h|@#f=~Ewtki^An*m|u@ZLwGv;KvqG6CA<`bgqa7R>%CsIvxCQFv)m79Ot~um_Y4 ztW&(^Q9&)LY=P!bRd~DO&CH#dFUvqYpfdXo0a6@>pCNu*`~IMFb|NnK^_*6GT<2D$ z)u_ODZ?vj=twmc)nT;mAm&;b;Gv}7&VA%m8nEOq8v}Wc(-l36BlIx+oi0nWf>U2Ux z;t(KsHYT#fCzb+F*J3O%O52peO7<*C#-8CD8Y%7dR=;?>XKC<9G1$Q@WgyIycDOYv zVI_C<1ncYrZ?yP_r06@bQM(97kB_Q})4?6~@9sr>413CY<7A;+HzG@mzLRpJXd8?}e!5X*j+U;fsy6Xn5_!&{j&rj({js=4l6DgP7puiW`Qc!Z>LD39S86vu z!2upuk-0~f0HcN81HKTW1@P1vb)4Zqb*$!qye&T4Q9ila++v*EI;kOPlfqNBRN7M7 zQs!9tSO!ztFwtE0jvOM%R3>$Z-dXx1iEgad`H?8e|CFf zdt`e?VgLI0`hf5_?-`y zadz@TvV$CMK0AxG8uD8)o$mz{-)rHP_qg{+RgZc3(x zzJ56)!31m?WC3^hE*l8YlV%0Aq#({>}sWKRMSc-ynrR;SYu<; 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 Date: Thu, 11 Feb 2021 14:16:58 +0900 Subject: [PATCH 009/127] Update Meeting.java --- .../org/bigbluebutton/api/domain/Meeting.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java index 71fa3725418d..67f3e468c0b3 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java @@ -82,6 +82,9 @@ public class Meeting { private String customCopyright = ""; private Boolean muteOnStart = false; private Boolean allowModsToUnmuteUsers = false; + + private HashMap uploadRequests = new HashMap(); + private HashMap uploadedFiles = new HashMap(); private Integer meetingExpireIfNoUserJoinedInMinutes = 5; private Integer meetingExpireWhenLastUserLeftInMinutes = 1; @@ -145,6 +148,16 @@ record = builder.record; public void addBreakoutRoom(String meetingId) { breakoutRooms.add(meetingId); } + + public void addUploadRequest(String source, String filename, String userId, String token) { + UploadRequest uploadRequest = new UploadRequest(source, filename, userId); + uploadRequests.put(token, uploadRequest); + } + + public void addUploadedFile(String source, String filename, String contentType, String extension, String uploadId) { + UploadedFile uploadedFile = new UploadedFile(source, filename, contentType, extension); + uploadedFiles.put(uploadId, uploadedFile); + } public List getBreakoutRooms() { return breakoutRooms; @@ -212,6 +225,29 @@ public void setGuestStatusWithId(String userId, String guestStatus) { } } + + public Boolean isUploadRequestValid(String source, String filename, String userId, String token) { + UploadRequest uploadRequest = uploadRequests.get(token); + if (uploadRequest != null) { + return uploadRequest.isValid(source, filename, userId); + } else { + return false; + } + } + + public Boolean hasUploadedFile(String source, String uploadId) { + UploadedFile uploadedFile = uploadedFiles.get(uploadId); + if (uploadedFile != null) { + return source.equals(uploadedFile.source); + } else { + return false; + } + } + + public UploadedFile getUploadedFile(String uploadId) { + UploadedFile uploadedFile = uploadedFiles.get(uploadId); + return uploadedFile; + } public RegisteredUser getRegisteredUserWithAuthToken(String authToken) { for (RegisteredUser ruser : registeredUsers.values()) { From 08bd1cfae84df779863f6148e5e2558461ba5bea Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:19:53 +0900 Subject: [PATCH 010/127] Create UploadedFile.java --- .../bigbluebutton/api/domain/UploadedFile.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadedFile.java diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadedFile.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadedFile.java new file mode 100644 index 000000000000..477a754d38a3 --- /dev/null +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadedFile.java @@ -0,0 +1,15 @@ +package org.bigbluebutton.api.domain; + +public class UploadedFile { + public final String source; + public final String filename; + public final String contentType; + public final String extension; + + public UploadedFile(String source, String filename, String contentType, String extension) { + this.source = source; + this.filename = filename; + this.contentType = contentType; + this.extension = extension; + } +} From 7ec84b469ce563214c7b883e87cc6c6c3c3e2fed Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:20:59 +0900 Subject: [PATCH 011/127] Create UploadRequest.java --- .../api/domain/UploadRequest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadRequest.java diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadRequest.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadRequest.java new file mode 100644 index 000000000000..2863c18ed51a --- /dev/null +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/UploadRequest.java @@ -0,0 +1,28 @@ +package org.bigbluebutton.api.domain; + +public class UploadRequest { + public final String source; + public final String filename; + public final String userId; + private Boolean valid; + + public UploadRequest(String source, String filename, String userId) { + this.source = source; + this.filename = filename; + this.userId = userId; + this.valid = true; + } + + public Boolean isValid(String source, String filename, String userId) { + if (this.valid) { + // Invalidate this upload request after the first check + this.valid = false; + Boolean validSource = source != null && source.equals(this.source); + Boolean validFilename = filename != null && filename.equals(this.filename); + Boolean validUserId = userId != null && userId.equals(this.userId); + return validSource && validFilename && validUserId; + } else { + return false; + } + } +} From 46e230104f67ad8e6566c582eab52d53cc2ab392 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:28:06 +0900 Subject: [PATCH 012/127] Update MeetingService.java --- .../org/bigbluebutton/api/MeetingService.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java index f09b5366ce0e..992a05ca9e1e 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java @@ -49,6 +49,7 @@ import org.bigbluebutton.api.domain.RegisteredUser; import org.bigbluebutton.api.domain.User; import org.bigbluebutton.api.domain.UserSession; +import org.bigbluebutton.api.domain.UploadedFile; import org.bigbluebutton.api.messaging.MessageListener; import org.bigbluebutton.api.messaging.converters.messages.DestroyMeetingMessage; import org.bigbluebutton.api.messaging.converters.messages.EndMeetingMessage; @@ -66,6 +67,7 @@ import org.bigbluebutton.api.messaging.messages.MeetingDestroyed; import org.bigbluebutton.api.messaging.messages.MeetingEnded; import org.bigbluebutton.api.messaging.messages.MeetingStarted; +import org.bigbluebutton.api.messaging.messages.UploadRequest; import org.bigbluebutton.api.messaging.messages.PresentationUploadToken; import org.bigbluebutton.api.messaging.messages.RecordChapterBreak; import org.bigbluebutton.api.messaging.messages.RegisterUser; @@ -287,6 +289,33 @@ private void kickOffProcessingOfRecording(Meeting m) { processRecording(m); } } + + public Boolean isUploadRequestValid(String meetingId, String source, String filename, String userId, String token) { + Meeting m = getMeeting(meetingId); + if (m != null) { + return m.isUploadRequestValid(source, filename, userId, token); + } else { + return false; + } + } + + public Boolean isDownloadRequestValid(String meetingId, String source, String uploadId) { + Meeting m = getMeeting(meetingId); + if (m != null) { + return m.hasUploadedFile(source, uploadId); + } else { + return false; + } + } + + public UploadedFile getUploadedFile(String meetingId, String uploadId) { + Meeting m = getMeeting(meetingId); + if (m != null) { + return m.getUploadedFile(uploadId); + } else { + return null; + } + } public Boolean authzTokenIsValid(String authzToken) { // Note we DO NOT expire the token return uploadAuthzTokens.containsKey(authzToken); @@ -608,10 +637,33 @@ public void processRecording(Meeting m) { } } + public void fileUploaded( + String uploadId, + String source, + String filename, + String contentType, + String extension, + String userId, + String meetingId + ) { + Meeting m = getMeeting(meetingId); + if (m != null) { + m.addUploadedFile(source, filename, contentType, extension, uploadId); + gw.fileUploaded(uploadId, source, filename, contentType, userId, meetingId); + } + } + public void endMeeting(String meetingId) { handle(new EndMeeting(meetingId)); } + private void processUploadRequest(UploadRequest message) { + Meeting m = getMeeting(message.meetingId); + if (m != null) { + m.addUploadRequest(message.source, message.filename, message.userId, message.token); + } + } + private void processCreateBreakoutRoom(CreateBreakoutRoom message) { Meeting parentMeeting = getMeeting(message.parentMeetingId); if (parentMeeting != null) { @@ -1079,6 +1131,8 @@ public void run() { processRegisterUser((RegisterUser) message); } else if (message instanceof CreateBreakoutRoom) { processCreateBreakoutRoom((CreateBreakoutRoom) message); + } else if (message instanceof UploadRequest) { + processUploadRequest((UploadRequest) message); } else if (message instanceof PresentationUploadToken) { processPresentationUploadToken((PresentationUploadToken) message); } else if (message instanceof GuestStatusChangedEventMsg) { From 5dd92690ac3eb07cf3c4e2899ba93514a6031345 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:29:02 +0900 Subject: [PATCH 013/127] Create UploadRequest.java --- .../api/messaging/messages/UploadRequest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 bbb-common-web/src/main/java/org/bigbluebutton/api/messaging/messages/UploadRequest.java diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/messaging/messages/UploadRequest.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/messaging/messages/UploadRequest.java new file mode 100644 index 000000000000..2eec4c72e150 --- /dev/null +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/messaging/messages/UploadRequest.java @@ -0,0 +1,17 @@ +package org.bigbluebutton.api.messaging.messages; + +public class UploadRequest implements IMessage { + public final String meetingId; + public final String source; + public final String filename; + public final String userId; + public final String token; + + public UploadRequest(String meetingId, String source, String filename, String userId, String token) { + this.meetingId = meetingId; + this.source = source; + this.filename = filename; + this.userId = userId; + this.token = token; + } +} From 2671de071990e1c1936532c1e0eb144557ef1ad9 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:35:13 +0900 Subject: [PATCH 014/127] Update ParamsProcessorUtil.java --- .../bigbluebutton/api/ParamsProcessorUtil.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java index 172265ded770..bc17cbff485c 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java @@ -105,6 +105,8 @@ public class ParamsProcessorUtil { private String defaultConfigXML = null; private Long maxPresentationFileUpload = 30000000L; // 30MB + private Long maxUploadSize = 30000000L; // 30MB + private String uploadDir; private Integer clientLogoutTimerInMinutes = 0; private Integer meetingExpireIfNoUserJoinedInMinutes = 5; @@ -1017,6 +1019,22 @@ public void setMaxPresentationFileUpload(Long maxFileSize) { public Long getMaxPresentationFileUpload() { return maxPresentationFileUpload; } + + public void setMaxUploadSize(Long maxUploadSize) { + this.maxUploadSize = maxUploadSize; + } + + public Long getMaxUploadSize() { + return maxUploadSize; + } + + public void setUploadDir(String uploadDir) { + this.uploadDir = uploadDir; + } + + public String getUploadDir() { + return uploadDir; + } public void setMuteOnStart(Boolean mute) { defaultMuteOnStart = mute; From e6d8218ba368347834fd97fc4eee08cee50f3a1d Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:39:13 +0900 Subject: [PATCH 015/127] Update Util.java --- .../main/java/org/bigbluebutton/api/Util.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java index c0c272ebad93..0afe9ba395d7 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/Util.java @@ -127,4 +127,27 @@ public static void makePresentationDownloadable( } } } + + public static String generateUploadId(String filename) { + long timestamp = System.currentTimeMillis(); + return DigestUtils.sha1Hex(filename) + "-" + timestamp; + } + + public static File createUploadDir(String rootDir, String source, String meetingId, String uploadId) { + String meetingsPath = rootDir + File.separatorChar + "meetings"; + String sourcePath = meetingsPath + File.separatorChar + meetingId + File.separatorChar + source; + String uploadPath = sourcePath + File.separatorChar + uploadId; + File uploadDir = new File(uploadPath); + if (uploadDir.mkdirs()) { + return uploadDir; + } + return null; + } + + public static String getDownloadPath(String rootDir, String source, String meetingId, String uploadId) { + String meetingsPath = rootDir + File.separatorChar + "meetings"; + String sourcePath = meetingsPath + File.separatorChar + meetingId + File.separatorChar + source; + String downloadPath = sourcePath + File.separatorChar + uploadId; + return downloadPath; + } } From 31db20bc481c5923a2359f221015fb5c19fa648b Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:49:41 +0900 Subject: [PATCH 016/127] Update IBbbWebApiGWApp.java --- .../main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java index 76b12060b858..5e7e53d08846 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api2/IBbbWebApiGWApp.java @@ -42,6 +42,14 @@ void ejectDuplicateUser(String meetingID, String internalUserId, String fullname void destroyMeeting(DestroyMeetingMessage msg); void endMeeting(EndMeetingMessage msg); + void fileUploaded( + String uploadId, + String source, + String filename, + String contentType, + String userId, + String meetingId + ); void sendKeepAlive(String system, Long timestamp); void publishedRecording(PublishedRecordingMessage msg); void unpublishedRecording(UnpublishedRecordingMessage msg); From f653692c8822b90c63f95b1f76d20eaca9f8e596 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:52:41 +0900 Subject: [PATCH 017/127] Update BbbWebApiGWApp.scala --- .../org/bigbluebutton/api2/BbbWebApiGWApp.scala | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala index 01ce30586126..79b5ba9e0cd6 100755 --- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala +++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/BbbWebApiGWApp.scala @@ -260,6 +260,18 @@ class BbbWebApiGWApp( msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event)) } + def fileUploaded( + uploadId: String, + source: String, + filename: String, + contentType: String, + userId: String, + meetingId: String + ): Unit = { + val event = MsgBuilder.buildFileUploadedSysMsg(uploadId, source, filename, contentType, userId, meetingId) + msgToAkkaAppsEventBus.publish(MsgToAkkaApps(toAkkaAppsChannel, event)) + } + def publishedRecording(msg: PublishedRecordingMessage): Unit = { val event = MsgBuilder.buildPublishedRecordingSysMsg(msg) // Probably violating something here, but a new event bus looks just too much for this From ae04eacdd8726a6251b86334adcb03b9be25b821 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:53:52 +0900 Subject: [PATCH 018/127] Update ReceivedJsonMsgHdlrActor.scala --- .../org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala index c78d684342c8..2839bc94e2ab 100755 --- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala +++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/bus/ReceivedJsonMsgHdlrActor.scala @@ -88,6 +88,8 @@ class ReceivedJsonMsgHdlrActor(val msgFromAkkaAppsEventBus: MsgFromAkkaAppsEvent route[UserRoleChangedEvtMsg](envelope, jsonNode) case CreateBreakoutRoomSysCmdMsg.NAME => route[CreateBreakoutRoomSysCmdMsg](envelope, jsonNode) + case UploadRequestSysMsg.NAME => + route[UploadRequestSysMsg](envelope, jsonNode) case PresentationUploadTokenSysPubMsg.NAME => route[PresentationUploadTokenSysPubMsg](envelope, jsonNode) case GuestsWaitingApprovedEvtMsg.NAME => From 3c032c79c40d98c02815f95678c2322cd8e5d397 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:55:32 +0900 Subject: [PATCH 019/127] Update OldMeetingMsgHdlrActor.scala --- .../bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala index 8c70b881e6f4..ea87570570b9 100755 --- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala +++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/meeting/OldMeetingMsgHdlrActor.scala @@ -36,6 +36,7 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW) case m: UserBroadcastCamStartedEvtMsg => handleUserBroadcastCamStartedEvtMsg(m) case m: UserBroadcastCamStoppedEvtMsg => handleUserBroadcastCamStoppedEvtMsg(m) case m: CreateBreakoutRoomSysCmdMsg => handleCreateBreakoutRoomSysCmdMsg(m) + case m: UploadRequestSysMsg => handleUploadRequestSysMsg(m) case m: PresentationUploadTokenSysPubMsg => handlePresentationUploadTokenSysPubMsg(m) case m: GuestsWaitingApprovedEvtMsg => handleGuestsWaitingApprovedEvtMsg(m) case m: GuestPolicyChangedEvtMsg => handleGuestPolicyChangedEvtMsg(m) @@ -142,6 +143,10 @@ class OldMeetingMsgHdlrActor(val olgMsgGW: OldMessageReceivedGW) olgMsgGW.handle(new UserRoleChanged(msg.header.meetingId, msg.body.userId, msg.body.role)) } + def handleUploadRequestSysMsg(msg: UploadRequestSysMsg): Unit = { + olgMsgGW.handle(new UploadRequest(msg.header.meetingId, msg.body.source, msg.body.filename, msg.body.userId, msg.body.token)) + } + def handlePresentationUploadTokenSysPubMsg(msg: PresentationUploadTokenSysPubMsg): Unit = { olgMsgGW.handle(new PresentationUploadToken(msg.body.podId, msg.body.authzToken, msg.body.filename)) } From 15dc72130d68752e0295b06a8d9a2734d9d5be04 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 14:57:17 +0900 Subject: [PATCH 020/127] Update MsgBuilder.scala --- .../org/bigbluebutton/api2/MsgBuilder.scala | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala index 0429f9f11233..a326d9a419df 100755 --- a/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala +++ b/bbb-common-web/src/main/scala/org/bigbluebutton/api2/MsgBuilder.scala @@ -114,6 +114,22 @@ object MsgBuilder { BbbCommonEnvCoreMsg(envelope, req) } + def buildFileUploadedSysMsg( + uploadId: String, + source: String, + filename: String, + contentType: String, + userId: String, + meetingId: String + ): BbbCommonEnvCoreMsg = { + val routing = collection.immutable.HashMap("sender" -> "bbb-web") + val envelope = BbbCoreEnvelope(FileUploadedSysMsg.NAME, routing) + val header = BbbClientMsgHeader(FileUploadedSysMsg.NAME, meetingId, userId) + val body = FileUploadedSysMsgBody(uploadId, source, filename, contentType) + val req = FileUploadedSysMsg(header, body) + BbbCommonEnvCoreMsg(envelope, req) + } + def buildPresentationPageGeneratedPubMsg(msg: DocPageGeneratedProgress): BbbCommonEnvCoreMsg = { val routing = collection.immutable.HashMap("sender" -> "bbb-web") val envelope = BbbCoreEnvelope(PresentationPageGeneratedSysPubMsg.NAME, routing) From 1f6099e81e200515992558be4675f90610828784 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:00:33 +0900 Subject: [PATCH 021/127] Update ReceivedJsonMsgHandlerActor.scala --- .../core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala index 5d9de23e6a4b..abb107a34221 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala @@ -287,6 +287,12 @@ class ReceivedJsonMsgHandlerActor( case UpdateWebcamsOnlyForModeratorCmdMsg.NAME => routeGenericMsg[UpdateWebcamsOnlyForModeratorCmdMsg](envelope, jsonNode) + // Upload + case UploadRequestReqMsg.NAME => + routeGenericMsg[UploadRequestReqMsg](envelope, jsonNode) + case FileUploadedSysMsg.NAME => + routeGenericMsg[FileUploadedSysMsg](envelope, jsonNode) + // Lock settings case LockUserInMeetingCmdMsg.NAME => routeGenericMsg[LockUserInMeetingCmdMsg](envelope, jsonNode) From 7ed60b21f095a6cd8c43d383221d2848dabf2c00 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:05:22 +0900 Subject: [PATCH 022/127] Create AbstractUploadRecordEvent.scala --- .../events/AbstractUploadRecordEvent.scala | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/AbstractUploadRecordEvent.scala diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/AbstractUploadRecordEvent.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/AbstractUploadRecordEvent.scala new file mode 100644 index 000000000000..122a3e708fe7 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/AbstractUploadRecordEvent.scala @@ -0,0 +1,24 @@ +/** + * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + * + * Copyright (c) 2017 BigBlueButton Inc. and by respective authors (see below). + * + * This program is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation; either version 3.0 of the License, or (at your option) any later + * version. + * + * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with BigBlueButton; if not, see . + * + */ + +package org.bigbluebutton.core.record.events + +trait AbstractUploadRecordEvent extends RecordEvent { + setModule("UPLOAD") +} From 0db429b01e9e1132b1aa06dad6cbe2c6d89cef49 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:06:26 +0900 Subject: [PATCH 023/127] Create FileUploadedRecordEvent.scala --- .../events/FileUploadedRecordEvent.scala | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/FileUploadedRecordEvent.scala diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/FileUploadedRecordEvent.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/FileUploadedRecordEvent.scala new file mode 100644 index 000000000000..7f506a1d67b0 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/record/events/FileUploadedRecordEvent.scala @@ -0,0 +1,49 @@ +/** + * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + * + * Copyright (c) 2017 BigBlueButton Inc. and by respective authors (see below). + * + * This program is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation; either version 3.0 of the License, or (at your option) any later + * version. + * + * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with BigBlueButton; if not, see . + * + */ + +package org.bigbluebutton.core.record.events + +class FileUploadedRecordEvent extends AbstractUploadRecordEvent { + import FileUploadedRecordEvent._ + + setEvent("FileUploadedEvent") + + def setUserId(userId: String) { + eventMap.put(USER_ID, userId) + } + + def setUploadId(uploadId: String) { + eventMap.put(UPLOAD_ID, uploadId) + } + + def setSource(source: String) { + eventMap.put(SOURCE, source) + } + + def setFilename(filename: String) { + eventMap.put(FILENAME, filename) + } +} + +object FileUploadedRecordEvent { + protected final val USER_ID = "userId" + protected final val UPLOAD_ID = "uploadId" + protected final val SOURCE = "source" + protected final val FILENAME = "filename" +} From cba79ba77b490956218380c4abeec801865ff4a1 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:08:44 +0900 Subject: [PATCH 024/127] Update MeetingActor.scala --- .../scala/org/bigbluebutton/core/running/MeetingActor.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala index b410bd7ad35a..ea90dde6ab73 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala @@ -7,6 +7,7 @@ import akka.actor.SupervisorStrategy.Resume import org.bigbluebutton.SystemConfiguration import org.bigbluebutton.core.apps.groupchats.GroupChatHdlrs import org.bigbluebutton.core.apps.presentationpod._ +import org.bigbluebutton.core.apps.upload.UploadApp2x import org.bigbluebutton.core.apps.users._ import org.bigbluebutton.core.apps.whiteboard.ClientToServerLatencyTracerMsgHdlr import org.bigbluebutton.core.domain._ @@ -116,6 +117,7 @@ class MeetingActor( val usersApp = new UsersApp(liveMeeting, outGW, eventBus) val groupChatApp = new GroupChatHdlrs val presentationPodsApp = new PresentationPodHdlrs + val uploadApp = new UploadApp2x val pollApp = new PollApp2x val wbApp = new WhiteboardApp2x @@ -422,6 +424,10 @@ class MeetingActor( case m: UpdateCaptionOwnerPubMsg => captionApp2x.handle(m, liveMeeting, msgBus) case m: SendCaptionHistoryReqMsg => captionApp2x.handle(m, liveMeeting, msgBus) + // Upload + case m: UploadRequestReqMsg => uploadApp.handle(m, liveMeeting, msgBus) + case m: FileUploadedSysMsg => uploadApp.handle(m, liveMeeting, msgBus) + // Guests case m: GetGuestsWaitingApprovalReqMsg => handleGetGuestsWaitingApprovalReqMsg(m) case m: SetGuestPolicyCmdMsg => handleSetGuestPolicyMsg(m) From a86e5f24ada989b8da1b0f6e80fb99f99a38cbe7 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:09:47 +0900 Subject: [PATCH 025/127] Update AnalyticsActor.scala --- .../main/scala/org/bigbluebutton/core2/AnalyticsActor.scala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala index 7c08cdfdfd49..b59ea800e124 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala @@ -140,6 +140,11 @@ class AnalyticsActor extends Actor with ActorLogging { case m: SetGuestPolicyCmdMsg => logMessage(msg) case m: GuestPolicyChangedEvtMsg => logMessage(msg) + // Upload + case m: UploadRequestReqMsg => logMessage(msg) + case m: UploadRequestRespMsg => logMessage(msg) + case m: FileUploadedEvtMsg => logMessage(msg) + // System case m: ClientToServerLatencyTracerMsg => traceMessage(msg) case m: ServerToClientLatencyTracerMsg => traceMessage(msg) From cb2c72c0051c40450d2190e4fc0c25bd93d6714b Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:11:47 +0900 Subject: [PATCH 026/127] Update RedisRecorderActor.scala --- .../endpoint/redis/RedisRecorderActor.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/endpoint/redis/RedisRecorderActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/endpoint/redis/RedisRecorderActor.scala index 3aee1d95028a..dadaedce26fb 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/endpoint/redis/RedisRecorderActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/endpoint/redis/RedisRecorderActor.scala @@ -99,6 +99,9 @@ class RedisRecorderActor( case m: WebcamsOnlyForModeratorChangedEvtMsg => handleWebcamsOnlyForModeratorChangedEvtMsg(m) case m: MeetingEndingEvtMsg => handleEndAndKickAllSysMsg(m) + // Upload + case m: FileUploadedEvtMsg => handleFileUploadedEvtMsg(m) + // Recording case m: RecordingChapterBreakSysMsg => handleRecordingChapterBreakSysMsg(m) @@ -490,6 +493,16 @@ class RedisRecorderActor( record(msg.header.meetingId, ev.toMap.asJava) } + private def handleFileUploadedEvtMsg(msg: FileUploadedEvtMsg): Unit = { + val ev = new FileUploadedRecordEvent() + ev.setUserId(msg.header.userId) + ev.setUploadId(msg.body.uploadId) + ev.setSource(msg.body.source) + ev.setFilename(msg.body.filename) + + record(msg.header.meetingId, ev.toMap.asJava) + } + private def handleRecordingChapterBreakSysMsg(msg: RecordingChapterBreakSysMsg): Unit = { val ev = new RecordChapterBreakRecordEvent() ev.setMeetingId(msg.header.meetingId) From 4d8a49ff979052b369cbe494e0d994d84dea113c Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:14:31 +0900 Subject: [PATCH 027/127] Create FileUploadedSysMsgHdlr.scala --- .../apps/upload/FileUploadedSysMsgHdlr.scala | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/FileUploadedSysMsgHdlr.scala diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/FileUploadedSysMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/FileUploadedSysMsgHdlr.scala new file mode 100644 index 000000000000..f9c062e7fe53 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/FileUploadedSysMsgHdlr.scala @@ -0,0 +1,36 @@ +package org.bigbluebutton.core.apps.upload + +import org.bigbluebutton.common2.msgs._ +import org.bigbluebutton.core.bus.MessageBus +import org.bigbluebutton.core.running.LiveMeeting + +trait FileUploadedSysMsgHdlr { + this: UploadApp2x => + + def handle( + msg: FileUploadedSysMsg, + liveMeeting: LiveMeeting, + bus: MessageBus + ): Unit = { + + val meetingId = liveMeeting.props.meetingProp.intId + val userId = msg.header.userId + + def broadcastFileUploadedEvtMsg(msg: FileUploadedSysMsg): Unit = { + val uploadId = msg.body.uploadId + val source = msg.body.source + val filename = msg.body.filename + + val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, meetingId, userId) + val envelope = BbbCoreEnvelope(FileUploadedEvtMsg.NAME, routing) + val header = BbbClientMsgHeader(FileUploadedEvtMsg.NAME, meetingId, userId) + val body = FileUploadedEvtMsgBody(uploadId, source, filename) + val event = FileUploadedEvtMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + + bus.outGW.send(msgEvent) + } + + broadcastFileUploadedEvtMsg(msg) + } +} From c9601f0d6ce891a6597897aa54746b95bf46e016 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:15:07 +0900 Subject: [PATCH 028/127] Create UploadApp2x.scala --- .../bigbluebutton/core/apps/upload/UploadApp2x.scala | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadApp2x.scala diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadApp2x.scala new file mode 100644 index 000000000000..e2c29e2cc1c8 --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadApp2x.scala @@ -0,0 +1,11 @@ +package org.bigbluebutton.core.apps.upload + +import akka.actor.ActorContext +import akka.event.Logging + +class UploadApp2x(implicit val context: ActorContext) + extends UploadRequestReqMsgHdlr + with FileUploadedSysMsgHdlr { + + val log = Logging(context.system, getClass) +} From cf1d246acb5d24b01380e6d5e3f806e7e90e1b4f Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:16:29 +0900 Subject: [PATCH 029/127] Create UploadRequestReqMsgHdlr.scala --- .../apps/upload/UploadRequestReqMsgHdlr.scala | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadRequestReqMsgHdlr.scala diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadRequestReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadRequestReqMsgHdlr.scala new file mode 100644 index 000000000000..ac1494f8bf3f --- /dev/null +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/upload/UploadRequestReqMsgHdlr.scala @@ -0,0 +1,65 @@ +package org.bigbluebutton.core.apps.upload + +import org.bigbluebutton.common2.msgs._ +import org.bigbluebutton.core.bus.MessageBus +import org.bigbluebutton.core.running.LiveMeeting +import org.bigbluebutton.core.apps.{ PermissionCheck, RightsManagementTrait } +import org.bigbluebutton.core.util.RandomStringGenerator + +trait UploadRequestReqMsgHdlr extends RightsManagementTrait { + this: UploadApp2x => + + def handle( + msg: UploadRequestReqMsg, + liveMeeting: LiveMeeting, + bus: MessageBus + ): Unit = { + + val meetingId = liveMeeting.props.meetingProp.intId + val userId = msg.header.userId + val source = msg.body.source + val filename = msg.body.filename + val timestamp = msg.body.timestamp + + // To system + def broadcastUploadRequestSysMsg( + msg: UploadRequestReqMsg, + token: String + ): Unit = { + + val routing = collection.immutable.HashMap("sender" -> "bbb-apps-akka") + val envelope = BbbCoreEnvelope(UploadRequestSysMsg.NAME, routing) + val header = BbbCoreHeaderWithMeetingId(UploadRequestSysMsg.NAME, meetingId) + val body = UploadRequestSysMsgBody(source, filename, userId, token) + val event = UploadRequestSysMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + + bus.outGW.send(msgEvent) + } + + // To client + def broadcastUploadRequestRespMsg( + msg: UploadRequestReqMsg, + success: Boolean = false, + token: String = null + ): Unit = { + + val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, meetingId, userId) + val envelope = BbbCoreEnvelope(UploadRequestRespMsg.NAME, routing) + val header = BbbClientMsgHeader(UploadRequestRespMsg.NAME, meetingId, userId) + val body = UploadRequestRespMsgBody(source, filename, userId, success, timestamp, token) + val event = UploadRequestRespMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + + bus.outGW.send(msgEvent) + } + + if (permissionFailed(PermissionCheck.GUEST_LEVEL, PermissionCheck.MOD_LEVEL, liveMeeting.users2x, userId)) { + broadcastUploadRequestRespMsg(msg) + } else { + val token = RandomStringGenerator.randomAlphanumericString(32) + broadcastUploadRequestSysMsg(msg, token) + broadcastUploadRequestRespMsg(msg, true, token) + } + } +} From c9953d916fe055d7e7d433e050debb0ac91b6048 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:18:54 +0900 Subject: [PATCH 030/127] Update meetingHasEnded.js --- .../imports/api/meetings/server/modifiers/meetingHasEnded.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bigbluebutton-html5/imports/api/meetings/server/modifiers/meetingHasEnded.js b/bigbluebutton-html5/imports/api/meetings/server/modifiers/meetingHasEnded.js index ec9a24abf32a..e8ce3e99cc8d 100755 --- a/bigbluebutton-html5/imports/api/meetings/server/modifiers/meetingHasEnded.js +++ b/bigbluebutton-html5/imports/api/meetings/server/modifiers/meetingHasEnded.js @@ -20,6 +20,8 @@ import clearUserInfo from '/imports/api/users-infos/server/modifiers/clearUserIn import clearConnectionStatus from '/imports/api/connection-status/server/modifiers/clearConnectionStatus'; import clearScreenshare from '/imports/api/screenshare/server/modifiers/clearScreenshare'; import clearNote from '/imports/api/note/server/modifiers/clearNote'; +import clearUploadRequest from '/imports/api/upload/server/modifiers/clearUploadRequest'; +import clearUploadedFile from '/imports/api/upload/server/modifiers/clearUploadedFile'; import clearNetworkInformation from '/imports/api/network-information/server/modifiers/clearNetworkInformation'; import clearMeetingTimeRemaining from '/imports/api/meetings/server/modifiers/clearMeetingTimeRemaining'; import clearLocalSettings from '/imports/api/local-settings/server/modifiers/clearLocalSettings'; @@ -49,6 +51,8 @@ export default function meetingHasEnded(meetingId) { clearUserInfo(meetingId); clearConnectionStatus(meetingId); clearNote(meetingId); + clearUploadRequest(meetingId); + clearUploadedFile(meetingId); clearNetworkInformation(meetingId); clearLocalSettings(meetingId); clearMeetingTimeRemaining(meetingId); From 9af004a9085b1c8f09b478526f3f8a55541cd364 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:21:14 +0900 Subject: [PATCH 031/127] Create index.js --- bigbluebutton-html5/imports/api/upload/index.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/index.js diff --git a/bigbluebutton-html5/imports/api/upload/index.js b/bigbluebutton-html5/imports/api/upload/index.js new file mode 100644 index 000000000000..7ad70ab6a365 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/index.js @@ -0,0 +1,14 @@ +import { Meteor } from 'meteor/meteor'; + +const UploadRequest = new Mongo.Collection('upload-request'); +const UploadedFile = new Mongo.Collection('uploaded-file'); + +if (Meteor.isServer) { + UploadRequest._ensureIndex({ meetingId: 1 }); + UploadedFile._ensureIndex({ meetingId: 1 }); +} + +export { + UploadRequest, + UploadedFile, +}; From 7e96a47ed17887a5666bd65319266f13e0b695ae Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:21:55 +0900 Subject: [PATCH 032/127] Create index.js --- bigbluebutton-html5/imports/api/upload/server/index.js | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/index.js diff --git a/bigbluebutton-html5/imports/api/upload/server/index.js b/bigbluebutton-html5/imports/api/upload/server/index.js new file mode 100644 index 000000000000..92451ac76bf2 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/index.js @@ -0,0 +1,3 @@ +import './eventHandlers'; +import './methods'; +import './publishers'; From 9476ec5894c8ce58307272b6633bfa43776f72c2 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:22:34 +0900 Subject: [PATCH 033/127] Create eventHandlers.js --- .../imports/api/upload/server/eventHandlers.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/eventHandlers.js diff --git a/bigbluebutton-html5/imports/api/upload/server/eventHandlers.js b/bigbluebutton-html5/imports/api/upload/server/eventHandlers.js new file mode 100644 index 000000000000..d0e5f7171880 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/eventHandlers.js @@ -0,0 +1,6 @@ +import RedisPubSub from '/imports/startup/server/redis'; +import handleUploadRequestResp from './handlers/uploadRequestResp'; +import handleFileUploadedEvt from './handlers/fileUploadedEvt'; + +RedisPubSub.on('UploadRequestRespMsg', handleUploadRequestResp); +RedisPubSub.on('FileUploadedEvtMsg', handleFileUploadedEvt); From 2c329c6a03f10ed0df7c98dda2057b85eaf7da27 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:23:45 +0900 Subject: [PATCH 034/127] Create publishers.js --- .../imports/api/upload/server/publishers.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/publishers.js diff --git a/bigbluebutton-html5/imports/api/upload/server/publishers.js b/bigbluebutton-html5/imports/api/upload/server/publishers.js new file mode 100644 index 000000000000..01e450147b57 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/publishers.js @@ -0,0 +1,54 @@ +import { Meteor } from 'meteor/meteor'; +//import { check } from 'meteor/check'; +import { + UploadRequest, + UploadedFile, +} from '/imports/api/upload'; +import Logger from '/imports/startup/server/logger'; +//Suga +import { extractCredentials } from '/imports/api/common/server/helpers'; + +// Somebody still sends credentials. This will be a security issue... +function uploadRequest(credentials, source, filename) { + if (!this.userId) { + return UploadRequest.find({ meetingId: ''}); + } + //const { meetingId, requesterUserId } = credentials; // this also works + const { meetingId, requesterUserId } = extractCredentials(this.userId); + + const selector = { + meetingId, + userId: requesterUserId, + source, + filename, + }; + + Logger.debug(`Publishing upload request for ${meetingId} ${requesterUserId}`); + + return UploadRequest.find(selector); +} + +function publishRequest(...args) { + const boundUploadRequest = uploadRequest.bind(this); + return boundUploadRequest(...args); +} + +Meteor.publish('upload-request', publishRequest); + +function uploadedFile() { + if (!this.userId) { + return UploadedFile.find({ meetingId: ''}); + } + const { meetingId } = extractCredentials(this.userId); + + Logger.debug(`Publishing uploaded file for ${meetingId}`); + + return UploadedFile.find({ meetingId }); +} + +function publishUpload(...args) { + const boundUploadedFile = uploadedFile.bind(this); + return boundUploadedFile(...args); +} + +Meteor.publish('uploaded-file', publishUpload); From 9d7926806ad708f6004252963bd982ff278c21d9 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:24:12 +0900 Subject: [PATCH 035/127] Create helpers.js --- bigbluebutton-html5/imports/api/upload/server/helpers.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/helpers.js diff --git a/bigbluebutton-html5/imports/api/upload/server/helpers.js b/bigbluebutton-html5/imports/api/upload/server/helpers.js new file mode 100644 index 000000000000..e4d5df9e94d8 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/helpers.js @@ -0,0 +1,9 @@ +import { Meteor } from 'meteor/meteor'; + +const UPLOAD = Meteor.settings.public.upload; + +const isNotificationEnabled = () => UPLOAD.notification; + +export { + isNotificationEnabled, +}; From 8ae6384c4135be78c65b245260fcbead496060fc Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:24:42 +0900 Subject: [PATCH 036/127] Create methods.js --- bigbluebutton-html5/imports/api/upload/server/methods.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/methods.js diff --git a/bigbluebutton-html5/imports/api/upload/server/methods.js b/bigbluebutton-html5/imports/api/upload/server/methods.js new file mode 100644 index 000000000000..a410dd7a218c --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/methods.js @@ -0,0 +1,6 @@ +import { Meteor } from 'meteor/meteor'; +import requestUpload from './methods/requestUpload'; + +Meteor.methods({ + requestUpload, +}); From ac96ec0a74cbb227b0a30b851fae087c84fe7d5a Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:26:48 +0900 Subject: [PATCH 037/127] Create addNotification.js --- .../server/modifiers/addNotification.js | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/modifiers/addNotification.js diff --git a/bigbluebutton-html5/imports/api/upload/server/modifiers/addNotification.js b/bigbluebutton-html5/imports/api/upload/server/modifiers/addNotification.js new file mode 100644 index 000000000000..41456b5bc8a5 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/modifiers/addNotification.js @@ -0,0 +1,57 @@ +import flat from 'flat'; +import { check } from 'meteor/check'; +import Logger from '/imports/startup/server/logger'; +import { GroupChatMsg } from '/imports/api/group-chat-msg'; + +const CHAT = Meteor.settings.public.chat; +const SYSTEM_ID = CHAT.type_system; +const CHAT_ID = 'MAIN-PUBLIC-GROUP-CHAT'; + +export default function addUploadedFileMsg(meetingId, userId, uploadId, source, filename) { + check(meetingId, String); + check(userId, String); + check(uploadId, String); + check(source, String); + check(filename, String); + + const now = Date.now(); + + const upload = { + uploadId, + source, + filename, + }; + + const selector = { + meetingId, + chatId: CHAT_ID, + id: `upload-msg-${now}`, + }; + + const modifier = { + $set: { + meetingId, + chatId: CHAT_ID, + message: '', + upload, + sender: SYSTEM_ID, + timestamp: now, + }, + }; + + const cb = (err, numChanged) => { + if (err) { + return Logger.error(`Adding group-chat-msg uploaded file to collection: ${err}`); + } + + const { insertedId } = numChanged; + + if (insertedId) { + return Logger.info(`Added group-chat-msg uploaded file meetingId=${meetingId}`); + } + + return Logger.info(`Upserted group-chat-msg uploaded file meetingId=${meetingId}`); + }; + + return GroupChatMsg.upsert(selector, modifier, cb); +} From 98aac8f4832fed3feeec0ab3c6642ca92d6be6d6 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:28:04 +0900 Subject: [PATCH 038/127] Create addUploadRequest.js --- .../server/modifiers/addUploadRequest.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadRequest.js diff --git a/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadRequest.js b/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadRequest.js new file mode 100644 index 000000000000..2cc0d482d63a --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadRequest.js @@ -0,0 +1,44 @@ +import { check } from 'meteor/check'; +import Logger from '/imports/startup/server/logger'; +import { UploadRequest } from '/imports/api/upload'; + +export default function addUploadRequest(meetingId, source, filename, userId, success, timestamp, token) { + check(source, String); + check(filename, String); + check(userId, String); + check(success, Boolean); + check(timestamp, Number); + + if (success) { + check(token, String); + } + + const selector = { + meetingId, + source, + userId, + filename, + timestamp, + }; + + const modifier = { + meetingId, + source, + userId, + filename, + success, + timestamp, + token, + }; + + const cb = (err) => { + if (err) { + Logger.error(`Upserting upload request: ${err}`); + return; + } + + Logger.debug(`Upserting upload request filename=${filename} user=${userId} meeting=${meetingId}`); + }; + + return UploadRequest.upsert(selector, modifier, cb); +} From 6b5a6ef127ca9226a5fb127aa641dc6e7a4d36ca Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:28:32 +0900 Subject: [PATCH 039/127] Create clearUploadRequest.js --- .../upload/server/modifiers/clearUploadRequest.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadRequest.js diff --git a/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadRequest.js b/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadRequest.js new file mode 100644 index 000000000000..b8b1bf3ee50b --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadRequest.js @@ -0,0 +1,15 @@ +import { UploadRequest } from '/imports/api/upload'; +import Logger from '/imports/startup/server/logger'; + +export default function clearUploadRequest(meetingId) { + if (meetingId) { + return UploadRequest.remove({ meetingId }, () => { + Logger.info(`Cleared UploadRequest (${meetingId})`); + }); + } + + // clearing upload requests for the whole server + return UploadRequest.remove({}, () => { + Logger.info('Cleared UploadRequest (all)'); + }); +} From a21d438336808e9a4f3893bb2a4f495d9d69d952 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:29:08 +0900 Subject: [PATCH 040/127] Create addUploadedFile.js --- .../server/modifiers/addUploadedFile.js | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadedFile.js diff --git a/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadedFile.js b/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadedFile.js new file mode 100644 index 000000000000..4e4c95cd5bc8 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/modifiers/addUploadedFile.js @@ -0,0 +1,35 @@ +import { check } from 'meteor/check'; +import Logger from '/imports/startup/server/logger'; +import { UploadedFile } from '/imports/api/upload'; + +export default function addUploadedFile(meetingId, userId, uploadId, source, filename) { + check(meetingId, String); + check(userId, String); + check(uploadId, String); + check(source, String); + check(filename, String); + + const selector = { + meetingId, + uploadId, + }; + + const modifier = { + meetingId, + userId, + uploadId, + source, + filename, + }; + + const cb = (err) => { + if (err) { + Logger.error(`Upserting upload file: ${err}`); + return; + } + + Logger.debug(`Upserting uploaded file filename=${filename} meeting=${meetingId} source=${source}`); + }; + + return UploadedFile.upsert(selector, modifier, cb); +} From 2f5dec15712f0e59a23ff39d54fe2e9c8a266980 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:29:51 +0900 Subject: [PATCH 041/127] Create clearUploadedFile.js --- .../upload/server/modifiers/clearUploadedFile.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadedFile.js diff --git a/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadedFile.js b/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadedFile.js new file mode 100644 index 000000000000..98fec2dffc4f --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/modifiers/clearUploadedFile.js @@ -0,0 +1,15 @@ +import { UploadedFile } from '/imports/api/upload'; +import Logger from '/imports/startup/server/logger'; + +export default function clearUploadedFile(meetingId) { + if (meetingId) { + return UploadedFile.remove({ meetingId }, () => { + Logger.info(`Cleared UploadedFile (${meetingId})`); + }); + } + + // clearing uploaded files for the whole server + return UploadedFile.remove({}, () => { + Logger.info('Cleared UploadedFile (all)'); + }); +} From d7d2f5a39c6c6dd79e68c1d94d6c7f1b591a54d4 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:30:55 +0900 Subject: [PATCH 042/127] Create fileUploadedEvt.js --- .../upload/server/handlers/fileUploadedEvt.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/handlers/fileUploadedEvt.js diff --git a/bigbluebutton-html5/imports/api/upload/server/handlers/fileUploadedEvt.js b/bigbluebutton-html5/imports/api/upload/server/handlers/fileUploadedEvt.js new file mode 100644 index 000000000000..14e627f2cbea --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/handlers/fileUploadedEvt.js @@ -0,0 +1,24 @@ +import { check } from 'meteor/check'; +import { isNotificationEnabled } from '../helpers'; +import addNotification from '../modifiers/addNotification'; +import addUploadedFile from '../modifiers/addUploadedFile'; + +export default function handleFileUploadedEvt({ header, body }, meetingId) { + check(body, Object); + check(header, Object); + check(meetingId, String); + + const { userId } = header; + + const { + uploadId, + source, + filename, + } = body; + + if (isNotificationEnabled()) { + addNotification(meetingId, userId, uploadId, source, filename); + } + + return addUploadedFile(meetingId, userId, uploadId, source, filename); +} From 7403b201f1b82852db030257eb040a7f852c6e68 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:31:15 +0900 Subject: [PATCH 043/127] Create uploadRequestResp.js --- .../server/handlers/uploadRequestResp.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/handlers/uploadRequestResp.js diff --git a/bigbluebutton-html5/imports/api/upload/server/handlers/uploadRequestResp.js b/bigbluebutton-html5/imports/api/upload/server/handlers/uploadRequestResp.js new file mode 100644 index 000000000000..f4f0c110ecd2 --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/handlers/uploadRequestResp.js @@ -0,0 +1,18 @@ +import { check } from 'meteor/check'; +import addUploadRequest from '../modifiers/addUploadRequest'; + +export default function handleUploadRequestResp({ body }, meetingId) { + check(body, Object); + check(meetingId, String); + + const { + source, + filename, + userId, + success, + timestamp, + token, + } = body; + + return addUploadRequest(meetingId, source, filename, userId, success, timestamp, token); +} From e7e33e61799f2a4013df0159ca2565f19076275a Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:32:07 +0900 Subject: [PATCH 044/127] Create requestUpload.js --- .../upload/server/methods/requestUpload.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 bigbluebutton-html5/imports/api/upload/server/methods/requestUpload.js diff --git a/bigbluebutton-html5/imports/api/upload/server/methods/requestUpload.js b/bigbluebutton-html5/imports/api/upload/server/methods/requestUpload.js new file mode 100644 index 000000000000..4cd5b1ffd47b --- /dev/null +++ b/bigbluebutton-html5/imports/api/upload/server/methods/requestUpload.js @@ -0,0 +1,27 @@ +import RedisPubSub from '/imports/startup/server/redis'; +import { check } from 'meteor/check'; +import { extractCredentials } from '/imports/api/common/server/helpers'; + +//export default function requestUpload(credentials, source, filename, timestamp) { +export default function requestUpload(source, filename, timestamp) { + const REDIS_CONFIG = Meteor.settings.private.redis; + const CHANNEL = REDIS_CONFIG.channels.toAkkaApps; + const EVENT_NAME = 'UploadRequestReqMsg'; + + //const { meetingId, requesterUserId } = credentials; +const { meetingId, requesterUserId } = extractCredentials(this.userId); + + check(meetingId, String); + check(requesterUserId, String); + check(source, String); + check(filename, String); + check(timestamp, Number) + + const payload = { + source, + filename, + timestamp, + }; + + return RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload); +} From 09a072068c3f375cf7600191537965008f8c096d Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:38:54 +0900 Subject: [PATCH 045/127] Update component.jsx --- .../actions-dropdown/component.jsx | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx index 1a84ba7a5a8f..b7907b9c5843 100755 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/actions-dropdown/component.jsx @@ -8,6 +8,7 @@ import DropdownTrigger from '/imports/ui/components/dropdown/trigger/component'; import DropdownContent from '/imports/ui/components/dropdown/content/component'; import DropdownList from '/imports/ui/components/dropdown/list/component'; import DropdownListItem from '/imports/ui/components/dropdown/list/item/component'; +import MediaUploadContainer from '/imports/ui/components/upload/media/container'; import { withModalMounter } from '/imports/ui/components/modal/service'; import withShortcutHelper from '/imports/ui/components/shortcut-help/service'; import DropdownListSeparator from '/imports/ui/components/dropdown/list/separator/component'; @@ -24,6 +25,7 @@ const propTypes = { shortcuts: PropTypes.string, handleTakePresenter: PropTypes.func.isRequired, allowExternalVideo: PropTypes.bool.isRequired, + isMediaUploadEnabled: PropTypes.bool.isRequired, stopExternalVideoShare: PropTypes.func.isRequired, }; @@ -44,6 +46,14 @@ const intlMessages = defineMessages({ id: 'app.actionsBar.actionsDropdown.presentationDesc', description: 'adds context to upload presentation option', }, + uploadMediaLabel: { + id: 'app.actionsBar.actionsDropdown.uploadMediaLabel', + description: 'Upload media option label', + }, + uploadMediaDesc: { + id: 'app.actionsBar.actionsDropdown.uploadMediaDesc', + description: 'adds context to upload media option', + }, desktopShareDesc: { id: 'app.actionsBar.actionsDropdown.desktopShareDesc', description: 'adds context to desktop share option', @@ -93,12 +103,14 @@ class ActionsDropdown extends PureComponent { super(props); this.presentationItemId = _.uniqueId('action-item-'); + this.uploadMediaId = _.uniqueId('action-item-'); this.pollId = _.uniqueId('action-item-'); this.takePresenterId = _.uniqueId('action-item-'); this.selectUserRandId = _.uniqueId('action-item-'); this.handleExternalVideoClick = this.handleExternalVideoClick.bind(this); this.makePresentationItems = this.makePresentationItems.bind(this); + this.handleUploadMediaClick = this.handleUploadMediaClick.bind(this); } componentDidUpdate(prevProps) { @@ -114,6 +126,7 @@ class ActionsDropdown extends PureComponent { intl, amIPresenter, allowExternalVideo, + isMediaUploadEnabled, handleTakePresenter, isSharingVideo, isPollingEnabled, @@ -128,6 +141,8 @@ class ActionsDropdown extends PureComponent { presentationDesc, takePresenter, takePresenterDesc, + uploadMediaLabel, + uploadMediaDesc, } = intlMessages; const { @@ -199,6 +214,17 @@ class ActionsDropdown extends PureComponent { /> ) : null), + (amIPresenter && isMediaUploadEnabled + ? ( + + ) + : null), ]); } @@ -243,6 +269,11 @@ class ActionsDropdown extends PureComponent { mountModal(); } + handleUploadMediaClick() { + const { mountModal } = this.props; + mountModal(); + } + render() { const { intl, From 0410e172a88d0787696e783cdec3a495116a51a0 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:39:52 +0900 Subject: [PATCH 046/127] Update component.jsx --- .../imports/ui/components/actions-bar/component.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx index c43f8fe1b2d0..02dc84d02225 100755 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/component.jsx @@ -32,6 +32,7 @@ class ActionsBar extends PureComponent { isPollingEnabled, isThereCurrentPresentation, allowExternalVideo, + isMediaUploadEnabled, } = this.props; const actionBarClasses = {}; @@ -53,6 +54,7 @@ class ActionsBar extends PureComponent { amIModerator, isPollingEnabled, allowExternalVideo, + isMediaUploadEnabled, handleTakePresenter, intl, isSharingVideo, From a5002c199c0465512d02c4fde94ddf9004a1734e Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:43:13 +0900 Subject: [PATCH 047/127] Update container.jsx --- .../imports/ui/components/actions-bar/container.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx b/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx index f75cf3d683bb..4ee217acb3bc 100644 --- a/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx +++ b/bigbluebutton-html5/imports/ui/components/actions-bar/container.jsx @@ -9,6 +9,7 @@ import Presentations from '/imports/api/presentations'; import ActionsBar from './component'; import Service from './service'; import ExternalVideoService from '/imports/ui/components/external-video-player/service'; +import MediaUploadService from '/imports/ui/components/upload/media/service'; import CaptionsService from '/imports/ui/components/captions/service'; import { shareScreen, @@ -48,5 +49,6 @@ export default withTracker(() => ({ isPollingEnabled: POLLING_ENABLED, isThereCurrentPresentation: Presentations.findOne({ meetingId: Auth.meetingID, current: true }, { fields: {} }), + isMediaUploadEnabled: MediaUploadService.isEnabled(), allowExternalVideo: Meteor.settings.public.externalVideoPlayer.enabled, }))(injectIntl(ActionsBarContainer)); From 9ba17bd28c978c577dbe4aad77d033865944f35d Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:47:14 +0900 Subject: [PATCH 048/127] Update component.jsx --- .../message-list-item/component.jsx | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/component.jsx index a856ebf204bd..232f373240b7 100644 --- a/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/chat/message-list/message-list-item/component.jsx @@ -6,6 +6,7 @@ import Icon from '/imports/ui/components/icon/component'; import UserAvatar from '/imports/ui/components/user-avatar/component'; import cx from 'classnames'; import Message from './message/component'; +import UploadService from '/imports/ui/components/upload/service'; import PollService from '/imports/ui/components/poll/service'; import { styles } from './styles'; @@ -76,25 +77,34 @@ class MessageListItem extends Component { messages, chatAreaId, handleReadMessage, + intl, } = this.props; return (

- {messages.map(message => ( - message.text !== '' - ? ( - - ) : null - ))} + {messages.map(message => { + const { + id, + time, + upload, + } = message; + + const text = upload ? UploadService.getNotification(upload, intl) : message.text; + + if (text === '') return null; + + return ( + + ); + })}
); @@ -231,7 +241,7 @@ class MessageListItem extends Component { user, } = this.props; - if (!user) { + if (!user || (user && !user.name)) { return this.renderSystemMessage(); } From 1633023cd750ee6184680990d37e2428167e6fc6 Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:49:20 +0900 Subject: [PATCH 049/127] Update service.js --- bigbluebutton-html5/imports/ui/components/chat/service.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bigbluebutton-html5/imports/ui/components/chat/service.js b/bigbluebutton-html5/imports/ui/components/chat/service.js index 3c58740b9110..16e0a04184d3 100755 --- a/bigbluebutton-html5/imports/ui/components/chat/service.js +++ b/bigbluebutton-html5/imports/ui/components/chat/service.js @@ -69,15 +69,18 @@ const mapGroupMessage = (message) => { const reduceGroupMessages = (previous, current) => { const lastMessage = previous[previous.length - 1]; const currentMessage = current; - currentMessage.content = [{ + const content = { id: current.id, text: current.message, time: current.timestamp, color: current.color, - }]; + }; if (!lastMessage || !currentMessage.chatId === PUBLIC_GROUP_CHAT_ID) { return previous.concat(currentMessage); } + // I do not like this + if (current.upload) content['upload'] = current.upload; + currentMessage.content = [content]; // Check if the last message is from the same user and time discrepancy // between the two messages exceeds window and then group current // message with the last one From f674821b48da0abb06c031feb6dfef5d9c12727a Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:50:25 +0900 Subject: [PATCH 050/127] Update component.jsx --- .../imports/ui/components/external-video-player/component.jsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx index b659cd52dc4d..fc350b87491d 100644 --- a/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/external-video-player/component.jsx @@ -60,6 +60,9 @@ class VideoPlayer extends Component { controls: true, autoPlay: true, playsInline: true, + controls: true, + autoPlay: true, + playsInline: true, }, }, dailymotion: { From 7feeab089e9d0e83d4a923f6647c55885307962a Mon Sep 17 00:00:00 2001 From: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com> Date: Thu, 11 Feb 2021 15:55:59 +0900 Subject: [PATCH 051/127] Update component.jsx --- .../external-video-player/modal/component.jsx | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/bigbluebutton-html5/imports/ui/components/external-video-player/modal/component.jsx b/bigbluebutton-html5/imports/ui/components/external-video-player/modal/component.jsx index 502c23f78e33..694c2221aad5 100644 --- a/bigbluebutton-html5/imports/ui/components/external-video-player/modal/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/external-video-player/modal/component.jsx @@ -1,7 +1,9 @@ import React, { Component } from 'react'; import { withModalMounter } from '/imports/ui/components/modal/service'; +import Icon from '/imports/ui/components/icon/component'; import Modal from '/imports/ui/components/modal/simple/component'; import Button from '/imports/ui/components/button/component'; +import UploadMediaService from '/imports/ui/components/upload/media/service'; import { defineMessages, injectIntl } from 'react-intl'; import { isUrlValid } from '../service'; @@ -33,6 +35,10 @@ const intlMessages = defineMessages({ id: 'app.externalVideo.close', description: 'Close', }, + filename: { + id: 'app.externalVideo.filename', + description: 'Media filename', + }, note: { id: 'app.externalVideo.noteLabel', description: 'provides hint about Shared External videos', @@ -54,6 +60,7 @@ class ExternalVideoModal extends Component { this.updateVideoUrlHandler = this.updateVideoUrlHandler.bind(this); this.renderUrlError = this.renderUrlError.bind(this); this.updateVideoUrlHandler = this.updateVideoUrlHandler.bind(this); + this.onMediaFileClick = this.onMediaFileClick.bind(this); } startWatchingHandler() { @@ -72,6 +79,18 @@ class ExternalVideoModal extends Component { this.setState({ url: ev.target.value }); } + onMediaFileClick(id) { + const { + startWatching, + closeModal, + } = this.props; + + const url = UploadMediaService.getDownloadURL(id); + + startWatching(url.trim()); + closeModal(); + } + renderUrlError() { const { intl } = this.props; const { url } = this.state; @@ -89,6 +108,51 @@ class ExternalVideoModal extends Component { ); } + renderItem(item) { + const { intl } = this.props; + + return ( + this.onMediaFileClick(item.uploadId)} + > + + + + + {item.filename} + + + ); + } + + renderFiles() { + const { + intl, + files, + } = this.props; + + if (files.length === 0) return null; + + return ( +
+ + + + + + + + {files.map(item => this.renderItem(item))} + +
+ {intl.formatMessage(intlMessages.filename)} +
+
+ ); + } + render() { const { intl, closeModal } = this.props; const { url, sharing } = this.state; @@ -129,6 +193,7 @@ class ExternalVideoModal extends Component { {this.renderUrlError()} + {this.renderFiles()}