Skip to content

Commit f4230a3

Browse files
author
Praesidiarius
committed
working so far
1 parent e34b48a commit f4230a3

File tree

5 files changed

+164
-7
lines changed

5 files changed

+164
-7
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"description": "onePlace Account Module",
44
"type": "oneplace-module",
55
"license": "BSD-3-Clause",
6+
"version": "1.0.1",
67
"keywords": [
78
"laminas",
89
"mvc",
@@ -46,7 +47,7 @@
4647
},
4748
"extra": {
4849
"zf": {
49-
"module": "OnePlace\\Article"
50+
"module": "OnePlace\\Account"
5051
}
5152
}
5253
}

data/install.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ALTER TABLE `account`
2222
INSERT INTO `permission` (`permission_key`, `module`, `label`, `nav_label`, `nav_href`, `show_in_menu`) VALUES
2323
('add', 'OnePlace\\Account\\Controller\\AccountController', 'Add', '', '', 0),
2424
('edit', 'OnePlace\\Account\\Controller\\AccountController', 'Edit', '', '', 0),
25-
('index', 'OnePlace\\Account\\Controller\\AccountController', 'Index', 'Accounts', '/account', 1),
25+
('index', 'OnePlace\\Account\\Controller\\AccountController', 'Index', 'My Account', '/account', 1),
2626
('list', 'OnePlace\\Account\\Controller\\ApiController', 'List', '', '', 1),
2727
('view', 'OnePlace\\Account\\Controller\\AccountController', 'View', '', '', 0),
2828
('dump', 'OnePlace\\Account\\Controller\\ExportController', 'Excel Dump', '', '', 0),

src/Controller/AccountController.php

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,101 @@ public function __construct(AdapterInterface $oDbAdapter,AccountTable $oTableGat
5959
* @return ViewModel - View Object with Data from Controller
6060
*/
6161
public function indexAction() {
62+
# Set Layout based on users theme
63+
$this->setThemeBasedLayout('account');
64+
65+
# Check license
66+
if(!$this->checkLicense('user')) {
67+
$this->flashMessenger()->addErrorMessage('You have no active license for oneplace');
68+
$this->redirect()->toRoute('home');
69+
}
70+
71+
$oRequest = $this->getRequest();
72+
if($oRequest->isPost()) {
73+
$sApiKey = $oRequest->getPost('plc_api_key');
74+
$sApiToken = $oRequest->getPost('plc_api_token');
75+
$sApiServer = $oRequest->getPost('plc_api_server');
76+
$sApiStore = $oRequest->getPost('plc_api_store');
77+
78+
# Delete current settings
79+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'license-server-apikey']);
80+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'license-server-apitoken']);
81+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'license-server-url']);
82+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'store-server-apikey']);
83+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'store-server-apitoken']);
84+
CoreEntityController::$aCoreTables['settings']->delete(['settings_key'=>'store-server-url']);
85+
86+
# Save API Key
87+
CoreEntityController::$aCoreTables['settings']->insert([
88+
'settings_key'=>'license-server-apikey',
89+
'settings_value'=>$sApiKey,
90+
]);
91+
92+
# Save API Secret Token
93+
CoreEntityController::$aCoreTables['settings']->insert([
94+
'settings_key'=>'license-server-apitoken',
95+
'settings_value'=>$sApiToken,
96+
]);
97+
98+
# Save API Server
99+
CoreEntityController::$aCoreTables['settings']->insert([
100+
'settings_key'=>'license-server-url',
101+
'settings_value'=>$sApiServer,
102+
]);
103+
104+
# Save Store API Key
105+
CoreEntityController::$aCoreTables['settings']->insert([
106+
'settings_key'=>'store-server-apikey',
107+
'settings_value'=>$sApiKey,
108+
]);
109+
110+
# Save Store API Secret Token
111+
CoreEntityController::$aCoreTables['settings']->insert([
112+
'settings_key'=>'store-server-apitoken',
113+
'settings_value'=>$sApiToken,
114+
]);
115+
116+
# Save Store API Server
117+
CoreEntityController::$aCoreTables['settings']->insert([
118+
'settings_key'=>'store-server-url',
119+
'settings_value'=>$sApiStore,
120+
]);
121+
122+
$this->flashMessenger()->addSuccessMessage('You are now connected to onep.lc');
123+
return $this->redirect()->toRoute('home');
124+
}
62125

