Skip to content

Commit

Permalink
Added new Plugin Config setting for Grouper Site
Browse files Browse the repository at this point in the history
  • Loading branch information
axel committed Aug 24, 2021
1 parent c332d71 commit 6456286
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 24 deletions.
1 change: 1 addition & 0 deletions Config/Schema/schema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
</field>
<field name="connUrl" type="C" size="256" />
<field name="connVer" type="C" size="256" />
<field name="grouperUrl" type="C" size="256" />
<field name="connUser" type="C" size="64" />
<field name="connPass" type="C" size="64" />
<field name="created" type="T" />
Expand Down
5 changes: 3 additions & 2 deletions Controller/GrouperGroupsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public function beforeFilter() {
//Need to find which plugin instance choosing, if more than one from cm_co_grouper_lites
// table being used in COmanage.
$grouperConnData = $this->Session->read('Plugin.Grouper.Api');
if ($this->Session->check('Plugin.Grouper.Api.id') && count($grouperConnData) == 5) {
if ($this->Session->check('Plugin.Grouper.Api.id') && count($grouperConnData) == 6) {
if (isset($this->passedArgs['glid'])) {
if ($this->Session->read('Plugin.Grouper.Api.id') !== $this->passedArgs['glid']) {
$this->setConnection();
Expand Down Expand Up @@ -93,6 +93,7 @@ private function setConnection() {
$this->Session->write('Plugin.Grouper.Api.version', $connectionInfo['CoGrouperLite']['connVer']);
$this->Session->write('Plugin.Grouper.Api.user', $connectionInfo['CoGrouperLite']['connUser']);
$this->Session->write('Plugin.Grouper.Api.pass', $connectionInfo['CoGrouperLite']['connPass']);
$this->Session->write('Plugin.Grouper.Api.grouperUrl', $connectionInfo['CoGrouperLite']['grouperUrl']);
}

/**
Expand Down Expand Up @@ -138,7 +139,7 @@ public function groupInfo() {
$this->Flash->set(_txt('pl.grouperlite.message.flash.group-detail-members-failed'), array('key' => 'error'));
}

$this->set('grouperbaseurl', $this->Session->read('Plugin.Grouper.Api.url'));
$this->set('grouperbaseurl', $this->Session->read('Plugin.Grouper.Api.grouperUrl'));
}

/**
Expand Down
10 changes: 6 additions & 4 deletions Lib/lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
$cm_grouper_lite_texts['en_US'] = array(
'pl.grouperlite.config.display.title' => 'Grouper Configuration Settings',
'pl.grouperlite.config.edit.title' => 'Edit Grouper Configuration Settings',
'pl.grouperlite.config.grouper-url' => 'Grouper URL',
'pl.grouperlite.config.grouper-version' => 'Grouper Version',
'pl.grouperlite.config.grouper-un' => 'Username',
'pl.grouperlite.config.grouper-pw' => 'Password',
'pl.grouperlite.config.grouper-url' => 'Grouper Site URL',
'pl.grouperlite.config.grouper-url-subscript' => '(Example: https://grouper.prod.at.internet2.edu)',
'pl.grouperlite.config.grouper-ws-url' => 'Grouper Webservice URL',
'pl.grouperlite.config.grouper-ws-version' => 'Grouper Webservice Version',
'pl.grouperlite.config.grouper-ws-un' => 'Webservice Username',
'pl.grouperlite.config.grouper-ws-pw' => 'Webservice Password',

'pl.grouperlite.crumb.root' => 'Grouper',
'pl.grouperlite.nav.groups-can-join' => 'Groups I can join',
Expand Down
3 changes: 3 additions & 0 deletions Model/CoGrouperLite.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ class CoGrouperLite extends CoDashboardWidgetBackend {
'connVer' => array(
'required' => true
),
'grouperUrl' => array(
'required' => true
),
'connUser' => array(
'required' => true
),
Expand Down
2 changes: 2 additions & 0 deletions Model/GrouperGroup.php
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ public function filteredMemberOfGroups(array $conditions) {
$optOutGroups = $this->grouperAPI->getOptionalGroups($conditions);

foreach ($memberOfGroups as &$memberOfGroup) {
$memberOfGroup['optOut'] = false;
foreach ($optOutGroups as $key => $value) {
if ($value['name'] == $memberOfGroup['name']) {
//Match!
Expand Down Expand Up @@ -330,6 +331,7 @@ public function groupDescriptions(string $groupName) {
$args['groupName'] = $groupName;

$groupDescription = $this->grouperAPI->getGrouperGroupInfo($args);
$groupDescription[0]['friendlyName'] = $groupDescription[0]['displayName'];

return $groupDescription;

Expand Down
55 changes: 39 additions & 16 deletions View/CoGrouperLites/fields.inc
Original file line number Diff line number Diff line change
Expand Up @@ -72,16 +72,45 @@ print $this->Form->hidden('co_dashboard_widget_id', array('default' => $vv_dwid)
<li>
<div class="field-name">
<div class="field-title">
<?php print($e ? $this->Form->label('connUrl', _txt('pl.grouperlite.config.grouper-url')) : _txt('pl.grouperlite.config.grouper-url')); ?>
<?php print($e ? $this->Form->label('grouperUrl', _txt('pl.grouperlite.config.grouper-url')) : _txt('pl.grouperlite.config.grouper-url')); ?>
<span class="required">*</span>
<br/><sub>
<?php print($e ? $this->Form->label('grouperUrl', _txt('pl.grouperlite.config.grouper-url-subscript')) : _txt('pl.grouperlite.config.grouper-url-subscript')); ?>
</sub>
</div>
</div>
<div class="field-info">
<?php
$attrs = array();
$attrs['value'] = ($co_grouper_lites[0]['CoGrouperLite']['grouperUrl'] ?? '');
$attrs['empty'] = true;
$attrs['required'] = true;

if ($e) {
print $this->Form->input('grouperUrl', $attrs);

if ($this->Form->isFieldError('grouperUrl')) {
print $this->Form->error('grouperUrl');
}
} else {
if (!empty($co_grouper_lites[0]['CoGrouperLite']['grouperUrl'])) {
print filter_var($co_grouper_lites[0]['CoGrouperLite']['grouperUrl'], FILTER_SANITIZE_SPECIAL_CHARS);
}
}
?>
</div>
</li>
<li>
<div class="field-name">
<div class="field-title">
<?php print($e ? $this->Form->label('connUrl', _txt('pl.grouperlite.config.grouper-ws-url')) : _txt('pl.grouperlite.config.grouper-url')); ?>
<span class="required">*</span>
</div>
</div>
<div class="field-info">
<?php
$attrs = array();
$attrs['value'] = (isset($co_grouper_lites[0]['CoGrouperLite']['connUrl'])
? $co_grouper_lites[0]['CoGrouperLite']['connUrl']
: '');
$attrs['value'] = ($co_grouper_lites[0]['CoGrouperLite']['connUrl'] ?? '');
$attrs['empty'] = true;
$attrs['required'] = true;

Expand All @@ -102,16 +131,14 @@ print $this->Form->hidden('co_dashboard_widget_id', array('default' => $vv_dwid)
<li>
<div class="field-name">
<div class="field-title">
<?php print($e ? $this->Form->label('connVer', _txt('pl.grouperlite.config.grouper-version')) : _txt('pl.grouperlite.config.grouper-version')); ?>
<?php print($e ? $this->Form->label('connVer', _txt('pl.grouperlite.config.grouper-ws-version')) : _txt('pl.grouperlite.config.grouper-version')); ?>
<span class="required">*</span>
</div>
</div>
<div class="field-info">
<?php
$attrs = array();
$attrs['value'] = (isset($co_grouper_lites[0]['CoGrouperLite']['connVer'])
? $co_grouper_lites[0]['CoGrouperLite']['connVer']
: '');
$attrs['value'] = ($co_grouper_lites[0]['CoGrouperLite']['connVer'] ?? '');
$attrs['empty'] = true;
$attrs['required'] = true;

Expand All @@ -132,16 +159,14 @@ print $this->Form->hidden('co_dashboard_widget_id', array('default' => $vv_dwid)
<li>
<div class="field-name">
<div class="field-title">
<?php print($e ? $this->Form->label('connUser', _txt('pl.grouperlite.config.grouper-un')) : _txt('pl.grouperlite.config.grouper-un')); ?>
<?php print($e ? $this->Form->label('connUser', _txt('pl.grouperlite.config.grouper-ws-un')) : _txt('pl.grouperlite.config.grouper-un')); ?>
<span class="required">*</span>
</div>
</div>
<div class="field-info">
<?php
$attrs = array();
$attrs['value'] = (isset($co_grouper_lites[0]['CoGrouperLite']['connUser'])
? $co_grouper_lites[0]['CoGrouperLite']['connUser']
: '');
$attrs['value'] = ($co_grouper_lites[0]['CoGrouperLite']['connUser'] ?? '');
$attrs['empty'] = true;
$attrs['required'] = true;

Expand All @@ -162,16 +187,14 @@ print $this->Form->hidden('co_dashboard_widget_id', array('default' => $vv_dwid)
<li>
<div class="field-name">
<div class="field-title">
<?php print($e ? $this->Form->label('connPass', _txt('pl.grouperlite.config.grouper-pw')) : _txt('pl.grouperlite.config.grouper-pw')); ?>
<?php print($e ? $this->Form->label('connPass', _txt('pl.grouperlite.config.grouper-ws-pw')) : _txt('pl.grouperlite.config.grouper-pw')); ?>
<span class="required">*</span>
</div>
</div>
<div class="field-info">
<?php
$attrs = array();
$attrs['value'] = (isset($co_grouper_lites[0]['CoGrouperLite']['connPass'])
? $co_grouper_lites[0]['CoGrouperLite']['connPass']
: '');
$attrs['value'] = ($co_grouper_lites[0]['CoGrouperLite']['connPass'] ?? '');
$attrs['empty'] = true;
$attrs['required'] = true;

Expand Down
4 changes: 2 additions & 2 deletions View/GrouperGroups/groupoptin.ctp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ $numColumns = count($columns);
<td><?php echo $group['description'] ?? _txt('pl.grouperlite.value.descr.zerostate'); ?></td>
<td>
<?php echo $this->element('GrouperLite.Components/optAction', array(
'member' => $group['member'],
'member' => false,
'action' => 'joingroup',
'group' => $group['name'],
'idx' => $key
Expand All @@ -77,7 +77,7 @@ $numColumns = count($columns);
</td>
<td>
<?php echo $this->element('GrouperLite.Components/optAction', array(
'member' => $wgoptin['member'],
'member' => false,
'action' => 'joingroup',
'group' => $wgoptin['workingGroupId'],
'idx' => $key
Expand Down

0 comments on commit 6456286

Please sign in to comment.