Skip to content

Commit

Permalink
Merge pull request #28 from creative-commoners/pulls/2.0/make-module-…
Browse files Browse the repository at this point in the history
…safe-for-ss4

API Upgrades for SS4
  • Loading branch information
robbieaverill committed Dec 18, 2017
2 parents 2a5db5f + 9e44983 commit 7f8ee2b
Show file tree
Hide file tree
Showing 28 changed files with 142 additions and 137 deletions.
1 change: 1 addition & 0 deletions .gitattributes
@@ -1,3 +1,4 @@
/tests export-ignore
/docs export-ignore
/.travis.yml export-ignore
/codecov.yml export-ignore
19 changes: 11 additions & 8 deletions .travis.yml
Expand Up @@ -2,29 +2,32 @@ language: php

env:
global:
- COMPOSER_ROOT_VERSION="4.0.x-dev"
- COMPOSER_ROOT_VERSION="2.0.x-dev"

matrix:
include:
- php: 5.6
env: DB=MYSQL PHPCS_TEST=1 PHPUNIT_TEST=1
env: DB=MYSQL PHPCS_TEST=1 PHPUNIT_TEST=1 SUBSITES=1
- php: 7.0
env: DB=MYSQL PHPUNIT_TEST=1
- php: 7.1
env: DB=MYSQL PHPUNIT_COVERAGE_TEST=1
env: DB=MYSQL PHPUNIT_COVERAGE_TEST=1 SUBSITES=1
- php: 7.2
env: DB=MYSQL PHPUNIT_TEST=1

before_script:
- phpenv rehash
- phpenv config-rm xdebug.ini

- composer install --prefer-dist
- composer require --prefer-dist --no-update silverstripe/recipe-cms:1.0.x-dev
- composer update
- composer validate
- composer require --no-update silverstripe/recipe-cms:1.0.x-dev
- if [[ $SUBSITES ]]; then composer require --no-update silverstripe/subsites:2.0.x-dev; fi
- composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile

script:
- if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit tests/; fi
- if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit; fi
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi
- if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs --standard=vendor/silverstripe/framework/phpcs.xml.dist src/ tests/ ; fi
- if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs src/ tests/ ; fi

after_success:
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi
7 changes: 7 additions & 0 deletions .upgrade.yml
@@ -0,0 +1,7 @@
mappings:
GridFieldExportReportButton: SilverStripe\SecurityReport\Forms\GridFieldExportReportButton
GridFieldPrintReportButton: SilverStripe\SecurityReport\Forms\GridFieldPrintReportButton
SubsiteMemberReportExtension: SilverStripe\SecurityReport\Subsites\SubsiteMemberReportExtension
SubsiteSecurityReport: SilverStripe\SecurityReport\Subsites\SubsiteSecurityReport
MemberReportExtension: SilverStripe\SecurityReport\MemberReportExtension
UserSecurityReport: SilverStripe\SecurityReport\UserSecurityReport
15 changes: 8 additions & 7 deletions _config/subsite.yml
@@ -1,11 +1,12 @@
---
Name: subsitesecurityreportconfig
Only:
moduleexists: 'subsites'
moduleexists: silverstripe/subsites
---
#UserSecurityReport:
# extensions:
# - SubsiteSecurityReport
#SilverStripe\Security\Member:
# extensions:
# - SilverStripe\SecurityReport\SubsiteMemberReportExtension
SilverStripe\SecurityReport\UserSecurityReport:
extensions:
- SilverStripe\SecurityReport\Subsites\SubsiteSecurityReport

SilverStripe\Security\Member:
extensions:
- SilverStripe\SecurityReport\Subsites\SubsiteMemberReportExtension
25 changes: 0 additions & 25 deletions changelog.md

This file was deleted.

