From 7c1c061681f12b5fa3443c1c2fd96c0b38b43d9c Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Fri, 16 Sep 2022 19:06:53 +0530 Subject: [PATCH 1/3] fix: change private files to public for company logo, user image and course image --- lms/job/doctype/job_opportunity/job_opportunity.py | 10 +++------- lms/lms/doctype/lms_course/lms_course.py | 6 +++--- lms/lms/utils.py | 9 +++++++++ lms/overrides/user.py | 7 ++++++- lms/www/profiles/profile.html | 2 +- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/lms/job/doctype/job_opportunity/job_opportunity.py b/lms/job/doctype/job_opportunity/job_opportunity.py index fbb648e6..6bff10fd 100644 --- a/lms/job/doctype/job_opportunity/job_opportunity.py +++ b/lms/job/doctype/job_opportunity/job_opportunity.py @@ -6,13 +6,15 @@ from frappe.model.document import Document from frappe.utils.user import get_system_managers from frappe import _ from frappe.utils import get_link_to_form +from lms.lms.utils import validate_image +from lms.lms.utils import validate_image class JobOpportunity(Document): def validate(self): self.validate_urls() - self.validate_logo() + self.company_logo = validate_image(self.company_logo) def validate_urls(self): @@ -20,12 +22,6 @@ class JobOpportunity(Document): frappe.utils.validate_url(self.application_link, True) - def validate_logo(self): - if "/private" in self.company_logo: - frappe.db.set_value("File", {"file_url": self.company_logo}, "is_private", 0) - frappe.db.set_value("File", {"file_url": self.company_logo}, "file_url", self.company_logo.replace("/private", "")) - self.company_logo = self.company_logo.replace("/private", "") - @frappe.whitelist() def report(job, reason): system_managers = get_system_managers(only_name=True) diff --git a/lms/lms/doctype/lms_course/lms_course.py b/lms/lms/doctype/lms_course/lms_course.py index b3bd9987..4de53314 100644 --- a/lms/lms/doctype/lms_course/lms_course.py +++ b/lms/lms/doctype/lms_course/lms_course.py @@ -5,8 +5,8 @@ from __future__ import unicode_literals import frappe from frappe.model.document import Document import json -from ...utils import generate_slug -from frappe.utils import flt, cint +from ...utils import generate_slug, validate_image +from frappe.utils import cint from lms.lms.utils import get_chapters @@ -15,7 +15,7 @@ class LMSCourse(Document): def validate(self): self.validate_instructors() self.validate_status() - + self.image = validate_image(self.image) def validate_instructors(self): if self.is_new() and not self.instructors: diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 3e1da754..b5aae2c6 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -460,3 +460,12 @@ def get_certificates(member=None): return frappe.get_all("LMS Certificate", { "member": member or frappe.session.user }, ["course", "member", "issue_date", "expiry_date", "name"]) + + +def validate_image(path): + if "/private" in path: + file = frappe.get_doc("File", {"file_url": path}) + file.is_private = 0 + file.save(ignore_permissions=True) + return file.file_url + return path diff --git a/lms/overrides/user.py b/lms/overrides/user.py index 820a4be5..7273077d 100644 --- a/lms/overrides/user.py +++ b/lms/overrides/user.py @@ -6,17 +6,22 @@ import random import re from frappe import _ from frappe.website.utils import is_signup_disabled +from lms.lms.utils import validate_image import requests -from frappe.geo.country_info import get_all from lms.widgets import Widgets + class CustomUser(User): + def validate(self): super(CustomUser, self).validate() self.validate_username_characters() self.validate_skills() self.validate_completion() + self.user_image = validate_image(self.user_image) + self.cover_image = validate_image(self.cover_image) + def validate_username_characters(self): if len(self.username): diff --git a/lms/www/profiles/profile.html b/lms/www/profiles/profile.html index 1854cd86..9c083e14 100644 --- a/lms/www/profiles/profile.html +++ b/lms/www/profiles/profile.html @@ -97,7 +97,7 @@ {% set enrollment_suffix = _("Courses") if enrollment > 1 else _("Course") %}
-
+
{{ widgets.Avatar(member=member, avatar_class="avatar-square") }}
From 4ba6ea9190c79bdec02a77778d69a9f9a03d00c1 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 19 Sep 2022 10:34:49 +0530 Subject: [PATCH 2/3] fix: removed unnecessary import --- lms/job/doctype/job_opportunity/job_opportunity.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/job/doctype/job_opportunity/job_opportunity.py b/lms/job/doctype/job_opportunity/job_opportunity.py index 6bff10fd..643638ba 100644 --- a/lms/job/doctype/job_opportunity/job_opportunity.py +++ b/lms/job/doctype/job_opportunity/job_opportunity.py @@ -7,7 +7,6 @@ from frappe.utils.user import get_system_managers from frappe import _ from frappe.utils import get_link_to_form from lms.lms.utils import validate_image -from lms.lms.utils import validate_image class JobOpportunity(Document): From 37f2e7eeda2a1e265ea67fc09e50697129300b33 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 19 Sep 2022 17:56:49 +0530 Subject: [PATCH 3/3] fix: check if path is present --- lms/lms/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/lms/utils.py b/lms/lms/utils.py index b5aae2c6..a36f8438 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -463,7 +463,7 @@ def get_certificates(member=None): def validate_image(path): - if "/private" in path: + if path and "/private" in path: file = frappe.get_doc("File", {"file_url": path}) file.is_private = 0 file.save(ignore_permissions=True)