From bc7a9423a0ac5d7878d9cea8e0e1538ddd65acc1 Mon Sep 17 00:00:00 2001 From: sreeshanth-soma1 Date: Thu, 19 Feb 2026 04:43:37 +0530 Subject: [PATCH] feat: Implement 'Copyright Owner' filter in advanced search by joining user data and enforcing copyright owner status. --- core/models/media_model.php | 9 ++++++++- public/html/sidebar/advanced_search.html | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/models/media_model.php b/core/models/media_model.php index ad873823..19bd2f3f 100644 --- a/core/models/media_model.php +++ b/core/models/media_model.php @@ -830,6 +830,7 @@ public function search($args = []) $this->db->leftjoin('media_categories', 'media.category_id', 'media_categories.id'); $this->db->leftjoin('countries', 'media.country', 'countries.country_id'); $this->db->leftjoin('languages', 'media.language', 'languages.language_id'); + $this->db->leftjoin('users', 'media.owner_id', 'users.id'); if ($params['sort_by'] == 'category_name') { $params['sort_by'] = 'media_categories.name'; @@ -954,7 +955,7 @@ public function search_filters_validate($args = []) OBFHelpers::require_args($args, ['filters']); $filters = $args['filters']; - $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','status','dynamic_select']; + $allowed_filters = ['comments','artist','title','album','year','type','category','country','language','genre','duration','is_copyright_owner','copyright_owner','status','dynamic_select']; $allowed_operators = [ // deprecated 'like', @@ -1036,6 +1037,7 @@ public function search_filters_where_array($args = []) $column_array['duration'] = 'media.duration'; $column_array['comments'] = 'media.comments'; $column_array['is_copyright_owner'] = 'media.is_copyright_owner'; + $column_array['copyright_owner'] = 'users.username'; $column_array['dynamic_select'] = 'media.dynamic_select'; $metadata_fields = $this->models->mediametadata('get_all'); @@ -1125,6 +1127,11 @@ public function search_filters_where_array($args = []) } $where_array[] = $tmp_sql; + + // copyright_owner filter: also enforce that is_copyright_owner = 1 + if ($filter['filter'] == 'copyright_owner') { + $where_array[] = 'media.is_copyright_owner = 1'; + } } return $where_array; diff --git a/public/html/sidebar/advanced_search.html b/public/html/sidebar/advanced_search.html index cffcba45..7fbea79d 100644 --- a/public/html/sidebar/advanced_search.html +++ b/public/html/sidebar/advanced_search.html @@ -21,6 +21,7 @@ +