From 2b3ec8fdb3e6eaf7b008929aa535bf6d21b4eb2c Mon Sep 17 00:00:00 2001 From: andrepereiradasilva Date: Sun, 7 Aug 2016 02:08:21 +0100 Subject: [PATCH 1/5] correct core.edit.own --- .../com_weblinks/controllers/weblink.php | 24 ++++++++++++------- .../com_weblinks/models/weblinks.php | 2 +- .../views/weblinks/tmpl/default.php | 5 ++-- .../com_weblinks/views/weblinks/view.html.php | 2 +- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/administrator/components/com_weblinks/controllers/weblink.php b/src/administrator/components/com_weblinks/controllers/weblink.php index 278deea..f322d9a 100644 --- a/src/administrator/components/com_weblinks/controllers/weblink.php +++ b/src/administrator/components/com_weblinks/controllers/weblink.php @@ -59,21 +59,29 @@ class WeblinksControllerWeblink extends JControllerForm protected function allowEdit($data = array(), $key = 'id') { $recordId = (int) isset($data[$key]) ? $data[$key] : 0; - $categoryId = 0; - if ($recordId) + // Since there is no asset tracking, fallback to the component permissions. + if (!$recordId) { - $categoryId = (int) $this->getModel()->getItem($recordId)->catid; + return parent::allowEdit($data, $key); } - if ($categoryId) + // Get the item. + $item = $this->getModel()->getItem($recordId); + + // Since there is no item, return false. + if (empty($item)) { - // The category has been set. Check the category permissions. - return JFactory::getUser()->authorise('core.edit', $this->option . '.category.' . $categoryId); + return false; } - // Since there is no asset tracking, revert to the component permissions. - return parent::allowEdit($data, $key); + $user = JFactory::getUser(); + + // Check if can edit own core.edit.own. + $canEditOwn = $user->authorise('core.edit.own', $this->option . '.category.' . (int) $record->catid) && $item->created_by == $user->id; + + // Check the category core.edit permissions. + return $canEditOwn || $user->authorise('core.edit', $this->option . '.category.' . (int) $record->catid); } /** diff --git a/src/administrator/components/com_weblinks/models/weblinks.php b/src/administrator/components/com_weblinks/models/weblinks.php index 50c8eb2..2c9a0fc 100644 --- a/src/administrator/components/com_weblinks/models/weblinks.php +++ b/src/administrator/components/com_weblinks/models/weblinks.php @@ -132,7 +132,7 @@ class WeblinksModelWeblinks extends JModelList $query->select( $this->getState( 'list.select', - 'a.id, a.title, a.alias, a.checked_out, a.checked_out_time, a.catid,' . + 'a.id, a.title, a.alias, a.checked_out, a.checked_out_time, a.catid, a.created_by ' . 'a.hits, a.state, a.access, a.ordering, a.language, a.publish_up, a.publish_down' ) ); diff --git a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php index fb8978c..2775ae7 100644 --- a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php +++ b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php @@ -132,7 +132,8 @@ JFactory::getDocument()->addScriptDeclaration(' $item->cat_link = JRoute::_('index.php?option=com_categories&extension=com_weblinks&task=edit&type=other&cid[]='. $item->catid); $canCreate = $user->authorise('core.create', 'com_weblinks.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_weblinks.category.' . $item->catid); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || $item->checked_out == 0; + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; + $canEditOwn = $user->authorise('core.edit.own', 'com_weblinks.category.' . $item->catid) && $item->created_by == $user->id; $canChange = $user->authorise('core.edit.state', 'com_weblinks.category.' . $item->catid) && $canCheckin; ?> @@ -165,7 +166,7 @@ JFactory::getDocument()->addScriptDeclaration(' checked_out) : ?> editor, $item->checked_out_time, 'weblinks.', $canCheckin); ?> - + escape($item->title); ?> diff --git a/src/administrator/components/com_weblinks/views/weblinks/view.html.php b/src/administrator/components/com_weblinks/views/weblinks/view.html.php index aaa72f2..ba55e4f 100644 --- a/src/administrator/components/com_weblinks/views/weblinks/view.html.php +++ b/src/administrator/components/com_weblinks/views/weblinks/view.html.php @@ -70,7 +70,7 @@ class WeblinksViewWeblinks extends JViewLegacy JToolbarHelper::addNew('weblink.add'); } - if ($canDo->get('core.edit')) + if ($canDo->get('core.edit') || $canDo->get('core.edit.own')) { JToolbarHelper::editList('weblink.edit'); } From 50f6900439fe74efafc5ce01f2b74b3e98017a12 Mon Sep 17 00:00:00 2001 From: andrepereiradasilva Date: Sun, 7 Aug 2016 02:16:40 +0100 Subject: [PATCH 2/5] fix conflicts 1 --- .../components/com_weblinks/views/weblinks/tmpl/default.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php index 2775ae7..fb8978c 100644 --- a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php +++ b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php @@ -132,8 +132,7 @@ JFactory::getDocument()->addScriptDeclaration(' $item->cat_link = JRoute::_('index.php?option=com_categories&extension=com_weblinks&task=edit&type=other&cid[]='. $item->catid); $canCreate = $user->authorise('core.create', 'com_weblinks.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_weblinks.category.' . $item->catid); - $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; - $canEditOwn = $user->authorise('core.edit.own', 'com_weblinks.category.' . $item->catid) && $item->created_by == $user->id; + $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || $item->checked_out == 0; $canChange = $user->authorise('core.edit.state', 'com_weblinks.category.' . $item->catid) && $canCheckin; ?> @@ -166,7 +165,7 @@ JFactory::getDocument()->addScriptDeclaration(' checked_out) : ?> editor, $item->checked_out_time, 'weblinks.', $canCheckin); ?> - + escape($item->title); ?> From 70012793dceb40a8e35e4c8d79c9796ef81be07c Mon Sep 17 00:00:00 2001 From: andrepereiradasilva Date: Sun, 7 Aug 2016 02:17:04 +0100 Subject: [PATCH 3/5] fix conflicts final --- .../components/com_weblinks/views/weblinks/tmpl/default.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php index e0d443e..a6befc7 100644 --- a/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php +++ b/src/administrator/components/com_weblinks/views/weblinks/tmpl/default.php @@ -86,7 +86,8 @@ if ($saveOrder) cat_link = JRoute::_('index.php?option=com_categories&extension=com_weblinks&task=edit&type=other&cid[]=' . $item->catid); ?> authorise('core.create', 'com_weblinks.category.' . $item->catid); ?> authorise('core.edit', 'com_weblinks.category.' . $item->catid); ?> - authorise('core.manage', 'com_checkin') || $item->checked_out == $user->get('id') || $item->checked_out == 0; ?> + authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; ?> + authorise('core.edit.own', 'com_weblinks.category.' . $item->catid) && $item->created_by == $user->id; ?> authorise('core.edit.state', 'com_weblinks.category.' . $item->catid) && $canCheckin; ?> @@ -121,7 +122,7 @@ if ($saveOrder) checked_out) : ?> editor, $item->checked_out_time, 'weblinks.', $canCheckin); ?> - + escape($item->title); ?> From 0af9354e1e084115f9f5e76f7a6df4a3a60a771a Mon Sep 17 00:00:00 2001 From: andrepereiradasilva Date: Sun, 7 Aug 2016 08:24:33 +0100 Subject: [PATCH 4/5] correct variable --- .../components/com_weblinks/controllers/weblink.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/administrator/components/com_weblinks/controllers/weblink.php b/src/administrator/components/com_weblinks/controllers/weblink.php index d0700a4..825c05f 100644 --- a/src/administrator/components/com_weblinks/controllers/weblink.php +++ b/src/administrator/components/com_weblinks/controllers/weblink.php @@ -79,10 +79,10 @@ class WeblinksControllerWeblink extends JControllerForm $user = JFactory::getUser(); // Check if can edit own core.edit.own. - $canEditOwn = $user->authorise('core.edit.own', $this->option . '.category.' . (int) $record->catid) && $item->created_by == $user->id; + $canEditOwn = $user->authorise('core.edit.own', $this->option . '.category.' . (int) $item->catid) && $item->created_by == $user->id; // Check the category core.edit permissions. - return $canEditOwn || $user->authorise('core.edit', $this->option . '.category.' . (int) $record->catid); + return $canEditOwn || $user->authorise('core.edit', $this->option . '.category.' . (int) $item->catid); } /** From cfd842f5e48b6cd1b7cc58d7e130cdffadcd2f3d Mon Sep 17 00:00:00 2001 From: andrepereiradasilva Date: Sun, 7 Aug 2016 09:22:04 +0100 Subject: [PATCH 5/5] missing comma --- src/administrator/components/com_weblinks/models/weblinks.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/administrator/components/com_weblinks/models/weblinks.php b/src/administrator/components/com_weblinks/models/weblinks.php index 1d92213..65cf6e8 100644 --- a/src/administrator/components/com_weblinks/models/weblinks.php +++ b/src/administrator/components/com_weblinks/models/weblinks.php @@ -132,7 +132,7 @@ class WeblinksModelWeblinks extends JModelList $query->select( $this->getState( 'list.select', - 'a.id, a.title, a.alias, a.checked_out, a.checked_out_time, a.catid, a.created_by ' . + 'a.id, a.title, a.alias, a.checked_out, a.checked_out_time, a.catid, a.created_by, ' . 'a.hits, a.state, a.access, a.ordering, a.language, a.publish_up, a.publish_down' ) );