Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
opacce
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
7
Merge Requests
7
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
afi
opacce
Commits
6e3228b0
Commit
6e3228b0
authored
Mar 20, 2020
by
Patrick Barroca
🐧
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hotline #106864 : forbid dedicated groups edition and deletion
parent
abd5c251
Pipeline
#9717
passed with stage
in 44 minutes and 10 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
148 additions
and
21 deletions
+148
-21
106864
VERSIONS_HOTLINE/106864
+1
-0
UserGroup.php
library/ZendAfi/Controller/Plugin/Manager/UserGroup.php
+38
-20
UserGroupControllerTest.php
...ion/modules/admin/controllers/UserGroupControllerTest.php
+109
-1
No files found.
VERSIONS_HOTLINE/106864
0 → 100644
View file @
6e3228b0
- ticket #106864 : Newsletter : Il n'est plus possible de modifier ou supprimer le groupe manuel dédié à chaque newsletter
\ No newline at end of file
library/ZendAfi/Controller/Plugin/Manager/UserGroup.php
View file @
6e3228b0
...
...
@@ -175,6 +175,16 @@ class ZendAfi_Controller_Plugin_Manager_UserGroup extends ZendAfi_Controller_Plu
}
protected
function
_canEdit
(
$model
)
{
return
!
$model
->
isDedicated
();
}
protected
function
_canDelete
(
$model
)
{
return
!
$model
->
isDedicated
();
}
protected
function
_getPost
(
$key
=
null
,
$default
=
null
)
{
$post
=
$this
->
_request
->
getPost
();
if
(
!
isset
(
$post
[
ZendAfi_Form_Admin_UserGroup
::
RIGHTS_PERMISSIONS
]))
...
...
@@ -261,25 +271,33 @@ class ZendAfi_Controller_Plugin_Manager_UserGroup extends ZendAfi_Controller_Plu
protected
function
_getLeafsActions
(
$model
)
{
return
[
[
'url'
=>
'/admin/usergroup/editmembers/id/%s'
,
'icon'
=>
'users'
,
'label'
=>
$this
->
_
(
'Membres'
),
'caption'
=>
'formatedCount'
],
[
'url'
=>
'/admin/usergroup/edit/id/%s'
,
'icon'
=>
'edit'
,
'label'
=>
$this
->
_
(
'Modifier'
),
],
[
'url'
=>
'/admin/usergroup/delete/id/%s'
,
'icon'
=>
'delete'
,
'label'
=>
$this
->
_
(
'Supprimer'
),
'anchorOptions'
=>
[
'onclick'
=>
"return confirm('Etes-vous sûr de vouloir supprimer ce groupe ?')"
]]
];
$actions
=
[[
'url'
=>
'/admin/usergroup/editmembers/id/%s'
,
'icon'
=>
'users'
,
'label'
=>
$this
->
_
(
'Membres'
),
'caption'
=>
'formatedCount'
]];
if
(
$model
->
isDedicatedTo
(
Class_Newsletter
::
class
))
{
$actions
[]
=
[
'url'
=>
'/admin/newsletter/edit-subscribers/id/'
.
$model
->
getModelId
(),
'icon'
=>
'back'
,
'label'
=>
$this
->
_
(
'Retour aux destinataires de la lettres'
)];
return
$actions
;
}
return
array_merge
(
$actions
,
[
[
'url'
=>
'/admin/usergroup/edit/id/%s'
,
'icon'
=>
'edit'
,
'label'
=>
$this
->
_
(
'Modifier'
),
],
[
'url'
=>
'/admin/usergroup/delete/id/%s'
,
'icon'
=>
'delete'
,
'label'
=>
$this
->
_
(
'Supprimer'
),
'anchorOptions'
=>
[
'onclick'
=>
"return confirm('Etes-vous sûr de vouloir supprimer ce groupe ?')"
]]
]);
}
}
?>
\ No newline at end of file
tests/application/modules/admin/controllers/UserGroupControllerTest.php
View file @
6e3228b0
...
...
@@ -1465,4 +1465,112 @@ class Admin_UserGroupControllerEditMembersWithPaginationAsAutomaticUserGroupTest
public
function
nb29UsersShouldBeDisplay
()
{
$this
->
assertXPathContentContains
(
'//div'
,
'29 utilisateurs'
,
$this
->
_response
->
getBody
());
}
}
\ No newline at end of file
}
class
Admin_UserGroupControllerEditMembersNewsletterDedicatedUserGroupTest
extends
Admin_AbstractControllerTestCase
{
protected
$_storm_default_to_volatile
=
true
;
public
function
setup
()
{
parent
::
setup
();
$this
->
fixture
(
'Class_UserGroup'
,
[
'id'
=>
1
,
'libelle'
=>
'Group'
,
'group_type'
=>
Class_UserGroup
::
TYPE_MANUAL
,
'model_class'
=>
Class_Newsletter
::
class
,
'model_id'
=>
35
]);
$this
->
dispatch
(
'admin/usergroup/editmembers/id/1'
);
}
/** @test */
public
function
editLinkShouldNotBePresent
()
{
$this
->
assertNotXPath
(
'//a[contains(@href, "/admin/usergroup/edit/id/1")]'
);
}
/** @test */
public
function
deleteLinkShouldNotBePresent
()
{
$this
->
assertNotXPath
(
'//a[contains(@href, "/admin/usergroup/delete/id/1")]'
);
}
/** @test */
public
function
backToNewsletterLinkShouldBePresent
()
{
$this
->
assertXPath
(
'//a[contains(@href, "/admin/newsletter/edit-subscribers/id/35")]'
);
}
}
class
Admin_UserGroupControllerEditNewsletterDedicatedUserGroupTest
extends
Admin_AbstractControllerTestCase
{
protected
$_storm_default_to_volatile
=
true
;
public
function
setup
()
{
parent
::
setup
();
$this
->
fixture
(
'Class_UserGroup'
,
[
'id'
=>
1
,
'libelle'
=>
'Group'
,
'group_type'
=>
Class_UserGroup
::
TYPE_MANUAL
,
'model_class'
=>
Class_Newsletter
::
class
,
'model_id'
=>
35
]);
$this
->
dispatch
(
'admin/usergroup/edit/id/1'
);
}
/** @test */
public
function
shouldRedirect
()
{
$this
->
assertRedirect
();
}
/** @test */
public
function
messageShouldBeNotAllowed
()
{
$this
->
assertFlashMessengerContentContains
(
'Vous n\'avez pas la permission'
);
}
}
class
Admin_UserGroupControllerDeleteNewsletterDedicatedUserGroupTest
extends
Admin_AbstractControllerTestCase
{
protected
$_storm_default_to_volatile
=
true
;
public
function
setup
()
{
parent
::
setup
();
$this
->
fixture
(
'Class_UserGroup'
,
[
'id'
=>
1
,
'libelle'
=>
'Group'
,
'group_type'
=>
Class_UserGroup
::
TYPE_MANUAL
,
'model_class'
=>
Class_Newsletter
::
class
,
'model_id'
=>
35
]);
$this
->
dispatch
(
'admin/usergroup/delete/id/1'
);
}
/** @test */
public
function
shouldRedirect
()
{
$this
->
assertRedirect
();
}
/** @test */
public
function
messageShouldBeNotAllowed
()
{
$this
->
assertFlashMessengerContentContains
(
'Vous n\'avez pas la permission'
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment