@@ -85,6 +85,9 @@ def validate_write_level(self):
85
85
86
86
def validate_author (self , write : WriteBaseModel , wr_password : str = None ):
87
87
"""작성자 확인"""
88
+ if self .member .admin_type :
89
+ return
90
+
88
91
if not is_owner (write , self .member .mb_id ) and not validate_password (wr_password , write .wr_password ):
89
92
self .raise_exception (detail = "작성자만 수정/삭제 할 수 있습니다." , status_code = 403 )
90
93
@@ -188,7 +191,14 @@ def get_cleaned_data(self, content):
188
191
"""Stored XSS 방지용 데이터 정제"""
189
192
return content_sanitizer .get_cleaned_data (content )
190
193
191
- def arrange_data (self , data : Union [WriteForm , WriteModel ], secret : str , html : str , mail : str ):
194
+ def arrange_data (
195
+ self ,
196
+ data : Union [WriteForm , WriteModel ],
197
+ secret : str ,
198
+ html : str ,
199
+ mail : str ,
200
+ is_update : bool = False
201
+ ):
192
202
"""
193
203
form 또는 body 형태로 들어오는 데이터를 양식에 맞게 정리
194
204
- 항목: ca_name, wr_password, wr_name, wr_email, wr_homepage, wr_option, wr_link1, wr_link2, wr_content
@@ -204,7 +214,8 @@ def arrange_data(self, data: Union[WriteForm, WriteModel], secret: str, html: st
204
214
data .ca_name = ""
205
215
self .validate_wr_password (data .wr_password )
206
216
data .wr_password = create_hash (data .wr_password ) if data .wr_password else ""
207
- data .wr_name = self .set_wr_name (self .member , data .wr_name )
217
+ if not is_update :
218
+ data .wr_name = self .set_wr_name (self .member , data .wr_name )
208
219
data .wr_email = getattr (self .member , "mb_email" , data .wr_email )
209
220
data .wr_homepage = getattr (self .member , "mb_homepage" , data .wr_homepage )
210
221
@@ -249,7 +260,8 @@ def upload_files(
249
260
write : WriteBaseModel ,
250
261
file_list : List [UploadFile ],
251
262
file_content : List [str ] = None ,
252
- file_dels : list = None
263
+ file_dels : list = None ,
264
+ password_verified : bool = False
253
265
):
254
266
"""파일 업로드"""
255
267
# files = []
@@ -258,7 +270,9 @@ def upload_files(
258
270
# if getattr(file, "size", None):
259
271
# files.append(file)
260
272
261
- if self .member .mb_id and self .member .mb_id != write .mb_id :
273
+ is_not_same_mb_id = self .member .mb_id and self .member .mb_id != write .mb_id
274
+
275
+ if not self .member .admin_type and is_not_same_mb_id and not password_verified :
262
276
self .raise_exception (status_code = 403 , detail = "자신의 글에만 파일을 업로드할 수 있습니다." )
263
277
264
278
if not self .is_upload_level ():
0 commit comments