6 changes: 3 additions & 3 deletions composer.json
Expand Up @@ -15,9 +15,9 @@
}
],
"require": {
"silverstripe/framework": "^4@dev",
"silverstripe/cms": "^4@dev",
"silverstripe/reports": "^4@dev"
"silverstripe/framework": "^4",
"silverstripe/cms": "^4",
"silverstripe/reports": "^4"
},
"require-dev": {
"phpunit/phpunit": "^5.7",
Expand Down
5 changes: 2 additions & 3 deletions lang/de.yml
@@ -1,8 +1,7 @@
de:
MemberReportExtension:
NEVER: nie
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Nicht in einer Sicherheitsgruppe'
NOPERMISSIONS: 'Keine Berechtigungen'
UNKNOWN: Unbekannt
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Benutzer, Gruppen und Berechtigungen'
5 changes: 2 additions & 3 deletions lang/en.yml
@@ -1,8 +1,7 @@
en:
MemberReportExtension:
NEVER: never
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Not in a Security Group'
NOPERMISSIONS: 'No Permissions'
UNKNOWN: Unknown
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Users, Groups and Permissions'
5 changes: 2 additions & 3 deletions lang/eo.yml
@@ -1,8 +1,7 @@
eo:
MemberReportExtension:
NEVER: neniam
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Ne en sekureca grupo'
NOPERMISSIONS: 'Mankas permesoj'
UNKNOWN: Nekonata
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Uzuloj, grupoj kaj permesoj'
5 changes: 2 additions & 3 deletions lang/es.yml
@@ -1,8 +1,7 @@
es:
MemberReportExtension:
NEVER: nunca
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'No está en un grupo de seguridad'
NOPERMISSIONS: 'Sin permisos'
UNKNOWN: Desconocido
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Usuarios, Grupos y Permisos'
5 changes: 2 additions & 3 deletions lang/fi.yml
@@ -1,8 +1,7 @@
fi:
MemberReportExtension:
NEVER: 'ei koskaan'
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Ei tietoturvaryhmässä'
NOPERMISSIONS: 'Ei oikeuksia'
UNKNOWN: Tuntematon
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Käyttäjät, ryhmät ja oikeudet'
5 changes: 2 additions & 3 deletions lang/hr.yml
@@ -1,8 +1,7 @@
hr:
MemberReportExtension:
NEVER: nikada
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Nije u Security grupi'
NOPERMISSIONS: 'Nema prava'
UNKNOWN: Nepoznato
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Korisnici, grupe i prava'
5 changes: 2 additions & 3 deletions lang/ru.yml
@@ -1,8 +1,7 @@
ru:
MemberReportExtension:
NEVER: никогда
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Не состоит в группе безопасности'
NOPERMISSIONS: 'Нет разрешений'
UNKNOWN: Неизвестно
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Пользователи, группы и разрешения'
5 changes: 2 additions & 3 deletions lang/sk.yml
@@ -1,8 +1,7 @@
sk:
MemberReportExtension:
NEVER: nikdy
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Nenachádza sa v žiadnej skupine'
NOPERMISSIONS: 'Žiadne právomoci'
UNKNOWN: Neznáme
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Používatelia, skupiny a oprávnenia'
5 changes: 2 additions & 3 deletions lang/sk_SK.yml
@@ -1,8 +1,7 @@
sk_SK:
MemberReportExtension:
NEVER: nikdy
SilverStripe\SecurityReport\MemberReportExtension:
NOGROUPS: 'Nenachádza sa v žiadnej skupine'
NOPERMISSIONS: 'Žiadne právomoci'
UNKNOWN: Neznáme
UserSecurityReport:
SilverStripe\SecurityReport\UserSecurityReport:
REPORTTITLE: 'Používatelia, skupiny a oprávnenia'
2 changes: 1 addition & 1 deletion license.md
@@ -1,4 +1,4 @@
Copyright (c) 2016, SilverStripe Limited
Copyright (c) 2017, SilverStripe Limited
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand Down
9 changes: 9 additions & 0 deletions phpcs.xml.dist
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="SilverStripe">
<description>CodeSniffer ruleset for SilverStripe coding conventions.</description>

<rule ref="PSR2" >
<!-- Current exclusions -->
<exclude name="PSR1.Methods.CamelCapsMethodName" />
</rule>
</ruleset>
2 changes: 1 addition & 1 deletion phpunit.xml.dist
@@ -1,6 +1,6 @@
<phpunit bootstrap="vendor/silverstripe/cms/tests/bootstrap.php" colors="true">
<testsuite name="Default">
<directory>tests</directory>
<directory>tests/</directory>
</testsuite>

<filter>
Expand Down
12 changes: 10 additions & 2 deletions readme.md
@@ -1,14 +1,22 @@
# Security Report

[![Build Status](https://travis-ci.org/silverstripe/silverstripe-securityreport.svg)](https://travis-ci.org/silverstripe/silverstripe-securityreport)
[![codecov](https://codecov.io/gh/silverstripe/silverstripe-securityreport/branch/master/graph/badge.svg)](https://codecov.io/gh/silverstripe/silverstripe-securityreport)
[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/silverstripe/silverstripe-securityreport.svg)](https://scrutinizer-ci.com/g/silverstripe/silverstripe-securityreport/?branch=master)
[![codecov](https://img.shields.io/codecov/c/github/silverstripe/silverstripe-securityreport.svg)](https://codecov.io/gh/silverstripe/silverstripe-securityreport)

This module adds a "Users, Groups and Permissions" report in the CMS, so that
an administrator can get a quick overview of who has access to the CMS.

## Requirements

* SilverStripe 4.0+

**Note:** For SilverStripe 3.x, please use the [1.x release line](https://github.com/silverstripe/silverstripe-securityreport/tree/1.0).


## Install

To install run `composer require silverstripe/securityreport ^2@dev`.
To install run `composer require silverstripe/securityreport`.

## Subsites Support

Expand Down
@@ -1,9 +1,11 @@
<?php
namespace SilverStripe\SecurityReport;

namespace SilverStripe\SecurityReport\Forms;

use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldExportButton;
use SilverStripe\Forms\GridField\GridFieldFilterHeader;
use SilverStripe\Forms\GridField\GridFieldSortableHeader;

/**
* An extension to GridFieldExportButton to support downloading a custom Report as a CSV file
Expand Down
@@ -1,12 +1,13 @@
<?php
namespace SilverStripe\SecurityReport;

namespace SilverStripe\SecurityReport\Forms;

use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldPrintButton;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\FieldType\DBDatetime;
use SilverStripe\Security\Member;
use SilverStripe\Security\Security;
use SilverStripe\View\ArrayData;
use SilverStripe\Forms\GridField\GridFieldPrintButton;

/**
* An extension to GridFieldPrintButton to support printing custom Reports
Expand Down Expand Up @@ -71,7 +72,7 @@ public function generatePrintData(GridField $gridField)
"Header" => $header,
"ItemRows" => $itemRows,
"Datetime" => DBDatetime::now(),
"Member" => Member::currentUser(),
"Member" => Security::getCurrentUser(),
));

return $ret;
Expand Down
17 changes: 8 additions & 9 deletions src/MemberReportExtension.php
Expand Up @@ -3,12 +3,11 @@

use SilverStripe\ORM\DataExtension;
use SilverStripe\Security\Permission;
use SilverStripe\Subsites\Model\Subsite;

/**
* Extends the {@see Member} class with additional descriptions for elements.
* See {@see UserSecurityReport} for usage.
*
* @package securityreport
*/
class MemberReportExtension extends DataExtension
{
Expand All @@ -31,7 +30,7 @@ class MemberReportExtension extends DataExtension
*/
public function getGroupsDescription()
{
if (class_exists('Subsite')) {
if (class_exists(Subsite::class)) {
Subsite::disable_subsite_filter(true);
}

Expand All @@ -47,10 +46,10 @@ public function getGroupsDescription()
$result = preg_replace("#</?[^>]>#", '', implode(', ', $groupNames));
} else {
// If no groups then return a status label
$result = _t('MemberReportExtension.NOGROUPS', 'Not in a Security Group');
$result = _t(__CLASS__ . '.NOGROUPS', 'Not in a Security Group');
}

if (class_exists('Subsite')) {
if (class_exists(Subsite::class)) {
Subsite::disable_subsite_filter(false);
}
return $result;
Expand All @@ -63,7 +62,7 @@ public function getGroupsDescription()
*/
public function getPermissionsDescription()
{
if (class_exists('Subsite')) {
if (class_exists(Subsite::class)) {
Subsite::disable_subsite_filter(true);
}

Expand All @@ -77,7 +76,7 @@ public function getPermissionsDescription()
foreach ($permissionsSrc as $k => $v) {
if (isset($v[$code])) {
$name = empty($v[$code]['name'])
? _t('MemberReportExtension.UNKNOWN', 'Unknown')
? _t(__CLASS__ . '.UNKNOWN', 'Unknown')
: $v[$code]['name'];
$permissionNames[] = $name;
}
Expand All @@ -86,9 +85,9 @@ public function getPermissionsDescription()

$result = $permissionNames
? implode(', ', $permissionNames)
: _t('MemberReportExtension.NOPERMISSIONS', 'No Permissions');
: _t(__CLASS__ . '.NOPERMISSIONS', 'No Permissions');

if (class_exists('Subsite')) {
if (class_exists(Subsite::class)) {
Subsite::disable_subsite_filter(false);
}
return $result;
Expand Down
@@ -1,18 +1,14 @@
<?php

namespace SilverStripe\SecurityReport;
namespace SilverStripe\SecurityReport\Subsites;

use SilverStripe\ORM\DataExtension;
use SilverStripe\Subsites\Model\Subsite;

return;
/**
* Adds 'SubsiteDescription' for to show which subsites this Member has edit access to
*
* This part is broken, as SubSites is not working on SS4 yet
*
* @author Damian Mooyman <damian@silverstripe.com>
* @package securityreport
* @subpackage subsites
*/
class SubsiteMemberReportExtension extends DataExtension
{
Expand Down Expand Up @@ -43,7 +39,7 @@ class SubsiteMemberReportExtension extends DataExtension
public function getSubsiteDescription()
{
$subsites = Subsite::accessible_sites(
$this->owner->config()->subsite_description_permission,
$this->owner->config()->get('subsite_description_permission'),
true,
"Main site",
$this->owner
Expand Down

0 comments on commit 7f8ee2b

Please sign in to comment.