Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gredu_labs
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Σταύρος Παπαδάκης
gredu_labs
Commits
40a9b385
Commit
40a9b385
authored
Oct 10, 2016
by
Σταύρος Παπαδάκης
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Enable db login stable release
parent
7f10e8cc
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
224 additions
and
2 deletions
+224
-2
config/app.config.php
config/app.config.php
+1
-1
config/settings/acl.global.php
config/settings/acl.global.php
+1
-1
config/settings/enable_db_login.global.php
config/settings/enable_db_login.global.php
+27
-0
module/enable_db_login/README.md
module/enable_db_login/README.md
+51
-0
module/enable_db_login/bootstrap.php
module/enable_db_login/bootstrap.php
+53
-0
module/enable_db_login/src/Action/Index.php
module/enable_db_login/src/Action/Index.php
+35
-0
module/enable_db_login/src/Middleware/EnableDBLogin.php
module/enable_db_login/src/Middleware/EnableDBLogin.php
+56
-0
No files found.
config/app.config.php
View file @
40a9b385
...
...
@@ -28,7 +28,7 @@ return [
'module/open_data/bootstrap.php'
,
'module/university_form/bootstrap.php'
,
'module/teacher_form/bootstrap.php'
,
'module/enable_db_login/bootstrap.php'
,
],
'cache_config'
=>
'data/cache/config/settings.php'
,
];
config/settings/acl.global.php
View file @
40a9b385
...
...
@@ -47,7 +47,7 @@ return [
[
'/teacher-form'
,
[
'guest'
],
[
'get'
,
'post'
]],
[
'/teacher-form/submit-success'
,[
'guest'
],
[
'get'
,
'post'
]],
[
'/teacher-form/mm'
,[
'guest'
],
[
'get'
]],
[
'/admin'
,
[
'admin'
],
[
'get'
]],
],
],
],
...
...
config/settings/enable_db_login.global.php
0 → 100644
View file @
40a9b385
<?php
/**
* gredu_labs
*
* @link https://github.com/eellak/gredu_labs for the canonical source repository
* @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
* @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
*/
return
[
'enabledblogin'
=>
[
'enable_routes'
=>
[
'enabledblogin'
],
'enable_patterns'
=>
[
'/enabledblogin'
],
'disable_routes'
=>
[
'disabledblogin'
,
'user.logout'
],
'disable_patterns'
=>
[
'/disabledblogin'
,
'/user/logout'
],
],
];
module/enable_db_login/README.md
0 → 100644
View file @
40a9b385
# Ενεργοποίηση σύνδεσης μέσω βάσης δεδομένων
Το συγκεκριμένο module ενεργοποιεί τη φόρμα σύνδεσης μέσω βάση δεδομένων
άσχετα από τη ρύθμιση Container
[
'settings'
][
'sso'
]
['enable_database_login'].
Χρειάζεται να ενεργοποιηθεί μόνο στην περίπτωση που έχει ενεργοποιηθεί το
module sch_sso και απαιτείται σύνδεση τοπικού χρήστη για συγκεκριμένες
λειτουργίες.
## Ρυθμίσεις
Το αρχείο
`enable_db_login.{global,local}.php χρησιμοποιείται για την
παραμετροποίηση. Οι προεπιλεγμένες ρυθμίσεις είναι οι παρακάτω.
```
'enabledblogin' => [
'enable_routes' => [
'enabledblogin'
],
'enable_patterns' => [
'/enabledblogin'
],
'disable_routes' => [
'disabledblogin',
'user.logout'
],
'disable_patterns' => [
'/disabledblogin',
'/user/logout'
],
],
```
Οι ρυθμίσεις έχουν ως εξής:
- enable_routes: ονόματα routes που ενεργοποιούν τη σύνδεση μέσω ΒΔ
- enable_patterns: url paths που ενεργοποιούν τη σύνδεση μέσω ΒΔ
- disable_routes: ονόματα routes που απενεργοποιούν τη σύνδεση μέσω ΒΔ
- disable_patterns: url paths που απενεργοποιούν τη σύνδεση μέσω ΒΔ
_Προτεραιότητα έχει η απενεργοποίηση._
##Routes
Το module δηλώνει δύο routes (στα αντίστοιχα paths) ώστε να παρέχεται ένα
παράδειγμα χρήσης.
- enabledblogin (/enabledblogin) που ενεργοποιεί τη σύνδεση μέσω ΒΔ
- disabledblogin (/disabledblogin) που απενεργοποιεί τη σύνδεση μέσω ΒΔ
*Δεν* είναι απαραίτητο να προστεθούν τα routes στο `
acl.{global,local}.php
`
(acl.guards.routes).
module/enable_db_login/bootstrap.php
0 → 100644
View file @
40a9b385
<?php
use
Slim\App
;
use
Slim\Container
;
use
Slim\Http\Request
;
use
Slim\Http\Response
;
/**
* gredu_labs.
*
* @link https://github.com/eellak/gredu_labs for the canonical source repository
*
* @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
* @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
*/
return
function
(
App
$app
)
{
$container
=
$app
->
getContainer
();
$events
=
$container
[
'events'
];
$events
(
'on'
,
'app.autoload'
,
function
(
$autoloader
)
{
$autoloader
->
addPsr4
(
'GrEduLabs\\EnableDBLogin\\'
,
__DIR__
.
'/src/'
);
});
$events
(
'on'
,
'app.services'
,
function
(
Container
$container
)
{
$container
[
GrEduLabs\EnableDBLogin\Middleware\EnableDBLogin
::
class
]
=
function
(
$c
)
{
return
new
GrEduLabs\EnableDBLogin\Middleware\EnableDBLogin
(
$c
);
};
$container
[
GrEduLabs\EnableDBLogin\Action\Index
::
class
]
=
function
(
$c
)
{
return
new
GrEduLabs\EnableDBLogin\Action\Index
(
$c
);
};
});
$events
(
'on'
,
'app.bootstrap'
,
function
(
App
$app
,
Container
$c
)
{
$app
->
add
(
GrEduLabs\EnableDBLogin\Middleware\EnableDBLogin
::
class
);
});
$events
(
'on'
,
'app.bootstrap'
,
function
(
App
$app
,
Container
$c
)
{
if
(
isset
(
$_SESSION
[
'enableDLogin'
]))
{
$c
[
'router'
]
->
getNamedRoute
(
'user.login'
)
->
add
(
function
(
Request
$req
,
Response
$res
,
callable
$next
)
use
(
$c
)
{
$c
[
'view'
][
'enable_database_login'
]
=
true
;
return
$next
(
$req
,
$res
);
});
}
},
-
98
);
// must be in order to set last
$events
(
'on'
,
'app.bootstrap'
,
function
(
App
$app
,
Container
$c
)
{
$app
->
get
(
'/enabledblogin'
,
GrEduLabs\EnableDBLogin\Action\Index
::
class
)
->
setName
(
'enabledblogin'
);
$app
->
get
(
'/disabledblogin'
,
GrEduLabs\EnableDBLogin\Action\Index
::
class
)
->
setName
(
'disabledblogin'
);
});
};
module/enable_db_login/src/Action/Index.php
0 → 100644
View file @
40a9b385
<?php
/**
* gredu_labs.
*
* @link https://github.com/eellak/gredu_labs for the canonical source repository
*
* @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
* @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
*/
namespace
GrEduLabs\EnableDBLogin\Action
;
use
Slim\Container
;
use
Slim\Http\Request
;
use
Slim\Http\Response
;
class
Index
{
protected
$_c
;
/**
* Constructor.
*
* @param Twig $view
*/
public
function
__construct
(
Container
$c
)
{
$this
->
_c
=
$c
;
}
public
function
__invoke
(
Request
$req
,
Response
$res
)
{
return
$res
->
withRedirect
(
$this
->
_c
[
'router'
]
->
pathFor
(
'index'
));
}
}
module/enable_db_login/src/Middleware/EnableDBLogin.php
0 → 100644
View file @
40a9b385
<?php
/**
* EnableDBLogin enables the database login form for specific routes or urls.
* To use set the enable_db_login.{global,local}.php
*
* @link https://github.com/eellak/gredu_labs for the canonical source repository
*
* @copyright Copyright (c) 2008-2015 Greek Free/Open Source Software Society (https://gfoss.ellak.gr/)
* @license GNU GPLv3 http://www.gnu.org/licenses/gpl-3.0-standalone.html
*/
namespace
GrEduLabs\EnableDBLogin\Middleware
;
use
Slim\Container
;
use
Psr\Http\Message\ResponseInterface
;
use
Psr\Http\Message\ServerRequestInterface
;
class
EnableDBLogin
{
private
$_c
;
public
function
__construct
(
Container
$c
)
{
$this
->
_c
=
$c
;
}
public
function
__invoke
(
ServerRequestInterface
$req
,
ResponseInterface
$res
,
callable
$next
)
{
$route
=
$req
->
getAttribute
(
'route'
);
if
(
$route
)
{
$routeName
=
$route
->
getName
();
$routePattern
=
$route
->
getPattern
();
$dblogin_settings
=
$this
->
_c
->
get
(
'settings'
)
->
get
(
'enabledblogin'
);
if
(
$dblogin_settings
)
{
$enableRouteNames
=
isset
(
$dblogin_settings
[
'enable_routes'
])
?
$dblogin_settings
[
'enable_routes'
]
:
[];
$enableRoutePatterns
=
isset
(
$dblogin_settings
[
'enable_patterns'
])
?
$dblogin_settings
[
'enable_patterns'
]
:
[];
$disableRouteNames
=
isset
(
$dblogin_settings
[
'disable_routes'
])
?
$dblogin_settings
[
'disable_routes'
]
:
[];
$disableRoutePatterns
=
isset
(
$dblogin_settings
[
'disable_patterns'
])
?
$dblogin_settings
[
'disable_patterns'
]
:
[];
if
(
in_array
(
$routeName
,
$enableRouteNames
)
||
in_array
(
$routePattern
,
$enableRoutePatterns
))
{
$_SESSION
[
'enableDLogin'
]
=
true
;
$this
->
_c
[
'logger'
]
->
info
(
"SET enableDLogin via route=["
.
var_export
(
$routeName
,
true
)
.
'], path=['
.
var_export
(
$routePattern
,
true
)
.
']'
);
}
if
(
in_array
(
$routeName
,
$disableRouteNames
)
||
in_array
(
$routePattern
,
$disableRoutePatterns
))
{
unset
(
$_SESSION
[
'enableDLogin'
]);
$this
->
_c
[
'logger'
]
->
info
(
"UNSET enableDLogin via route=["
.
var_export
(
$routeName
,
true
)
.
'], path=['
.
var_export
(
$routePattern
,
true
)
.
']'
);
}
}
}
return
$next
(
$req
,
$res
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment