@@ -73,7 +73,8 @@ def proxies(self):
73
73
def proxies (self , proxies ):
74
74
self ._proxies = proxies
75
75
76
- def generate_token (self , session_id , role = Roles .publisher , expire_time = None , data = None ):
76
+ def generate_token (self , session_id , role = Roles .publisher , expire_time = None , data = None ,
77
+ initial_layout_class_list = []):
77
78
"""
78
79
Generates a token for a given session.
79
80
@@ -102,6 +103,8 @@ def generate_token(self, session_id, role=Roles.publisher, expire_time=None, dat
102
103
end-user. The length of the string is limited to 1000 characters. This data cannot be
103
104
updated once it is set.
104
105
106
+ :param list initial_layout_class_list:
107
+
105
108
:rtype:
106
109
The token string.
107
110
"""
@@ -131,7 +134,12 @@ def generate_token(self, session_id, role=Roles.publisher, expire_time=None, dat
131
134
if expire_time > now + (60 * 60 * 24 * 30 ): # 30 days
132
135
raise OpenTokException (u ('Cannot generate token, expire_time is not in the next 30 days {0}' ).format (expire_time ))
133
136
if data and len (data ) > 1000 :
134
- raise OpenTokException (u ('Cannot generate token, data must be less than 1000 characters' ).format (data ))
137
+ raise OpenTokException (u ('Cannot generate token, data must be less than 1000 characters' ))
138
+ if initial_layout_class_list and not all (text_type (c ) for c in initial_layout_class_list ):
139
+ raise OpenTokException (u ('Cannot generate token, all items in initial_layout_class_list must be strings' ))
140
+ initial_layout_class_list_serialized = u (' ' ).join (initial_layout_class_list )
141
+ if len (initial_layout_class_list_serialized ) > 1000 :
142
+ raise OpenTokException (u ('Cannot generate token, initial_layout_class_list must be less than 1000 characters' ))
135
143
136
144
# decode session id to verify api_key
137
145
sub_session_id = session_id [2 :]
@@ -146,11 +154,12 @@ def generate_token(self, session_id, role=Roles.publisher, expire_time=None, dat
146
154
raise OpenTokException (u ('Cannot generate token, the session_id {0} does not belong to the api_key {1}' ).format (session_id , self .api_key ))
147
155
148
156
data_params = dict (
149
- session_id = session_id ,
150
- create_time = now ,
151
- expire_time = expire_time ,
152
- role = role .value ,
153
- nonce = random .randint (0 ,999999 )
157
+ session_id = session_id ,
158
+ create_time = now ,
159
+ expire_time = expire_time ,
160
+ role = role .value ,
161
+ nonce = random .randint (0 ,999999 ),
162
+ initial_layout_class_list = initial_layout_class_list_serialized
154
163
)
155
164
if data :
156
165
data_params ['connection_data' ] = data
0 commit comments