Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1271 commits
Select commit Hold shift + click to select a range
d3f946c
Merge pull request #17499 from hiroshisuga/patch-69
antobinary Apr 11, 2023
0168be7
Merge pull request #17500 from hiroshisuga/patch-70
antobinary Apr 11, 2023
57a0ae1
Merge pull request #17501 from hiroshisuga/patch-71
ramonlsouza Apr 11, 2023
d4d5551
Fix bug the text ghost remains
hiroshisuga Apr 12, 2023
3d8cf5e
revert quick poll regexp
hiroshisuga Apr 12, 2023
19e346a
fix wrong comment out (//)
hiroshisuga Apr 12, 2023
67c0a56
Apply translations in ru (#17543)
transifex-integration[bot] Apr 12, 2023
f7e7ad7
Merge branch 'dev2.6.1_detachable' into test261
hiroshisuga Apr 12, 2023
017d172
Merge pull request #173 from hiroshisuga/test261
hiroshisuga Apr 12, 2023
8fef32d
Merge branch 'dev2.6.1_detachable' into test261_tomerge
hiroshisuga Apr 13, 2023
09278d2
Merge pull request #176 from hiroshisuga/test261_tomerge
hiroshisuga Apr 13, 2023
a839554
Update updateTranscript.js
hiroshisuga Apr 16, 2023
d236966
Create setTranslationLocale.js
hiroshisuga Apr 16, 2023
28b7a68
Update methods.js
hiroshisuga Apr 16, 2023
9b73c99
Update addUser.js
hiroshisuga Apr 16, 2023
33c5e41
Create updateTranslationLocale.js
hiroshisuga Apr 16, 2023
46dcb47
Update addUserPersistentData.js
hiroshisuga Apr 16, 2023
5fe5a77
Show caption button for mobile users (need revise)
hiroshisuga Apr 16, 2023
167744b
Update component.jsx
hiroshisuga Apr 16, 2023
78925b6
Update container.jsx
hiroshisuga Apr 16, 2023
2ad9dbf
Update styles.js
hiroshisuga Apr 16, 2023
5bb08f5
Update service.js
hiroshisuga Apr 16, 2023
bcb36ae
Update en.json
hiroshisuga Apr 16, 2023
940a3c3
Update settings.yml
hiroshisuga Apr 16, 2023
0fadd50
Update updateTranscript.js
hiroshisuga Apr 16, 2023
cd68a20
Update component.jsx
hiroshisuga Apr 16, 2023
5d92310
fix regexp
hiroshisuga Apr 16, 2023
207bca9
Update updateTranscript.js
hiroshisuga Apr 16, 2023
7ce610d
Update component.jsx
hiroshisuga Apr 16, 2023
ebf448b
version2, creating translation db
hiroshisuga Apr 18, 2023
3f7c81d
fix regexp (again)
hiroshisuga Apr 18, 2023
56df9d8
fix regexp (one more)
hiroshisuga Apr 18, 2023
ea50436
Merge branch 'test2.6.3_showdiff_detach' into dev2.6.3_detachable
hiroshisuga Apr 21, 2023
deef9ac
Update WhiteboardKeyUtil.scala
hiroshisuga May 4, 2023
1f7c6fb
Update WhiteboardModel.scala
hiroshisuga May 4, 2023
a0c3c8e
Update WhiteboardModel.scala
hiroshisuga May 4, 2023
f0769e6
Delete FileUploadedSysMsgHdlr.scala
hiroshisuga May 4, 2023
3ac0f49
Create FileUploadedSysMsgHdlr.scala
hiroshisuga May 4, 2023
34288a8
Update ChangeLockSettingsInMeetingCmdMsgHdlr.scala
hiroshisuga May 4, 2023
0000694
Update GetLockSettingsReqMsgHdlr.scala
hiroshisuga May 4, 2023
2c62fce
Delete ModifyWBModePubMsgHdlr.scala
hiroshisuga May 4, 2023
e9d5732
Delete MoveWhiteboardAnnotationsPubMsgHdlr.scala
hiroshisuga May 4, 2023
d9507cf
Delete RemoveWhiteboardAnnotationsPubMsgHdlr.scala
hiroshisuga May 4, 2023
861b44e
Delete ReorderWhiteboardAnnotationsPubMsgHdlr.scala
hiroshisuga May 4, 2023
4c41e89
Update SendWhiteboardAnnotationPubMsgHdlr.scala
hiroshisuga May 4, 2023
26225a9
Update WhiteboardApp2x.scala
hiroshisuga May 4, 2023
14dae1f
Update WhiteboardApp2x.scala
hiroshisuga May 4, 2023
a60050c
Update ReceivedJsonMsgHandlerActor.scala
hiroshisuga May 4, 2023
567ec93
Delete MoveAnnotationRecordEvent.scala
hiroshisuga May 4, 2023
b7f83cb
Delete RemoveAnnotationRecordEvent.scala
hiroshisuga May 4, 2023
68e1449
Delete ReorderAnnotationRecordEvent.scala
hiroshisuga May 4, 2023
556a675
Update MeetingActor.scala
hiroshisuga May 4, 2023
402561b
Update FromAkkaAppsMsgSenderActor.scala
hiroshisuga May 4, 2023
78bc32a
Update MeetingStatus2x.scala
hiroshisuga May 4, 2023
12e35f6
Update RedisRecorderActor.scala
hiroshisuga May 4, 2023
1d13faf
Update RedisRecorderActor.scala
hiroshisuga May 4, 2023
24f4096
Update Meeting2x.scala
hiroshisuga May 4, 2023
737212a
Update UsersMsgs.scala
hiroshisuga May 4, 2023
1719de3
Update WhiteboardMsgs.scala
hiroshisuga May 4, 2023
477d0d0
Update ApiParams.java
hiroshisuga May 4, 2023
70ae23e
Update ParamsProcessorUtil.java
hiroshisuga May 4, 2023
f15c75a
Update ParamsProcessorUtil.java
hiroshisuga May 4, 2023
da46da6
Update LockSettingsParams.java
hiroshisuga May 4, 2023
ffd6e07
Update BbbWebApiGWApp.scala
hiroshisuga May 4, 2023
0771bac
Update bbb-icons.css
hiroshisuga May 4, 2023
fe246a8
Update addAnnotation.js
hiroshisuga May 4, 2023
a1ec87e
Update eventHandlers.js
hiroshisuga May 4, 2023
6efa172
Delete whiteboardMoveAnnotations.js
hiroshisuga May 4, 2023
f6a60ca
Delete whiteboardRemoveAnnotations.js
hiroshisuga May 4, 2023
cf85ce1
Delete whiteboardReorderAnnotations.js
hiroshisuga May 4, 2023
8213a04
Update methods.js
hiroshisuga May 4, 2023
c7e4b7a
Delete moveAnnotation.js
hiroshisuga May 4, 2023
074c08d
Delete removeAnnotation.js
hiroshisuga May 4, 2023
ef797ff
Delete reorderAnnotation.js
hiroshisuga May 4, 2023
836ae1d
Update sendAnnotationHelper.js
hiroshisuga May 4, 2023
b22cad8
Delete moveAnnotation.js
hiroshisuga May 4, 2023
b19ae38
Delete reorderAnnotation.js
hiroshisuga May 4, 2023
87bb054
Update eventHandlers.js
hiroshisuga May 4, 2023
2ad1084
Delete modifyWBMode.js
hiroshisuga May 4, 2023
5f68231
Update methods.js
hiroshisuga May 4, 2023
a677e7c
Delete setVisited.js
hiroshisuga May 4, 2023
92fabab
Delete setWhiteboardMode.js
hiroshisuga May 4, 2023
a38830b
Update toggleLockSettings.js
hiroshisuga May 4, 2023
f14cd36
Update addMeeting.js
hiroshisuga May 4, 2023
04be216
Update changeLockSettings.js
hiroshisuga May 4, 2023
3807de5
Delete modifyWBMode.js
hiroshisuga May 4, 2023
215b0c8
Update modifyWhiteboardAccess.js
hiroshisuga May 4, 2023
7b6dc6a
Update modifyWhiteboardAccess.js
hiroshisuga May 4, 2023
708eb91
Update component.jsx
hiroshisuga May 4, 2023
ed2fbfb
Update container.jsx
hiroshisuga May 4, 2023
2780f6b
Update service.js
hiroshisuga May 4, 2023
d586ffe
Update component.jsx
hiroshisuga May 4, 2023
89d5958
Update component.jsx
hiroshisuga May 4, 2023
49ac035
Update component.jsx
hiroshisuga May 4, 2023
e708a1f
Update component.jsx
hiroshisuga May 4, 2023
8431242
Update component.jsx
hiroshisuga May 4, 2023
f314e92
Update component.jsx
hiroshisuga May 4, 2023
05b6b75
Update component.jsx
hiroshisuga May 4, 2023
5af2762
Update container.jsx
hiroshisuga May 4, 2023
0beddfb
Update service.js
hiroshisuga May 4, 2023
ad0796b
Update service.js
hiroshisuga May 4, 2023
3568c66
Update component.jsx
hiroshisuga May 4, 2023
1590cfc
Update component.jsx
hiroshisuga May 4, 2023
8e5f473
Update component.jsx
hiroshisuga May 4, 2023
218a28f
Update component.jsx
hiroshisuga May 4, 2023
103b19e
Update styles.js
hiroshisuga May 4, 2023
b58ffc5
Update service.js
hiroshisuga May 4, 2023
c49753c
Update service.js
hiroshisuga May 4, 2023
4b82afe
Update component.jsx
hiroshisuga May 4, 2023
e2488cd
Update styles.js
hiroshisuga May 4, 2023
395271d
Update component.jsx
hiroshisuga May 4, 2023
032fff9
Update component.jsx
hiroshisuga May 4, 2023
1018f5a
Update service.js
hiroshisuga May 4, 2023
01f03fa
Update component.jsx
hiroshisuga May 4, 2023
fe15a69
Update component.jsx
hiroshisuga May 4, 2023
431834a
Update component.jsx
hiroshisuga May 4, 2023
49d85b9
Update component.jsx
hiroshisuga May 4, 2023
9ca66c2
Delete container.jsx
hiroshisuga May 4, 2023
b2546be
Update component.jsx
hiroshisuga May 4, 2023
9c5f8ad
Update container.jsx
hiroshisuga May 4, 2023
ff4b445
Update component.jsx
hiroshisuga May 4, 2023
9321036
Delete component.jsx
hiroshisuga May 4, 2023
b85a5ae
Update component.jsx
hiroshisuga May 4, 2023
f2ceb00
Delete component.jsx
hiroshisuga May 4, 2023
8347d82
Update component.jsx
hiroshisuga May 4, 2023
97d7fed
Update component.jsx
hiroshisuga May 4, 2023
e5b3e68
Update component.jsx
hiroshisuga May 4, 2023
aeb1501
Update component.jsx
hiroshisuga May 4, 2023
f2cb3ca
Update component.jsx
hiroshisuga May 4, 2023
f061d93
Update container.jsx
hiroshisuga May 4, 2023
458fc64
Update service.js
hiroshisuga May 4, 2023
592d7f2
Update service.js
hiroshisuga May 4, 2023
280c19e
Update component.jsx
hiroshisuga May 4, 2023
d62c08a
Update service.js
hiroshisuga May 4, 2023
fa9994b
Update component.jsx
hiroshisuga May 4, 2023
2bcdab4
Update container.jsx
hiroshisuga May 4, 2023
2feee1d
Update component.jsx
hiroshisuga May 4, 2023
da9874e
Update component.jsx
hiroshisuga May 4, 2023
e8fbd21
Update component.jsx
hiroshisuga May 4, 2023
cc0f5b5
Update component.jsx
hiroshisuga May 4, 2023
6ef6533
Update component.jsx
hiroshisuga May 4, 2023
4acd94e
Update service.js
hiroshisuga May 4, 2023
87a2f5c
Update component.jsx
hiroshisuga May 4, 2023
7922e53
Update component.jsx
hiroshisuga May 4, 2023
17979ba
Update component.jsx
hiroshisuga May 4, 2023
f25df6a
Update component.jsx
hiroshisuga May 4, 2023
fde7c87
Update component.jsx
hiroshisuga May 4, 2023
329f611
Update container.jsx
hiroshisuga May 4, 2023
988af7a
Update component.jsx
hiroshisuga May 4, 2023
2d1873d
Update settings.yml
hiroshisuga May 4, 2023
591314a
Update en.json
hiroshisuga May 4, 2023
d4ab168
Update ja.json
hiroshisuga May 4, 2023
9826339
Update ja.json
hiroshisuga May 4, 2023
dd37fa5
Delete eraser.svg
hiroshisuga May 4, 2023
6722d20
Delete marker.svg
hiroshisuga May 4, 2023
41474a8
Update presentation.yml
hiroshisuga May 4, 2023
6d8bb00
Update presentation.rb
hiroshisuga May 4, 2023
9f74e8d
Update presentation.rb
hiroshisuga May 4, 2023
007e075
Update presentation.rb
hiroshisuga May 4, 2023
2da2a78
Delete eraser.png
hiroshisuga May 4, 2023
db5bccd
Delete marker.png
hiroshisuga May 4, 2023
74b17c0
Add files via upload
hiroshisuga May 4, 2023
b58c43e
Merge branch 'bigbluebutton:v2.5.x-release' into v2.5.x-release
hiroshisuga May 4, 2023
4fc221c
Merge pull request #185 from hiroshisuga/testv25xToMerge
hiroshisuga May 4, 2023
297b339
resolve conflict
hiroshisuga May 5, 2023
009b6be
Merge pull request #187 from hiroshisuga/test2.6_toShowDiff_genupload
hiroshisuga May 5, 2023
8546f45
Update fr.json
hiroshisuga May 5, 2023
48804dd
Update Gemfile
hiroshisuga May 5, 2023
702b06e
Update Gemfile.lock
hiroshisuga May 5, 2023
c344f8e
Update bigbluebutton.properties
hiroshisuga May 5, 2023
be0b540
Update component.jsx
hiroshisuga May 5, 2023
31b7c74
Update bigbluebutton.properties
hiroshisuga May 5, 2023
c259e69
Update archive.rb
hiroshisuga May 5, 2023
4c696f0
better comment out
hiroshisuga May 5, 2023
9f4784e
remove }
hiroshisuga May 5, 2023
6232a9c
bad semicolons
hiroshisuga May 5, 2023
bcef2aa
missing import QuickLinksDropdown
hiroshisuga May 5, 2023
1557c25
get isFullscreen and fullscreenRef from props
hiroshisuga May 5, 2023
d94087c
Update deploy.sh
hiroshisuga May 6, 2023
695fd4f
Update bbb-web.nginx
hiroshisuga May 6, 2023
271b821
Update deploy.sh
hiroshisuga May 6, 2023
2089465
Update component.jsx
hiroshisuga May 6, 2023
21f838d
Update component.jsx
hiroshisuga May 6, 2023
397d610
Update component.jsx
hiroshisuga May 6, 2023
7288a71
Update service.js
hiroshisuga May 6, 2023
e4aec91
replace 99 with MAX_CUSTOM_FIELDS
hiroshisuga May 6, 2023
dc3f488
Update component.jsx
hiroshisuga May 6, 2023
938b9ff
change icon and its size for quick link dropdown
hiroshisuga May 6, 2023
45335d1
remove smartmedia icon, move quicklink icon there
hiroshisuga May 6, 2023
45c56c8
Update component.jsx
hiroshisuga May 6, 2023
b5a7dfa
add answers that was removed by mistake
hiroshisuga May 6, 2023
0bafcf4
functional Yes/No button
hiroshisuga May 6, 2023
405b330
Merge pull request #191 from hiroshisuga/testdetach
hiroshisuga May 6, 2023
b68f1a9
Merge pull request #192 from hiroshisuga/testTranslate
hiroshisuga May 6, 2023
a695a16
Merge pull request #193 from hiroshisuga/teststopautoplay
hiroshisuga May 6, 2023
090dec6
Merge branch 'dev2.6.5_withAll' into testgenupload
hiroshisuga May 6, 2023
cd662d8
Merge pull request #194 from hiroshisuga/testgenupload
hiroshisuga May 6, 2023
b64258f
aqd comma
hiroshisuga May 6, 2023
482a40c
add comma
hiroshisuga May 6, 2023
fe8bd99
Fix DeepL translation
hiroshisuga May 7, 2023
a0c27e6
fix DeepL translation
hiroshisuga May 7, 2023
a5b3b3a
Update README.md
hiroshisuga May 7, 2023
66984b2
Update README.md
hiroshisuga May 7, 2023
e1f14c7
z-index of recording button
hiroshisuga May 7, 2023
967b00a
toolbarAnimation
hiroshisuga May 7, 2023
1b2c584
toolbar animation
hiroshisuga May 7, 2023
c75a86d
toolbar animation
hiroshisuga May 7, 2023
7cedbb7
toolbar animation
hiroshisuga May 7, 2023
c234918
toolbar animation
hiroshisuga May 7, 2023
b7d7afb
toolbar animation
hiroshisuga May 7, 2023
f5819c9
change to translation locale
hiroshisuga May 7, 2023
aeb29e3
change to translation locale
hiroshisuga May 7, 2023
f698f5a
remove space
hiroshisuga May 7, 2023
3f55e0a
publish untranslated caption as well
hiroshisuga May 7, 2023
9f4479c
publish untranslated caption as well
hiroshisuga May 7, 2023
0796611
Delete orphan translations
hiroshisuga May 7, 2023
17e15a7
delete orphan translations
hiroshisuga May 7, 2023
9db597f
fix window resize failure
hiroshisuga May 9, 2023
6b2a6c9
fix presentation resize failure
hiroshisuga May 9, 2023
1cf34f4
fix - fitToWidth
hiroshisuga May 10, 2023
2d714f8
fix - fitToWidth
hiroshisuga May 10, 2023
a62b8d9
unify newZoom calculation
hiroshisuga May 12, 2023
3be4245
unify newZoom calculation
hiroshisuga May 12, 2023
a095ee4
Revert updateTranscript.js
hiroshisuga May 13, 2023
4e86fd2
Merge pull request #195 from hiroshisuga/test265_translClient
hiroshisuga May 13, 2023
8a733e6
Translation on cilent
hiroshisuga May 13, 2023
fdce6df
revert del Null gen_webvtt
hiroshisuga May 13, 2023
978264a
revert updateTranscript.js
hiroshisuga May 13, 2023
dfd0ff9
translation on client side @service.js
hiroshisuga May 13, 2023
cd1e8d3
add ffi-icu
hiroshisuga May 21, 2023
b32923f
add ffi-icu
hiroshisuga May 21, 2023
35fb1f8
add ffi-icu
hiroshisuga May 21, 2023
8c36611
add ffi-icu
hiroshisuga May 21, 2023
7e52943
翻訳を追加
hiroshisuga Jun 3, 2023
e8ee44d
日本語翻訳
hiroshisuga Jun 3, 2023
28dbb87
Update ja.json
hiroshisuga Jun 3, 2023
4c3413e
fix: fonts in toolbox
hiroshisuga Jun 10, 2023
190ee69
fix: fonts in toolbox
hiroshisuga Jun 10, 2023
c817902
Merge branch 'dev2.6.9_withAll_translateClient' into testdev2.6.5with…
hiroshisuga Jun 11, 2023
9e88bb3
Merge pull request #205 from hiroshisuga/testdev2.6.5withallTranslate…
hiroshisuga Jun 11, 2023
daa25f2
Merge branch 'dev2.6.9_genupload_qpoll_qlink' into test269_genupload_…
hiroshisuga Jun 11, 2023
b10e09e
Merge branch 'test269_showdiff_genupload_qpoll_qlink' into dev2.6.9_g…
hiroshisuga Jun 11, 2023
b191f66
Merge pull request #206 from hiroshisuga/test269_genupload_qpoll_qlink
hiroshisuga Jun 11, 2023
81ea1d2
Merge pull request #208 from hiroshisuga/test269genupetc_toMergeToAll
hiroshisuga Jun 11, 2023
948f1c4
Merge pull request #209 from hiroshisuga/testdev265TranslationClientT…
hiroshisuga Jun 11, 2023
38551bd
Merge pull request #210 from hiroshisuga/testdev263detachableToMergeT…
hiroshisuga Jun 11, 2023
51a6d23
Fix: add variables to parseCurrentSlideContent
hiroshisuga Jun 12, 2023
0676cf4
Fix: quicklinks button style not transferred
hiroshisuga Jun 22, 2023
3cf788b
Fix: quicklinks button style not transferred
hiroshisuga Jun 23, 2023
07d1889
Google Translation locale without -XX
hiroshisuga Jun 29, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
**2023/5/7 The latest 2.6.5 source + dev2.6.3_detachable + dev2.6.1_translation + dev2.6.3_stopAutoPlayVideo (with minor conflicts) + dev2.6_genupload_qpoll_qlink**

BigBlueButton
=============
BigBlueButton is an open source web conferencing system.
Expand Down
Original file line number Diff line number Diff line change
@@ -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)
}
}
Original file line number Diff line number Diff line change
@@ -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)
}
Original file line number Diff line number Diff line change
@@ -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)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,12 @@ class ReceivedJsonMsgHandlerActor(
case GetScreenshareStatusReqMsg.NAME =>
routeGenericMsg[GetScreenshareStatusReqMsg](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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
*
*/

package org.bigbluebutton.core.record.events

trait AbstractUploadRecordEvent extends RecordEvent {
setModule("UPLOAD")
}
Original file line number Diff line number Diff line change
@@ -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 <http://www.gnu.org/licenses/>.
*
*/

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"
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,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._
Expand Down Expand Up @@ -133,6 +134,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 webcamApp2x = new WebcamApp2x
val wbApp = new WhiteboardApp2x
Expand Down Expand Up @@ -538,6 +540,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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,11 @@ class AnalyticsActor(val includeChat: Boolean) extends Actor with ActorLogging {
case m: SetPrivateGuestLobbyMessageCmdMsg => logMessage(msg)
case m: PrivateGuestLobbyMsgChangedEvtMsg => 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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ class RedisRecorderActor(
case m: MeetingEndingEvtMsg => handleEndAndKickAllSysMsg(m)
case m: MeetingCreatedEvtMsg => handleStarterConfigurations(m)

// Upload
case m: FileUploadedEvtMsg => handleFileUploadedEvtMsg(m)

// Recording
case m: RecordingChapterBreakSysMsg => handleRecordingChapterBreakSysMsg(m)

Expand Down Expand Up @@ -579,6 +582,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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.bigbluebutton.common2.msgs

// client to akka-apps
object UploadRequestReqMsg { val NAME = "UploadRequestReqMsg" }
case class UploadRequestReqMsg(header: BbbClientMsgHeader, body: UploadRequestReqMsgBody) extends StandardMsg
case class UploadRequestReqMsgBody(source: String, filename: String, timestamp: Long)

// akka-apps to client
object UploadRequestRespMsg { val NAME = "UploadRequestRespMsg" }
case class UploadRequestRespMsg(header: BbbClientMsgHeader, body: UploadRequestRespMsgBody) extends StandardMsg
case class UploadRequestRespMsgBody(source: String, filename: String, userId: String, success: Boolean, timestamp: Long, token: String = null)

object FileUploadedEvtMsg { val NAME = "FileUploadedEvtMsg" }
case class FileUploadedEvtMsg(header: BbbClientMsgHeader, body: FileUploadedEvtMsgBody) extends StandardMsg
case class FileUploadedEvtMsgBody(uploadId: String, source: String, filename: String)

// akka-apps to bbb-web
object UploadRequestSysMsg { val NAME = "UploadRequestSysMsg" }
case class UploadRequestSysMsg(header: BbbCoreHeaderWithMeetingId, body: UploadRequestSysMsgBody) extends BbbCoreMsg
case class UploadRequestSysMsgBody(source: String, filename: String, userId: String, token: String)

// bbb-web to akka-apps
object FileUploadedSysMsg { val NAME = "FileUploadedSysMsg" }
case class FileUploadedSysMsg(header: BbbClientMsgHeader, body: FileUploadedSysMsgBody) extends StandardMsg
case class FileUploadedSysMsgBody(uploadId: String, source: String, filename: String, contentType: String)
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,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;
Expand Down Expand Up @@ -272,6 +273,33 @@ private void kickOffProcessingOfRecording(Meeting 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);
}
Expand Down Expand Up @@ -617,6 +645,22 @@ 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));
}
Expand Down Expand Up @@ -734,6 +778,13 @@ private void processGuestStatusChangedEventMsg(GuestStatusChangedEventMsg messag

}

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 processPresentationUploadToken(PresentationUploadToken message) {
uploadAuthzTokens.put(message.authzToken, message);
}
Expand Down Expand Up @@ -1157,6 +1208,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 PositionInWaitingQueueUpdated) {
Expand Down
Loading