2019-05-01 20:43:28 +00:00
|
|
|
from flask import Blueprint, request, jsonify
|
2019-12-28 10:31:45 +00:00
|
|
|
from geruecht import BAR, db, ldapController as ldap, accesTokenController
|
2019-05-01 20:43:28 +00:00
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
baruser = Blueprint("baruser", __name__)
|
|
|
|
|
|
|
|
@baruser.route("/bar")
|
|
|
|
def _bar():
|
2019-05-02 16:50:59 +00:00
|
|
|
""" Main function for Baruser
|
2019-05-02 23:40:13 +00:00
|
|
|
|
2019-05-02 16:50:59 +00:00
|
|
|
Returns JSON-file with all Users, who hast amounts in this month.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
JSON-File with Users, who has amounts in this month
|
|
|
|
or ERROR 401 Permission Denied
|
|
|
|
"""
|
2019-05-01 20:43:28 +00:00
|
|
|
print(request.headers)
|
|
|
|
token = request.headers.get("Token")
|
|
|
|
print(token)
|
2019-12-28 10:31:45 +00:00
|
|
|
accToken = accesTokenController.validateAccessToken(token, BAR)
|
2019-05-01 20:43:28 +00:00
|
|
|
|
|
|
|
dic = {}
|
2019-12-28 10:31:45 +00:00
|
|
|
if accToken:
|
2019-12-22 21:27:39 +00:00
|
|
|
users = db.getAllUser()
|
2019-05-01 20:43:28 +00:00
|
|
|
for user in users:
|
|
|
|
geruecht = None
|
2019-05-02 00:21:50 +00:00
|
|
|
geruecht = user.getGeruecht()
|
2019-05-01 20:43:28 +00:00
|
|
|
if geruecht is not None:
|
|
|
|
month = geruecht.getMonth(datetime.now().month)
|
2019-12-22 21:27:39 +00:00
|
|
|
amount = month[0] - month[1]
|
2019-05-01 20:43:28 +00:00
|
|
|
if amount != 0:
|
2019-12-22 21:27:39 +00:00
|
|
|
if amount >= 0:
|
|
|
|
type = 'credit'
|
|
|
|
else:
|
|
|
|
type = 'amount'
|
|
|
|
dic[user.cn] = {"username": user.cn,
|
2019-05-01 20:43:28 +00:00
|
|
|
"firstname": user.firstname,
|
|
|
|
"lastname": user.lastname,
|
2019-12-22 21:27:39 +00:00
|
|
|
"amount": abs(month[0] - month[1]),
|
|
|
|
"type": type
|
2019-05-01 20:43:28 +00:00
|
|
|
}
|
|
|
|
return jsonify(dic)
|
|
|
|
return jsonify({"error": "permission denied"}), 401
|
|
|
|
|
|
|
|
@baruser.route("/baradd", methods=['POST'])
|
|
|
|
def _baradd():
|
2019-05-02 16:50:59 +00:00
|
|
|
""" Function for Baruser to add amount
|
|
|
|
|
|
|
|
This function added to the user with the posted userID the posted amount.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
JSON-File with userID and the amount
|
|
|
|
or ERROR 401 Permission Denied
|
|
|
|
"""
|
2019-05-01 20:43:28 +00:00
|
|
|
token = request.headers.get("Token")
|
|
|
|
print(token)
|
2019-12-28 10:31:45 +00:00
|
|
|
accToken = accesTokenController.validateAccessToken(token, BAR)
|
2019-05-01 20:43:28 +00:00
|
|
|
|
2019-12-28 10:31:45 +00:00
|
|
|
if accToken:
|
2019-05-01 20:43:28 +00:00
|
|
|
data = request.get_json()
|
|
|
|
userID = data['userId']
|
|
|
|
amount = int(data['amount'])
|
|
|
|
|
2019-12-22 21:27:39 +00:00
|
|
|
user = db.getUser(userID)
|
2019-12-26 09:28:30 +00:00
|
|
|
if user is None:
|
|
|
|
groups = ldap.getGroup(userID)
|
|
|
|
user_data = ldap.getUserData(userID)
|
|
|
|
user_data['group'] = groups
|
|
|
|
db.insertUser(user_data)
|
|
|
|
user = db.getUser(userID)
|
2019-05-02 00:21:50 +00:00
|
|
|
month = user.addAmount(amount)
|
2019-05-01 20:43:28 +00:00
|
|
|
|
2019-05-02 00:21:50 +00:00
|
|
|
amount = abs(month[0] - month[1])
|
2019-05-01 20:43:28 +00:00
|
|
|
|
2019-12-22 21:27:39 +00:00
|
|
|
return jsonify({"userId": user.cn, "amount": amount})
|
2019-05-01 20:43:28 +00:00
|
|
|
return jsonify({"error", "permission denied"}), 401
|
2019-05-02 13:39:53 +00:00
|
|
|
|
|
|
|
@baruser.route("/barGetUsers")
|
|
|
|
def _getUsers():
|
2019-05-02 16:50:59 +00:00
|
|
|
""" Get Users without amount
|
|
|
|
|
|
|
|
This Function returns all Users, who hasn't an amount in this month.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
JSON-File with Users
|
|
|
|
or ERROR 401 Permission Denied
|
|
|
|
"""
|
2019-05-02 13:39:53 +00:00
|
|
|
token = request.headers.get("Token")
|
|
|
|
print(token)
|
2019-12-28 10:31:45 +00:00
|
|
|
accToken = accesTokenController.validateAccessToken(token, BAR)
|
2019-05-02 13:39:53 +00:00
|
|
|
|
|
|
|
retVal = {}
|
2019-12-28 10:31:45 +00:00
|
|
|
if accToken:
|
2019-12-26 09:28:30 +00:00
|
|
|
retVal = ldap.getAllUser()
|
2019-05-02 13:39:53 +00:00
|
|
|
return jsonify(retVal)
|
|
|
|
return jsonify({"error": "permission denied"}), 401
|
|
|
|
|
2019-12-22 22:09:18 +00:00
|
|
|
@baruser.route("/search", methods=['POST'])
|
|
|
|
def _search():
|
2019-05-02 13:39:53 +00:00
|
|
|
token = request.headers.get("Token")
|
|
|
|
print(token)
|
2019-12-28 10:31:45 +00:00
|
|
|
accToken = accesTokenController.validateAccessToken(token, BAR)
|
2019-05-02 13:39:53 +00:00
|
|
|
|
2019-12-28 10:31:45 +00:00
|
|
|
if accToken:
|
2019-05-02 13:39:53 +00:00
|
|
|
data = request.get_json()
|
|
|
|
|
2019-12-22 22:09:18 +00:00
|
|
|
searchString = data['searchString']
|
2019-05-02 13:39:53 +00:00
|
|
|
|
2019-12-22 22:09:18 +00:00
|
|
|
retVal = ldap.searchUser(searchString)
|
|
|
|
|
|
|
|
return jsonify(retVal)
|
2019-05-02 13:39:53 +00:00
|
|
|
return jsonify({"error": "permission denied"}), 401
|