summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/identity.py
diff options
context:
space:
mode:
Diffstat (limited to 'testapi/testapi-client/testapiclient/identity.py')
-rw-r--r--testapi/testapi-client/testapiclient/identity.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/testapi/testapi-client/testapiclient/identity.py b/testapi/testapi-client/testapiclient/identity.py
index 5456270..d62ed7a 100644
--- a/testapi/testapi-client/testapiclient/identity.py
+++ b/testapi/testapi-client/testapiclient/identity.py
@@ -2,9 +2,10 @@ import requests
from user import User
from config import Config
import urllib
+import functools
-def authenticate(username, password):
+def _authenticate(username, password):
session = requests.Session()
hostname = '{}{}{}'.format(
Config.config.get("cas", "auth_url"),
@@ -14,3 +15,17 @@ def authenticate(username, password):
response = session.post(hostname, data)
User.session = session
return response
+
+
+def authenticate(xstep):
+ @functools.wraps(xstep)
+ def wrapper(self, parsed_args):
+ username = parsed_args.u
+ password = parsed_args.p
+ if(username and password):
+ response = _authenticate(username, password)
+ if "login" in response.text:
+ print "Authentication has failed."
+ else:
+ xstep(self, parsed_args)
+ return wrapper