Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Maxime Besson
lemonldap-ng
Commits
e2f4de3f
Commit
e2f4de3f
authored
Feb 28, 2017
by
Yadd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Missing versions (#595)
parent
1efacd1d
Changes
37
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
74 additions
and
0 deletions
+74
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Combination/Parser.pm
...p-ng-common/lib/Lemonldap/NG/Common/Combination/Parser.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/JSONFile.pm
...-common/lib/Lemonldap/NG/Common/Conf/Backends/JSONFile.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Apache2.pm
...nldap-ng-common/lib/Lemonldap/NG/Common/Logger/Apache2.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Log4perl.pm
...ldap-ng-common/lib/Lemonldap/NG/Common/Logger/Log4perl.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Std.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Std.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Syslog.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Syslog.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Notifications/JSON.pm
...p-ng-common/lib/Lemonldap/NG/Common/Notifications/JSON.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Notifications/XML.pm
...ap-ng-common/lib/Lemonldap/NG/Common/Notifications/XML.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/PSGI/Cli/Lib.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/PSGI/Cli/Lib.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Regexp.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/Regexp.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/Session/REST.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/Session/REST.pm
+2
-0
lemonldap-ng-common/lib/Lemonldap/NG/Common/UserAgent.pm
lemonldap-ng-common/lib/Lemonldap/NG/Common/UserAgent.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Main.pm
...dap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Main.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Menu.pm
...dap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Menu.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Lib/CDA.pm
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Lib/CDA.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/PSGI/Try.pm
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/PSGI/Try.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm
+2
-0
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm
...nldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/CTrees.pm
...nldap-ng-manager/lib/Lemonldap/NG/Manager/Build/CTrees.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli.pm
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli/Lib.pm
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli/Lib.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Diff.pm
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Diff.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
+2
-0
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Choice.pm
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Choice.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm
...dap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OneTimeToken.pm
...dap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OneTimeToken.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenID/SREG.pm
...ldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenID/SREG.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/REST.pm
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/REST.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Constants.pm
...nldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Constants.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Menu.pm
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Menu.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Request.pm
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Request.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GrantSession.pm
...ng-portal/lib/Lemonldap/NG/Portal/Plugins/GrantSession.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/History.pm
...ldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/History.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Choice.pm
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Choice.pm
+2
-0
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Combination.pm
...p-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Combination.pm
+2
-0
No files found.
lemonldap-ng-common/lib/Lemonldap/NG/Common/Cli.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ use Mouse;
use
Data::
Dumper
;
use
Lemonldap::NG::Common::
Conf
;
our
$VERSION
=
'
2.0.0
';
has
confAccess
=>
(
is
=>
'
rw
',
builder
=>
sub
{
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Combination/Parser.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ use Mouse;
use
Safe
;
use
constant
PE_OK
=>
0
;
our
$VERSION
=
'
2.0.0
';
# Handle "if then else" (used during init)
# return a sub that can be called with ($req) to get a [array] of combination
#
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/Backends/JSONFile.pm
View file @
e2f4de3f
...
...
@@ -3,7 +3,9 @@
package
Lemonldap::NG::Common::Conf::Backends::
JSONFile
;
use
Lemonldap::NG::Common::Conf::
File
;
our
@ISA
=
qw(Lemonldap::NG::Common::Conf::Backends::File)
;
our
$VERSION
=
'
2.0.0
';
1
;
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Apache2.pm
View file @
e2f4de3f
...
...
@@ -2,6 +2,8 @@ package Lemonldap::NG::Common::Logger::Apache2;
use
Apache2::
ServerRec
;
our
$VERSION
=
'
2.0.0
';
sub
new
{
return
bless
{},
shift
;
}
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Log4perl.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Log::
Log4perl
;
use
Mouse
;
our
$VERSION
=
'
2.0.0
';
our
$init
=
0
;
sub
new
{
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Std.pm
View file @
e2f4de3f
...
...
@@ -2,6 +2,8 @@ package Lemonldap::NG::Common::Logger::Std;
use
strict
;
our
$VERSION
=
'
2.0.0
';
sub
new
{
no
warnings
'
redefine
';
my
$level
=
$_
[
1
]
->
{
logLevel
}
||
'
info
';
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Logger/Syslog.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Common::Logger::Syslog;
use
strict
;
use
Sys::
Syslog
qw(:standard)
;
our
$VERSION
=
'
2.0.0
';
sub
new
{
my
(
$class
,
$conf
,
%args
)
=
@_
;
my
$level
=
$conf
->
{
logLevel
}
||
'
info
';
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Notifications/JSON.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
JSON
qw(from_json to_json)
;
our
$VERSION
=
'
2.0.0
';
sub
newNotification
{
my
(
$self
,
$jsonString
)
=
@_
;
my
$json
;
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Notifications/XML.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
XML::
LibXML
;
our
$VERSION
=
'
2.0.0
';
# XML parser
has
parser
=>
(
is
=>
'
rw
',
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/PSGI/Cli/Lib.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use JSON;
use
Mouse
;
use
Lemonldap::NG::Common::
PSGI
;
our
$VERSION
=
'
2.0.0
';
has
iniFile
=>
(
is
=>
'
ro
',
isa
=>
'
Str
'
);
has
app
=>
(
is
=>
'
ro
',
isa
=>
'
CodeRef
'
);
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Regexp.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ package Lemonldap::NG::Common::Regexp;
use
AutoLoader
'
AUTOLOAD
';
our
$VERSION
=
'
2.0.0
';
1
;
__END__
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/Session/REST.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Common::Conf::
Constants
;
our
$VERSION
=
'
2.0.0
';
has
sessionTypes
=>
(
is
=>
'
rw
'
);
sub
setTypes
{
...
...
lemonldap-ng-common/lib/Lemonldap/NG/Common/UserAgent.pm
View file @
e2f4de3f
...
...
@@ -2,6 +2,8 @@ package Lemonldap::NG::Common::UserAgent;
use
LWP::
UserAgent
;
our
$VERSION
=
'
2.0.0
';
sub
new
{
my
(
$class
,
$conf
)
=
@_
;
my
$opts
=
$conf
->
{
lwpOpts
}
||
{};
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Main.pm
View file @
e2f4de3f
...
...
@@ -29,6 +29,8 @@ use constant AUTH_REQUIRED => Apache2::Const::AUTH_REQUIRED;
use
constant
MAINTENANCE
=>
Apache2::Const::
HTTP_SERVICE_UNAVAILABLE
;
use
constant
BUFF_LEN
=>
8192
;
our
$VERSION
=
'
2.0.0
';
# Set default logger
use
constant
defaultLogger
=>
'
Lemonldap::NG::Common::Logger::Apache2
';
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/ApacheMP2/Menu.pm
View file @
e2f4de3f
...
...
@@ -12,6 +12,8 @@ use base qw(Lemonldap::NG::Handler::ApacheMP2::Main);
use
Apache2::
Filter
();
use
constant
BUFF_LEN
=>
8192
;
our
$VERSION
=
'
2.0.0
';
sub
handler
{
my
$r
=
pop
;
__PACKAGE__
->
run
(
$r
);
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Lib/CDA.pm
View file @
e2f4de3f
...
...
@@ -2,6 +2,8 @@ package Lemonldap::NG::Handler::Lib::CDA;
use
strict
;
our
$VERSION
=
'
2.0.0
';
sub
run
{
my
(
$class
,
$req
,
$rule
,
$protection
)
=
@_
;
my
$uri
=
$class
->
unparsed_uri
;
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/PSGI/Try.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Handler::PSGI::Try;
use
strict
;
use
Mouse
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Handler::PSGI::Router
';
has
'
authRoutes
'
=>
(
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ package Lemonldap::NG::Handler::Server::Main;
use
strict
;
our
$VERSION
=
'
2.0.0
';
use
base
'
Lemonldap::NG::Handler::PSGI::Main
';
use
constant
defaultLogger
=>
'
Lemonldap::NG::Common::Logger::Syslog
';
...
...
lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm
View file @
e2f4de3f
...
...
@@ -6,6 +6,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Handler::Server::
Main
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Handler::PSGI
';
sub
init
{
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Build/CTrees.pm
View file @
e2f4de3f
...
...
@@ -14,6 +14,8 @@
package
Lemonldap::NG::Manager::Build::
CTrees
;
our
$VERSION
=
'
2.0.0
';
sub
cTrees
{
return
{
virtualHost
=>
[
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ use Mouse;
use
Data::
Dumper
;
use
Lemonldap::NG::Common::Conf::
ReConstants
;
our
$VERSION
=
'
2.0.0
';
extends
('
Lemonldap::NG::Manager::Cli::Lib
');
has
cfgNum
=>
(
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Cli/Lib.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Manager::Cli::Lib;
use
Mouse
;
use
Lemonldap::NG::
Manager
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Common::PSGI::Cli::Lib
';
has
mgr
=>
(
is
=>
'
ro
',
isa
=>
'
Lemonldap::NG::Manager
'
);
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Diff.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Manager::Conf::
Parser
;
our
$VERSION
=
'
2.0.0
';
*defaultValue
=
\
&
Lemonldap::NG::Manager::Conf::Parser::
defaultValue
;
sub
diff
{
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Tests.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Manager::Conf::Tests;
use
utf8
;
use
Lemonldap::NG::Common::
Regexp
;
our
$VERSION
=
'
2.0.0
';
## @method hashref tests(hashref conf)
# Return a hash ref where keys are the names of the tests and values
# subroutines to execute.
...
...
lemonldap-ng-manager/lib/Lemonldap/NG/Manager/Conf/Zero.pm
View file @
e2f4de3f
package
Lemonldap::NG::Manager::Conf::
Zero
;
our
$VERSION
=
'
2.0.0
';
sub
zeroConf
{
my
(
$domain
,
$sessionDir
,
$persistentSessionDir
,
$notificationDir
)
=
@_
;
$domain
||=
'
example.com
';
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Choice.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Portal::Main::
Constants
qw(PE_OK PE_FIRSTACCESS)
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Portal::Lib::Choice
';
sub
init
{
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Auth/Combination.pm
View file @
e2f4de3f
...
...
@@ -6,6 +6,8 @@ use Lemonldap::NG::Common::Combination::Parser;
use
Lemonldap::NG::Portal::Main::
Constants
qw(PE_OK PE_ERROR)
;
use
Scalar::
Util
'
weaken
';
our
$VERSION
=
'
2.0.0
';
# TODO: See Lib::Wrapper
extends
'
Lemonldap::NG::Portal::Auth::Base
';
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OneTimeToken.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Portal::Lib::OneTimeToken;
use
strict
;
use
Mouse
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Common::Module
';
has
timeout
=>
(
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/OpenID/SREG.pm
View file @
e2f4de3f
...
...
@@ -9,6 +9,8 @@ package Lemonldap::NG::Portal::Lib::OpenID::SREG;
use
strict
;
use
Lemonldap::NG::Common::
Regexp
;
our
$VERSION
=
'
2.0.0
';
## @method protected hash sregHook(hash prm)
# Hook called to add SREG parameters to the OpenID response
# @return Hash containing wanted parameters
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Lib/REST.pm
View file @
e2f4de3f
...
...
@@ -5,6 +5,8 @@ use Mouse;
use
Lemonldap::NG::Common::
UserAgent
;
use
JSON
qw(from_json to_json)
;
our
$VERSION
=
'
2.0.0
';
has
ua
=>
(
is
=>
'
rw
',
default
=>
sub
{
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Constants.pm
View file @
e2f4de3f
...
...
@@ -3,6 +3,8 @@ package Lemonldap::NG::Portal::Main::Constants;
use
strict
;
use
Exporter
'
import
';
our
$VERSION
=
'
2.0.0
';
use
constant
HANDLER
=>
'
Lemonldap::NG::Handler::PSGI::Main
';
use
constant
{
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Menu.pm
View file @
e2f4de3f
...
...
@@ -7,6 +7,8 @@ use utf8;
use
Mouse
;
use
Clone
'
clone
';
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Common::Module
';
# PROPERTIES
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Request.pm
View file @
e2f4de3f
...
...
@@ -7,6 +7,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Portal::Main::
Constants
'
:all
';
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Common::PSGI::Request
';
# List of methods to call
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/GrantSession.pm
View file @
e2f4de3f
...
...
@@ -7,6 +7,8 @@ use Lemonldap::NG::Portal::Main::Constants qw(
PE_SESSIONNOTGRANTED
)
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Portal::Main::Plugin
';
use
constant
afterDatas
=>
'
grantSession
';
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/History.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Portal::Main::
Constants
qw(PE_INFO PE_OK)
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Portal::Main::Plugin
',
'
Lemonldap::NG::Portal::Lib::OtherSessions
';
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Choice.pm
View file @
e2f4de3f
...
...
@@ -4,6 +4,8 @@ use strict;
use
Mouse
;
use
Lemonldap::NG::Portal::Main::
Constants
qw(PE_FIRSTACCESS)
;
our
$VERSION
=
'
2.0.0
';
extends
'
Lemonldap::NG::Portal::Lib::Choice
';
# INITIALIZATION
...
...
lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Combination.pm
View file @
e2f4de3f
package
Lemonldap::NG::Portal::UserDB::
Combination
;
our
$VERSION
=
'
2.0.0
';
sub
new
{
return
$_
[
1
]
->
{
p
}
->
{
_authentication
};
}
...
...
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