def create_instance(self, body_data): """ 重载修改后: *.将password字段加密 :param body_data: 创建对象时的传入数据 :return: instance: 创建操作后的对象 """ password = generate_password_hash(body_data["password"], method="pbkdf2:sha256") body_data["password"] = password body_data["creator_id"] = g.login_user.id if "img_url" not in body_data: body_data[ "img_url"] = "https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png" # 判断该模型是否支持所有输入属性 for item in body_data: if not hasattr(self.model, item): del body_data[item] # 创建对象 user = self.model(**body_data) db.session.add(user) db.session.commit() # 创建空间 space_data = { "name": user.username + "'s private space", "space_type": "private", "own_user_id": user.id } space = Space(**space_data) db.session.add(space) db.session.commit() # 创建桶 bucket_data = { "name": space.name + "'s 1st bucket", "space_id": space.id } bucket = Bucket(**bucket_data) db.session.add(bucket) db.session.commit() # 创建空间根目录 bucket_data = { "object_name": space.name + "'s root", "object_type": "folder", "object_size": 0, "creator_id": user.id, "bucket_id": bucket.id } folder_root = File(**bucket_data) db.session.add(folder_root) db.session.commit() # 关联空间与根目录 space.root_folder = folder_root db.session.commit() return user
def create_instance(self, body_data): """ 重载修改后: *.将password字段加密 :param body_data: 创建对象时的传入数据 :return: instance: 创建操作后的对象 """ body_data["creator_id"] = g.login_user.id # 判断该模型是否支持所有输入属性 for item in body_data: if not hasattr(self.model, item): del body_data[item] # 创建对象 group = self.model(**body_data) group.users = [g.login_user, ] db.session.add(group) db.session.commit() # 创建空间 space_data = { "name": group.name + "'s private space", "space_type": "group", "own_group_id": group.id } space = Space(**space_data) db.session.add(space) db.session.commit() # 创建桶 bucket_data = { "name": space.name + "'s 1st bucket", "space_id": space.id } bucket = Bucket(**bucket_data) db.session.add(bucket) db.session.commit() # 创建空间根目录 bucket_data = { "object_name": space.name + "'s root", "object_type": "folder", "object_size": 0, "creator_id": g.login_user.id, "bucket_id": bucket.id } folder_root = File(**bucket_data) db.session.add(folder_root) db.session.commit() # 关联空间与根目录 space.root_folder = folder_root db.session.commit() return group