kaltura-client 18.15.0 → 18.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0eaecd7d435509d0dd9427be7147fa138969131df545edf84ae96280aae0215
4
- data.tar.gz: 547214a5f9e29c0e8bcb67a419b4be4cbe2dddcf7353f499e274970653c20a4d
3
+ metadata.gz: fe94cfa588ff68a36f35261ded5c192496b6ca7abe314c679bb5f95ad1f227b7
4
+ data.tar.gz: e0d94f186140fa6a96026822dada121898f8083f3fd2a99b4c822ee52567bb40
5
5
  SHA512:
6
- metadata.gz: 6ac27a46d1e670d168f34d2489e45e140549927e59aff93491bfba4848695a182555b7adb677c269453339e7c31fb234cde46c57bd76835f358cf09e5a7f73b4
7
- data.tar.gz: db0f7472f222deac6a8713d920daeee5155178f08699306c34b7e8b72fbff6114bfbfcd05e513455888304558c7744b7f82e7c73b4ab949cbf117ed36d5a6743
6
+ metadata.gz: 150de887ab33dcd4b2bfdf18fdd0b93be2d75fd15fc5b17ca2d4f6655443f9f4abc6c0da02e49988b34eee8e48ace907d32babb0908f54ed735d69483f8a4a0a
7
+ data.tar.gz: 185985027e86df44f0114f166511bfbdb6a828e90b8768f8c2bdf3745502eb94ed512bb1c789b393809eace6cb69b5a9ad1d466b68300d76ae256d2e0e860376
data/README CHANGED
@@ -1,5 +1,5 @@
1
1
  Kaltura Ruby API Client Library.
2
- Compatible with Kaltura server version 18.15.0 and above.
2
+ Compatible with Kaltura server version 18.16.0 and above.
3
3
 
4
4
  This source contains:
5
5
  - The Kaltura client library (kaltura_client_base.rb)
@@ -6382,8 +6382,8 @@ module Kaltura
6382
6382
 
6383
6383
  def initialize(client)
6384
6384
  super(client)
6385
- self.client_tag = 'ruby:22-10-03'
6386
- self.api_version = '18.15.0'
6385
+ self.client_tag = 'ruby:22-10-24'
6386
+ self.api_version = '18.16.0'
6387
6387
  end
6388
6388
 
6389
6389
  def client_tag=(value)
@@ -36,11 +36,18 @@ require 'digest/sha1'
36
36
  require 'base64'
37
37
  require 'date'
38
38
  require 'yaml'
39
+ require 'uri'
39
40
 
40
41
  module Kaltura
41
42
  class KalturaNotImplemented; end
42
43
 
43
44
  class KalturaClientBase
45
+
46
+ # KS V2 constants
47
+ FIELD_EXPIRY = '_e';
48
+ FIELD_TYPE = '_t';
49
+ FIELD_USER = '_u';
50
+
44
51
  attr_accessor :config
45
52
  attr_reader :is_multirequest
46
53
  attr_reader :responseHeaders
@@ -387,6 +394,62 @@ module Kaltura
387
394
 
388
395
  self.ks = cleaned
389
396
  end
397
+
398
+ def generate_session_v2(admin_secret, user_id, kaltura_session_type, partner_id, expiry=86400, privileges=nil)
399
+ fields = {}
400
+ if privileges !=nil
401
+ privileges.split(',').each do |privilege|
402
+ privilege.strip!
403
+ if !privilege
404
+ next
405
+ end
406
+ if (privilege == '*')
407
+ privilege = 'all:*'
408
+ end
409
+ splitted_privilege = privilege.split(':', 2)
410
+ if (splitted_privilege.count > 1)
411
+ fields[splitted_privilege[0]] = splitted_privilege[1]
412
+ else
413
+ fields[splitted_privilege[0]] = ''
414
+ end
415
+ end
416
+ end
417
+ fields[KalturaClientBase::FIELD_EXPIRY] = (Time.now.to_i + expiry.to_i)
418
+ fields[KalturaClientBase::FIELD_TYPE] = kaltura_session_type
419
+ fields[KalturaClientBase::FIELD_USER] = user_id
420
+
421
+ # build fields string
422
+ fields_str = URI.encode_www_form(fields)
423
+ rand = ''
424
+ for i in 0..15 do
425
+ rand += rand(0..0xff).chr
426
+ end
427
+ fields_str = rand + fields_str
428
+ fields_str = Digest::SHA1.digest(fields_str) + fields_str
429
+
430
+ # encrypt and encode
431
+ encrypted_fields = aes_encrypt(admin_secret, fields_str)
432
+ decoded_ks = "v2|#{partner_id}|" + encrypted_fields
433
+ # in other clients, we do not set the ks on the client object here, only return it; however, because
434
+ # this was done in generate_session(), I added it for compatibility reasons.
435
+ self.ks = Base64.urlsafe_encode64(decoded_ks).gsub('+','-').gsub('/','_')
436
+ return self.ks
437
+ end
438
+
439
+ def aes_encrypt(key, data)
440
+ iv = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" # no need for an IV since we add a random string to the message anyway
441
+ key = Digest::SHA1.digest(key)[0..15]
442
+ cipher = OpenSSL::Cipher::AES.new(128, :CBC)
443
+ cipher.encrypt
444
+
445
+ cipher.padding = 0 # we must disable native padding.
446
+ cipher.key = key
447
+ cipher.iv = iv
448
+ block_size = cipher.block_size
449
+ # this is needed to maintain compatibility with the legacy mcrypt extension, see https://github.com/kaltura/server/blob/Rigel-18.16.0/infra/general/KCryptoWrapper.class.php#L79
450
+ data = data + "\0" * (block_size - data.bytesize % block_size)
451
+ return cipher.update(data) + cipher.final
452
+ end
390
453
  end
391
454
 
392
455
  class KalturaServiceActionCall
data/lib/kaltura_enums.rb CHANGED
@@ -3874,6 +3874,8 @@ module Kaltura
3874
3874
  end
3875
3875
 
3876
3876
  class KalturaUserEntryExtendedStatus
3877
+ SYNC_STATUS_ERROR = "quiz.SYNC_STATUS_ERROR"
3878
+ SYNC_STATUS_SUCCESS = "quiz.SYNC_STATUS_SUCCESS"
3877
3879
  PLAYBACK_COMPLETE = "viewHistory.PLAYBACK_COMPLETE"
3878
3880
  PLAYBACK_STARTED = "viewHistory.PLAYBACK_STARTED"
3879
3881
  VIEWED = "viewHistory.VIEWED"
@@ -64,10 +64,10 @@ class ConfigurationTest < Test::Unit::TestCase
64
64
  config.logger = Logger.new(STDOUT)
65
65
  config.timeout = timeout
66
66
 
67
- @client = Kaltura::KalturaClient.new( config )
67
+ @client = Kaltura::KalturaClient.new(config)
68
68
  assert_equal @client.ks, Kaltura::KalturaNotImplemented
69
69
 
70
- session = @client.session_service.start( administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
70
+ session = @client.generate_session_v2(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
71
71
  @client.ks = session
72
72
 
73
73
  assert_not_nil @client.ks
@@ -86,10 +86,10 @@ class ConfigurationTest < Test::Unit::TestCase
86
86
  config.service_url = service_url
87
87
  config.logger = Logger.new(STDOUT)
88
88
 
89
- @client = Kaltura::KalturaClient.new( config )
89
+ @client = Kaltura::KalturaClient.new(config)
90
90
 
91
91
  assert_raise Kaltura::KalturaAPIError do
92
- session = @client.session_service.start( administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
92
+ session = @client.session_service.start(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
93
93
  end
94
94
  end
95
95
 
@@ -105,10 +105,10 @@ class ConfigurationTest < Test::Unit::TestCase
105
105
  config.service_url = service_url
106
106
  config.logger = Logger.new(STDOUT)
107
107
 
108
- @client = Kaltura::KalturaClient.new( config )
108
+ @client = Kaltura::KalturaClient.new(config)
109
109
 
110
110
  assert_raise Kaltura::KalturaAPIError do
111
- session = @client.session_service.start( "invalid_administrator_secret", '', Kaltura::KalturaSessionType::ADMIN, partner_id)
111
+ session = @client.session_service.start("invalid_administrator_secret", '', Kaltura::KalturaSessionType::ADMIN, partner_id)
112
112
  @client.ks = session
113
113
  end
114
114
 
@@ -130,11 +130,11 @@ class ConfigurationTest < Test::Unit::TestCase
130
130
  config.logger = Logger.new(STDOUT)
131
131
  config.timeout = timeout
132
132
 
133
- @client = Kaltura::KalturaClient.new( config )
133
+ @client = Kaltura::KalturaClient.new(config)
134
134
 
135
135
  assert_equal @client.ks, Kaltura::KalturaNotImplemented
136
136
 
137
- @client.generate_session(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
137
+ @client.generate_session_v2(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
138
138
 
139
139
  assert_not_nil @client.ks
140
140
 
data/test/test_helper.rb CHANGED
@@ -54,8 +54,8 @@ class Test::Unit::TestCase
54
54
  config.logger = Logger.new(STDOUT)
55
55
  config.timeout = timeout
56
56
 
57
- @client = Kaltura::KalturaClient.new( config )
58
- @client.generate_session(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id )
57
+ @client = Kaltura::KalturaClient.new(config)
58
+ @client.generate_session_v2(administrator_secret, '', Kaltura::KalturaSessionType::ADMIN, partner_id)
59
59
  end
60
60
 
61
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaltura-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.15.0
4
+ version: 18.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaltura Inc.