Code Duplication    Length = 28-32 lines in 2 locations

src/Security/Member.php 2 locations

@@ 1549-1576 (lines=28) @@
1546
     * @param Member $member
1547
     * @return bool
1548
     */
1549
    public function canEdit($member = null)
1550
    {
1551
        //get member
1552
        if (!$member) {
1553
            $member = Security::getCurrentUser();
1554
        }
1555
        //check for extensions, we do this first as they can overrule everything
1556
        $extended = $this->extendedCan(__FUNCTION__, $member);
1557
        if ($extended !== null) {
1558
            return $extended;
1559
        }
1560
1561
        //need to be logged in and/or most checks below rely on $member being a Member
1562
        if (!$member) {
1563
            return false;
1564
        }
1565
1566
        // HACK: we should not allow for an non-Admin to edit an Admin
1567
        if (!Permission::checkMember($member, 'ADMIN') && Permission::checkMember($this, 'ADMIN')) {
1568
            return false;
1569
        }
1570
        // members can usually edit their own record
1571
        if ($this->ID == $member->ID) {
1572
            return true;
1573
        }
1574
1575
        //standard check
1576
        return Permission::checkMember($member, 'CMS_ACCESS_SecurityAdmin');
1577
    }
1578
1579
    /**
@@ 1586-1617 (lines=32) @@
1583
     * @param Member $member
1584
     * @return bool
1585
     */
1586
    public function canDelete($member = null)
1587
    {
1588
        if (!$member) {
1589
            $member = Security::getCurrentUser();
1590
        }
1591
        //check for extensions, we do this first as they can overrule everything
1592
        $extended = $this->extendedCan(__FUNCTION__, $member);
1593
        if ($extended !== null) {
1594
            return $extended;
1595
        }
1596
1597
        //need to be logged in and/or most checks below rely on $member being a Member
1598
        if (!$member) {
1599
            return false;
1600
        }
1601
        // Members are not allowed to remove themselves,
1602
        // since it would create inconsistencies in the admin UIs.
1603
        if ($this->ID && $member->ID == $this->ID) {
1604
            return false;
1605
        }
1606
1607
        // HACK: if you want to delete a member, you have to be a member yourself.
1608
        // this is a hack because what this should do is to stop a user
1609
        // deleting a member who has more privileges (e.g. a non-Admin deleting an Admin)
1610
        if (Permission::checkMember($this, 'ADMIN')) {
1611
            if (!Permission::checkMember($member, 'ADMIN')) {
1612
                return false;
1613
            }
1614
        }
1615
1616
        //standard check
1617
        return Permission::checkMember($member, 'CMS_ACCESS_SecurityAdmin');
1618
    }
1619
1620
    /**