Skip to content

Commit 7236f4f

Browse files
authored
Merge pull request #4 from GreenMeteor/develop
Enh: Security & General Update
2 parents 98fffef + f433b60 commit 7236f4f

File tree

7 files changed

+46
-20
lines changed

7 files changed

+46
-20
lines changed

Events.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ public static function onAdminMenuInit($event)
3434

3535
public static function addCodeboxFrame($event)
3636
{
37+
$module = Yii::$app->getModule('codebox');
38+
$settings = $module->settings;
39+
3740
if (Yii::$app->user->isGuest) {
3841
return;
3942
} else {
4043
Yii::$app->user;
4144
}
4245

43-
$event->sender->addWidget(widgets\CodeboxFrame::class, [], ['sortOrder' => Yii::$app->getModule('codebox')->settings->get('sortOrder')]);
46+
$event->sender->addWidget(widgets\CodeboxFrame::class, [], ['sortOrder' => $settings->get('sortOrder')]);
4447
}
4548
}

docs/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# Changelogs
2+
3+
### Release v1.1.0 (*2/27/2024*)
4+
- Enh: Use of CodeMirrorInputWidget implemented
5+
- Enh: Encode Title
6+
- Enh: Use of Security class
7+
28
### Release v1.0.2 (*12/19/2020*)
39
- Enh: Implement AdminMenu permission restriction
410
- Enh: minVersion update

models/ConfigureForm.php

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function rules()
2727
return [
2828
['title', 'string'],
2929
['htmlCode', 'string'],
30-
['sortOrder', 'string'],
30+
['sortOrder', 'integer'],
3131
];
3232
}
3333

@@ -37,6 +37,7 @@ public function rules()
3737
public function attributeLabels()
3838
{
3939
return [
40+
'title' => Yii::t('CodeboxModule.base', 'Title:'),
4041
'htmlCode' => Yii::t('CodeboxModule.base', 'Codebox HTML code snippet:'),
4142
];
4243
}
@@ -47,24 +48,30 @@ public function attributeLabels()
4748
public function attributeHints()
4849
{
4950
return [
50-
'htmlCode' => Yii::t('CodeboxModule.base', 'e.g. <code><php? ?></code>'),
51+
'htmlCode' => Yii::t('CodeboxModule.base', 'e.g. <code>Code Here</code>, also for inline scripts use {code}.', ['code' => '<code>&lt;script nonce={{nonce}}&gt;</code>']),
5152
];
5253
}
5354

5455
public function loadSettings()
5556
{
56-
$this->title = Yii::$app->getModule('codebox')->settings->get('title');
57-
$this->htmlCode = Yii::$app->getModule('codebox')->settings->get('htmlCode');
58-
$this->sortOrder = Yii::$app->getModule('codebox')->settings->get('sortOrder');
57+
$module = Yii::$app->getModule('codebox');
58+
$settings = $module->settings;
59+
60+
$this->title = $settings->get('title');
61+
$this->htmlCode = $settings->get('htmlCode');
62+
$this->sortOrder = $settings->get('sortOrder');
5963

6064
return true;
6165
}
6266

6367
public function save()
6468
{
65-
Yii::$app->getModule('codebox')->settings->set('title', $this->title);
66-
Yii::$app->getModule('codebox')->settings->set('htmlCode', $this->htmlCode);
67-
Yii::$app->getModule('codebox')->settings->set('sortOrder', $this->sortOrder);
69+
$module = Yii::$app->getModule('codebox');
70+
$settings = $module->settings;
71+
72+
$settings->set('title', $this->title);
73+
$settings->set('htmlCode', $this->htmlCode);
74+
$settings->set('sortOrder', $this->sortOrder);
6875

6976
return true;
7077
}

module.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
{
22
"id": "codebox",
3+
"version": "1.1.0",
34
"name": "Codebox",
45
"description": "Allows the use of HTML snippets on your sidebar.",
5-
"keywords": ["codebox"],
6-
"version": "1.0.2",
76
"humhub": {
8-
"minVersion": "1.5"
7+
"minVersion": "1.9.0"
98
},
9+
"keywords": ["codebox"],
1010
"screenshots": ["resources/Screenshot_1.png", "resources/Screenshot_2.png"]
11+
"homepage": "https://github.com/GreenMeteor/codebox/",
12+
"issues": "https://github.com/GreenMeteor/codebox/issues",
13+
"authors": [
14+
{
15+
"name": "Green Meteor",
16+
"email": "[email protected]",
17+
"homepage": "https://greenmeteor.net",
18+
"role": "Owner"
19+
}
20+
]
1121
}

views/admin/index.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<?php
22

3+
use humhub\modules\ui\form\widgets\CodeMirrorInputWidget;
34
use humhub\modules\ui\form\widgets\SortOrderField;
4-
use yii\bootstrap\ActiveForm;
5-
use yii\helpers\Html;
5+
use humhub\modules\ui\form\widgets\ActiveForm;
6+
use humhub\libs\Html;
67

78
?>
89

910
<div class="panel panel-default">
10-
1111
<div class="panel-heading"><?= Yii::t('CodeboxModule.base', '<strong>Codebox</strong> module configuration'); ?></div>
1212
<div class="panel-body">
1313

1414
<?php $form = ActiveForm::begin(['id' => 'configure-form']); ?>
1515
<div class="form-group">
16-
<?= $form->field($model, 'title')->textInput(['class' => 'form-control', 'placeholder' => 'Title', 'disabled' => false])->label(true) ?>
17-
<?= $form->field($model, 'htmlCode')->textarea(['rows' => '8']); ?>
16+
<?= $form->field($model, Html::encode('title'))->textInput(['class' => 'form-control', 'placeholder' => 'Title', 'disabled' => false])->label(true) ?>
17+
<?= $form->field($model, Html::encode('htmlCode'))->widget(CodeMirrorInputWidget::class); ?>
1818
<?= $form->field($model, 'sortOrder')->widget(SortOrderField::class) ?>
1919
</div>
2020
<hr>

widgets/CodeboxFrame.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Yii;
66
use humhub\components\Widget;
7+
use humhub\modules\web\security\helpers\Security;
78

89
/**
910
* CodeboxFrame adds HTML snippet code to all layouts extended by config.php
@@ -23,14 +24,13 @@ public function run()
2324

2425
$sortOrder = Yii::$app->getModule('codebox')->getOrder();
2526

26-
2727
$htmlCode = Yii::$app->getModule('codebox')->getHtmlCode();
2828

2929
if (!$title || !$htmlCode || !$sortOrder) {
3030
return '';
3131
}
3232

33-
return $this->render('codeboxframe', ['title' => $title, 'htmlCode' => $htmlCode, $sortOrder => 'sortOrder']);
33+
return $this->render('codeboxframe', ['title' => $title, 'htmlCode' => $htmlCode, $sortOrder => 'sortOrder', 'nonce' => Security::getNonce()]);
3434
}
3535

3636
}

widgets/views/codeboxframe.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<div class="panel panel-default panel-codebox" id="panel-codebox">
99
<?= PanelMenu::widget(['id' => 'panel-codebox']); ?>
1010
<div class="panel-heading">
11-
<p><?= $title ?></p>
11+
<strong><?= Html::encode($title) ?></strong>
1212
</div>
1313
<div class="panel-body">
1414

0 commit comments

Comments
 (0)