63126
# You can just use the default function and customize it via hooks
64127
# or replace the entire function if you need more customization
65-
return $this->generateIndexView('account');
128+
$iInstanceID = CoreEntityController::$oSession->aLicences['info-instance-id'];
129+
if($iInstanceID == 0 || empty($iInstanceID)) {
130+
return new ViewModel([
131+
'oInstance'=>false,
132+
'oLicResponse'=>false,
133+
]);
134+
}
135+
$sApiURL = CoreEntityController::$aGlobalSettings['license-server-url'].'/instance/api/get/'.$iInstanceID.'?authkey='.CoreEntityController::$aGlobalSettings['license-server-apikey'].'&authtoken='.CoreEntityController::$aGlobalSettings['license-server-apitoken'];
136+
$sAnswer = file_get_contents($sApiURL);
137+
138+
$oResponse = json_decode($sAnswer);
139+
140+
if(is_object($oResponse)) {
141+
if($oResponse->state == 'success') {
142+
$sLicApiURL = CoreEntityController::$aGlobalSettings['license-server-url'].'/license/api/list/'.$iInstanceID.'?authkey='.CoreEntityController::$aGlobalSettings['license-server-apikey'].'&authtoken='.CoreEntityController::$aGlobalSettings['license-server-apitoken'].'&modulename=all&systemkey='.CoreEntityController::$aGlobalSettings['license-server-apikey'];
143+
$sLicAnswer = file_get_contents($sLicApiURL);
144+
145+
$oLicResponse = json_decode($sLicAnswer);
146+
147+
return new ViewModel([
148+
'oInstance'=>$oResponse->oItem,
149+
'oLicResponse'=>$oLicResponse,
150+
]);
151+
}
152+
}
153+
154+
echo 'error while connecting to you onePlace account at'.$sApiURL;
155+
156+
return false;
66157
}
67158

68159
/**

src/Module.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ class Module {
3030
/**
3131
* Module Version
3232
*
33-
* @since 1.0.0
33+
* @since 1.0.1
3434
*/
35-
const VERSION = '1.0.0';
35+
const VERSION = '1.0.1';
3636

3737
/**
3838
* Load module config file
Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,67 @@
1-
<?= $this->partial('partial/indexheader',['sTitle'=>'Accounts']) ?>
2-
<?= $this->partial('partial/indextable', ['sTableName'=>$sTableName,'aItems'=>$aItems,'sRoute'=>(isset($sRoute)) ? $sRoute : explode('-',$sTableName)[0]]); ?>
1+
<?php
2+
if(is_object($oLicResponse)) {
3+
if($oLicResponse->state == 'success') { ?>
4+
<h2>Welcome <?=$oInstance->label?></h2>
5+
6+
Your active licenses
7+
<ul class="list-group">
8+
<?php
9+
foreach($oLicResponse->items as $oLic) {
10+
?>
11+
<li class="list-group-item">
12+
<?=(isset($oLic->oArticle)) ? $oLic->oArticle->label : ''?> - <?=$oLic->label?> - <?=$oLic->date_start?> - <?=$oLic->date_end?> - <?=$oLic->license_key?>
13+
</li>
14+
<?php
15+
}
16+
?>
17+
</ul>
18+
<?php
19+
} else { ?>
20+
<div class="alert alert-danger">Error connecting to your onePlace Account: <?=$oResponse->message?></div>
21+
<?php
22+
}
23+
} else { ?>
24+
<div class="row">
25+
<div class="col-md-12">
26+
<div class="alert alert-info py-2 px-2">You are currently not connected to onePlace Services - please enter your Credentials</div>
27+
</div>
28+
</div>
29+
<div class="row">
30+
<div class="col-md-6">
31+
<form action="" method="POST">
32+
<div class="card">
33+
<div class="card-header">
34+
<h5 class="card-title">Enter your onep.lc API Credentials</h5>
35+
</div>
36+
<div class="card-body">
37+
<div class="form-group">
38+
39+
<label for="plc_api_server">API Server</label>
40+
<input type="text" name="plc_api_server" class="form-control" />
41+
</div>
42+
<div class="form-group">
43+
<label for="plc_api_store">Store Server</label>
44+
<input type="text" name="plc_api_store" class="form-control" />
45+
</div>
46+
47+
<div class="form-group">
48+
<label for="plc_api_key">API Key</label>
49+
<input type="text" name="plc_api_key" class="form-control" />
50+
</div>
51+
52+
<div class="form-group">
53+
<label for="plc_api_token">API Secret</label>
54+
<input type="text" name="plc_api_token" class="form-control" />
55+
</div>
56+
</div>
57+
<div class="card-footer">
58+
<button class="btn btn-primary" type="submit">
59+
Connect to onep.lc
60+
</button>
61+
</div>
62+
</div>
63+
</form>
64+
</div>
65+
</div>
66+
<?php
67+
}

0 commit comments

Comments
 (0)