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