parent
							
								
									e8fc6c64b9
								
							
						
					
					
						commit
						33333561f3
					
				| 
						 | 
					@ -116,4 +116,7 @@ dmypy.json
 | 
				
			||||||
.pyre/
 | 
					.pyre/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ide
 | 
					#ide
 | 
				
			||||||
.idea
 | 
					.idea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.vscode/
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
| 
						 | 
					@ -40,15 +40,28 @@ class Singleton(type):
 | 
				
			||||||
        if cls not in cls._instances:
 | 
					        if cls not in cls._instances:
 | 
				
			||||||
            cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
 | 
					            cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
 | 
				
			||||||
        return cls._instances[cls]
 | 
					        return cls._instances[cls]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .controller.databaseController import DatabaseController
 | 
					from .controller.databaseController import DatabaseController
 | 
				
			||||||
db = DatabaseController()
 | 
					db = DatabaseController()
 | 
				
			||||||
from .controller.ldapController import LDAPController
 | 
					from .controller.ldapController import LDAPController
 | 
				
			||||||
ldapController = LDAPController()
 | 
					ldapController = LDAPController()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def getDatabesController():
 | 
				
			||||||
 | 
					    if db is not None:
 | 
				
			||||||
 | 
					        return db
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        return DatabaseController()
 | 
				
			||||||
 | 
					def getLDAPController():
 | 
				
			||||||
 | 
					    if ldapController is not None:
 | 
				
			||||||
 | 
					        return ldapController
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        return LDAPController()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from flask import Flask
 | 
					from flask import Flask
 | 
				
			||||||
from flask_sqlalchemy import SQLAlchemy
 | 
					from flask_sqlalchemy import SQLAlchemy
 | 
				
			||||||
from flask_bcrypt import Bcrypt
 | 
					 | 
				
			||||||
from flask_cors import CORS
 | 
					from flask_cors import CORS
 | 
				
			||||||
from .controller.accesTokenController import AccesTokenController
 | 
					from .controller.accesTokenController import AccesTokenController
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,7 +72,6 @@ CORS(app)
 | 
				
			||||||
# app.config['SECRET_KEY'] = '0a657b97ef546da90b2db91862ad4e29'
 | 
					# app.config['SECRET_KEY'] = '0a657b97ef546da90b2db91862ad4e29'
 | 
				
			||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
 | 
					app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
 | 
				
			||||||
#db = SQLAlchemy(app)
 | 
					#db = SQLAlchemy(app)
 | 
				
			||||||
bcrypt = Bcrypt(app)
 | 
					 | 
				
			||||||
accesTokenController = AccesTokenController("GERUECHT")
 | 
					accesTokenController = AccesTokenController("GERUECHT")
 | 
				
			||||||
accesTokenController.start()
 | 
					accesTokenController.start()
 | 
				
			||||||
# login_manager = LoginManager(app)
 | 
					# login_manager = LoginManager(app)
 | 
				
			||||||
| 
						 | 
					@ -71,8 +83,8 @@ accesTokenController.start()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from geruecht import routes
 | 
					from geruecht import routes
 | 
				
			||||||
#from geruecht.baruser.routes import baruser
 | 
					#from geruecht.baruser.routes import baruser
 | 
				
			||||||
#from geruecht.finanzer.routes import finanzer
 | 
					from geruecht.finanzer.routes import finanzer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#LOGGER.info("Registrate bluebrints")
 | 
					LOGGER.info("Registrate bluebrints")
 | 
				
			||||||
#app.register_blueprint(baruser)
 | 
					#app.register_blueprint(baruser)
 | 
				
			||||||
#app.register_blueprint(finanzer)
 | 
					app.register_blueprint(finanzer)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,7 +106,7 @@ class AccesTokenController(Thread, metaclass=Singleton):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Verify that the AccesToken are not out of date. If one AccessToken out of date it will be deletet from tokenList.
 | 
					            Verify that the AccesToken are not out of date. If one AccessToken out of date it will be deletet from tokenList.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        valid_time=120
 | 
					        valid_time=7200
 | 
				
			||||||
        LOGGER.info("Start Thread for verification that the AccessToken are not out of date.")
 | 
					        LOGGER.info("Start Thread for verification that the AccessToken are not out of date.")
 | 
				
			||||||
        while True:
 | 
					        while True:
 | 
				
			||||||
            self.LOGGER.debug("Name: {}".format(self.getName()))
 | 
					            self.LOGGER.debug("Name: {}".format(self.getName()))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,8 @@
 | 
				
			||||||
import pymysql
 | 
					import pymysql
 | 
				
			||||||
from geruecht import Singleton
 | 
					from geruecht import Singleton
 | 
				
			||||||
from geruecht.model.user import User
 | 
					from geruecht.model.user import User
 | 
				
			||||||
 | 
					from geruecht.model.creditList import CreditList
 | 
				
			||||||
 | 
					from datetime import datetime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DatabaseController(metaclass=Singleton):
 | 
					class DatabaseController(metaclass=Singleton):
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
| 
						 | 
					@ -24,17 +26,31 @@ class DatabaseController(metaclass=Singleton):
 | 
				
			||||||
            raise err
 | 
					            raise err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getAllUser(self):
 | 
					    def getAllUser(self):
 | 
				
			||||||
 | 
					        self.connect()
 | 
				
			||||||
        cursor = self.db.cursor()
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            cursor.execute("select * from user")
 | 
				
			||||||
 | 
					            data = cursor.fetchall()
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					        except Exception as err:
 | 
				
			||||||
 | 
					            raise err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if data:
 | 
				
			||||||
 | 
					            return [User(value) for value in data]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getUser(self, username):
 | 
					    def getUser(self, username):
 | 
				
			||||||
        self.connect()
 | 
					        self.connect()
 | 
				
			||||||
        retVal = None
 | 
					        retVal = None
 | 
				
			||||||
        cursor = self.db.cursor()
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
        cursor.execute("select * from user where cn='{}'".format(username))
 | 
					        try:
 | 
				
			||||||
        data = cursor.fetchone()
 | 
					            cursor.execute("select * from user where cn='{}'".format(username))
 | 
				
			||||||
 | 
					            data = cursor.fetchone()
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					        except Exception as err:
 | 
				
			||||||
 | 
					            raise err
 | 
				
			||||||
        if data:
 | 
					        if data:
 | 
				
			||||||
            retVal = User(data)
 | 
					            retVal = User(data)
 | 
				
			||||||
        self.db.close()
 | 
					
 | 
				
			||||||
        return retVal
 | 
					        return retVal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +58,7 @@ class DatabaseController(metaclass=Singleton):
 | 
				
			||||||
        self.connect()
 | 
					        self.connect()
 | 
				
			||||||
        cursor = self.db.cursor()
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            cursor.execute("insert into user (cn, dn, firstname, lastname, `group`) VALUES ('{}','{}','{}','{}','{}')".format(
 | 
					            cursor.execute("insert into user (cn, dn, firstname, lastname, gruppe) VALUES ('{}','{}','{}','{}','{}')".format(
 | 
				
			||||||
                data['cn'], data['dn'], data['givenName'], data['sn'], data['group']))
 | 
					                data['cn'], data['dn'], data['givenName'], data['sn'], data['group']))
 | 
				
			||||||
            self.db.commit()
 | 
					            self.db.commit()
 | 
				
			||||||
        except Exception as err:
 | 
					        except Exception as err:
 | 
				
			||||||
| 
						 | 
					@ -55,7 +71,7 @@ class DatabaseController(metaclass=Singleton):
 | 
				
			||||||
        self.connect()
 | 
					        self.connect()
 | 
				
			||||||
        cursor = self.db.cursor()
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            cursor.execute("update user dn='{}', firstname='{}', lastname='{}', group='{}' where cn='{}'".format(
 | 
					            cursor.execute("update user set dn='{}', firstname='{}', lastname='{}', gruppe='{}' where cn='{}'".format(
 | 
				
			||||||
                data['dn'], data['givenName'], data['sn'], data['group'], data['cn']))
 | 
					                data['dn'], data['givenName'], data['sn'], data['group'], data['cn']))
 | 
				
			||||||
            self.db.commit()
 | 
					            self.db.commit()
 | 
				
			||||||
        except Exception as err:
 | 
					        except Exception as err:
 | 
				
			||||||
| 
						 | 
					@ -64,5 +80,67 @@ class DatabaseController(metaclass=Singleton):
 | 
				
			||||||
            raise err
 | 
					            raise err
 | 
				
			||||||
        self.db.close()
 | 
					        self.db.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def getCreditListFromUser(self, user, **kwargs):
 | 
				
			||||||
 | 
					        self.connect()
 | 
				
			||||||
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            if 'year' in kwargs:
 | 
				
			||||||
 | 
					                sql = "select * from creditList where user_id={} and year_date={}".format(user.id, kwargs['year'])
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                sql = "select * from creditList where user_id={}".format(user.id)
 | 
				
			||||||
 | 
					            cursor.execute(sql)
 | 
				
			||||||
 | 
					            data = cursor.fetchall()
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					        except Exception as err:
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					            raise err
 | 
				
			||||||
 | 
					        if len(data) == 1:
 | 
				
			||||||
 | 
					            return CreditList(data[0])
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            return [CreditList(value) for value in data]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def createCreditList(self, user_id, year=datetime.now().year):
 | 
				
			||||||
 | 
					        self.connect()
 | 
				
			||||||
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            cursor.execute("insert into creditList (year_date, user_id) values ({},{})".format(year, user_id))
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					        except Exception as err:
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					            raise err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def updateCreditList(self, creditlist):
 | 
				
			||||||
 | 
					        self.connect()
 | 
				
			||||||
 | 
					        cursor = self.db.cursor()
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            cursor.execute("select * from creditList where user_id={} and year_date={}".format(creditlist.user_id, creditlist.year))
 | 
				
			||||||
 | 
					            data = cursor.fetchall()
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					            if len(data) == 0:
 | 
				
			||||||
 | 
					                self.createCreditList(creditlist.user_id, creditlist.year)
 | 
				
			||||||
 | 
					            self.connect()
 | 
				
			||||||
 | 
					            cursor = self.db.cursor()
 | 
				
			||||||
 | 
					            cursor.execute("update creditList set jan_guthaben={}, jan_schulden={},feb_guthaben={}, feb_schulden={}, maer_guthaben={}, maer_schulden={}, apr_guthaben={}, apr_schulden={}, mai_guthaben={}, mai_schulden={}, jun_guthaben={}, jun_schulden={}, jul_guthaben={}, jul_schulden={}, aug_guthaben={}, aug_schulden={},sep_guthaben={}, sep_schulden={},okt_guthaben={}, okt_schulden={}, nov_guthaben={}, nov_schulden={}, dez_guthaben={}, dez_schulden={}, last_schulden={} where year_date={} and user_id={}".format(creditlist.jan_guthaben, creditlist.jan_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.feb_guthaben, creditlist.feb_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.maer_guthaben, creditlist.maer_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.apr_guthaben, creditlist.apr_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.mai_guthaben, creditlist.mai_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.jun_guthaben, creditlist.jun_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.jul_guthaben, creditlist.jul_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.aug_guthaben, creditlist.aug_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.sep_guthaben, creditlist.sep_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.okt_guthaben, creditlist.okt_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.nov_guthaben, creditlist.nov_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.dez_guthaben, creditlist.dez_schulden,
 | 
				
			||||||
 | 
					                                                     creditlist.last_schulden, creditlist.year, creditlist.user_id))
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					        except Exception as err:
 | 
				
			||||||
 | 
					            self.db.rollback()
 | 
				
			||||||
 | 
					            self.db.close()
 | 
				
			||||||
 | 
					            raise err
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
    db = DatabaseController(user='tim')
 | 
					    db = DatabaseController()
 | 
				
			||||||
 | 
					    user = db.getUser('jhille')
 | 
				
			||||||
 | 
					    db.getCreditListFromUser(user, year=2018)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
from flask import Blueprint, request, jsonify
 | 
					from flask import Blueprint, request, jsonify
 | 
				
			||||||
from geruecht.finanzer import LOGGER
 | 
					from geruecht.finanzer import LOGGER
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
from geruecht import MONEY
 | 
					from geruecht import MONEY, db
 | 
				
			||||||
from geruecht.routes import verifyAccessToken
 | 
					from geruecht.routes import verifyAccessToken
 | 
				
			||||||
from geruecht.model.user import User
 | 
					from geruecht.model.user import User
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,11 +24,11 @@ def _getFinanzer():
 | 
				
			||||||
    accToken = verifyAccessToken(token, MONEY)
 | 
					    accToken = verifyAccessToken(token, MONEY)
 | 
				
			||||||
    if accToken is not None:
 | 
					    if accToken is not None:
 | 
				
			||||||
        LOGGER.debug("Get all Useres")
 | 
					        LOGGER.debug("Get all Useres")
 | 
				
			||||||
        users = User.query.all()
 | 
					        users = db.getAllUser()
 | 
				
			||||||
        dic = {}
 | 
					        dic = {}
 | 
				
			||||||
        for user in users:
 | 
					        for user in users:
 | 
				
			||||||
            LOGGER.debug("Add User {} to ReturnValue".format(user))
 | 
					            LOGGER.debug("Add User {} to ReturnValue".format(user))
 | 
				
			||||||
            dic[user.userID] = user.toJSON()
 | 
					            dic[user.cn] = user.toJSON()
 | 
				
			||||||
            LOGGER.debug("ReturnValue is {}".format(dic))
 | 
					            LOGGER.debug("ReturnValue is {}".format(dic))
 | 
				
			||||||
        LOGGER.info("Send main for Finanzer")
 | 
					        LOGGER.info("Send main for Finanzer")
 | 
				
			||||||
        return jsonify(dic)
 | 
					        return jsonify(dic)
 | 
				
			||||||
| 
						 | 
					@ -56,13 +56,13 @@ def _getFinanzerYear():
 | 
				
			||||||
        LOGGER.debug("Get data {}".format(data))
 | 
					        LOGGER.debug("Get data {}".format(data))
 | 
				
			||||||
        userID = data['userId']
 | 
					        userID = data['userId']
 | 
				
			||||||
        LOGGER.debug("UserID is {}".format(userID))
 | 
					        LOGGER.debug("UserID is {}".format(userID))
 | 
				
			||||||
        user = User.query.filter_by(userID=userID).first()
 | 
					        user = db.getUser(userID)
 | 
				
			||||||
        LOGGER.debug("User is {}".format(user))
 | 
					        LOGGER.debug("User is {}".format(user))
 | 
				
			||||||
        dic[user.userID] = {}
 | 
					        dic[user.cn] = {}
 | 
				
			||||||
        LOGGER.debug("Build ReturnValue")
 | 
					        LOGGER.debug("Build ReturnValue")
 | 
				
			||||||
        for geruecht in user.geruechte:
 | 
					        for geruecht in user.geruechte:
 | 
				
			||||||
            LOGGER.debug("Add Geruecht {} to ReturnValue".format(geruecht))
 | 
					            LOGGER.debug("Add Geruecht {} to ReturnValue".format(geruecht))
 | 
				
			||||||
            dic[user.userID][geruecht.year] = geruecht.toJSON()
 | 
					            dic[user.cn][geruecht.year] = geruecht.toJSON()
 | 
				
			||||||
            LOGGER.debug("ReturnValue is {}".format(dic))
 | 
					            LOGGER.debug("ReturnValue is {}".format(dic))
 | 
				
			||||||
        LOGGER.info("Send Geruechte from User {}".format(user))
 | 
					        LOGGER.info("Send Geruechte from User {}".format(user))
 | 
				
			||||||
        return jsonify(dic)
 | 
					        return jsonify(dic)
 | 
				
			||||||
| 
						 | 
					@ -103,7 +103,7 @@ def _addAmount():
 | 
				
			||||||
            LOGGER.error("KeyError in month. Month is set to default.")
 | 
					            LOGGER.error("KeyError in month. Month is set to default.")
 | 
				
			||||||
            month = datetime.now().month
 | 
					            month = datetime.now().month
 | 
				
			||||||
        LOGGER.debug("Year is {} and Month is {}".format(year, month))
 | 
					        LOGGER.debug("Year is {} and Month is {}".format(year, month))
 | 
				
			||||||
        user = User.query.filter_by(userID=userID).first()
 | 
					        user = db.getUser(userID)
 | 
				
			||||||
        LOGGER.debug("User is {}".format(user))
 | 
					        LOGGER.debug("User is {}".format(user))
 | 
				
			||||||
        LOGGER.debug("Add amount to User {} in year {} and month {}".format(user, year, month))
 | 
					        LOGGER.debug("Add amount to User {} in year {} and month {}".format(user, year, month))
 | 
				
			||||||
        user.addAmount(amount, year=year, month=month)
 | 
					        user.addAmount(amount, year=year, month=month)
 | 
				
			||||||
| 
						 | 
					@ -149,7 +149,7 @@ def _addCredit():
 | 
				
			||||||
            month = datetime.now().month
 | 
					            month = datetime.now().month
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LOGGER.debug("Year is {} and Month is {}".format(year, month))
 | 
					        LOGGER.debug("Year is {} and Month is {}".format(year, month))
 | 
				
			||||||
        user = User.query.filter_by(userID=userID).first()
 | 
					        user = db.getUser(userID)
 | 
				
			||||||
        LOGGER.debug("User is {}".format(user))
 | 
					        LOGGER.debug("User is {}".format(user))
 | 
				
			||||||
        LOGGER.debug("Add credit to User {} in year {} and month {}".format(user, year, month))
 | 
					        LOGGER.debug("Add credit to User {} in year {} and month {}".format(user, year, month))
 | 
				
			||||||
        user.addCredit(credit, year=year, month=month)
 | 
					        user.addCredit(credit, year=year, month=month)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,38 @@
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
from geruecht import getLogger
 | 
					from geruecht import getLogger
 | 
				
			||||||
 | 
					import geruecht
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGGER = getLogger(__name__)
 | 
					LOGGER = getLogger(__name__)
 | 
				
			||||||
 | 
					def create_empty_data():
 | 
				
			||||||
 | 
					    empty_data = {'id': 0,
 | 
				
			||||||
 | 
					            'jan_guthaben': 0,
 | 
				
			||||||
 | 
					            'jan_schulden': 0,
 | 
				
			||||||
 | 
					            'feb_guthaben': 0,
 | 
				
			||||||
 | 
					            'feb_schulden': 0,
 | 
				
			||||||
 | 
					            'maer_guthaben': 0,
 | 
				
			||||||
 | 
					            'maer_schulden': 0,
 | 
				
			||||||
 | 
					            'apr_guthaben': 0,
 | 
				
			||||||
 | 
					            'apr_schulden': 0,
 | 
				
			||||||
 | 
					            'mai_guthaben': 0,
 | 
				
			||||||
 | 
					            'mai_schulden': 0,
 | 
				
			||||||
 | 
					            'jun_guthaben': 0,
 | 
				
			||||||
 | 
					            'jun_schulden': 0,
 | 
				
			||||||
 | 
					            'jul_guthaben': 0,
 | 
				
			||||||
 | 
					            'jul_schulden': 0,
 | 
				
			||||||
 | 
					            'aug_guthaben': 0,
 | 
				
			||||||
 | 
					            'aug_schulden': 0,
 | 
				
			||||||
 | 
					            'sep_guthaben': 0,
 | 
				
			||||||
 | 
					            'sep_schulden': 0,
 | 
				
			||||||
 | 
					            'okt_guthaben': 0,
 | 
				
			||||||
 | 
					            'okt_schulden': 0,
 | 
				
			||||||
 | 
					            'nov_guthaben': 0,
 | 
				
			||||||
 | 
					            'nov_schulden': 0,
 | 
				
			||||||
 | 
					            'dez_guthaben': 0,
 | 
				
			||||||
 | 
					            'dez_schulden': 0,
 | 
				
			||||||
 | 
					            'last_schulden': 0,
 | 
				
			||||||
 | 
					            'year_date': datetime.now().year,
 | 
				
			||||||
 | 
					            'user_id': 0}
 | 
				
			||||||
 | 
					    return empty_data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CreditList():
 | 
					class CreditList():
 | 
				
			||||||
    """ DataBase Object Credit List:
 | 
					    """ DataBase Object Credit List:
 | 
				
			||||||
| 
						 | 
					@ -15,50 +46,53 @@ class CreditList():
 | 
				
			||||||
            year:   Year of all Credits and Debts.
 | 
					            year:   Year of all Credits and Debts.
 | 
				
			||||||
            user_id:    id from the User.
 | 
					            user_id:    id from the User.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    LOGGER.debug("Initialize Geruecht")
 | 
					    def __init__(self, data):
 | 
				
			||||||
    id = db.Colum(db.Integer, primary_key=True)
 | 
					        LOGGER.debug("Initialize Geruecht")
 | 
				
			||||||
 | 
					        self.id = int(data['id'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    jan_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jan_guthaben = int(data['jan_guthaben'])
 | 
				
			||||||
    jan_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jan_schulden = int(data['jan_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    feb_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.feb_guthaben = int(data['feb_guthaben'])
 | 
				
			||||||
    feb_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.feb_schulden = int(data['feb_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    maer_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.maer_guthaben = int(data['maer_guthaben'])
 | 
				
			||||||
    maer_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.maer_schulden = int(data['maer_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    apr_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.apr_guthaben = int(data['apr_guthaben'])
 | 
				
			||||||
    apr_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.apr_schulden = int(data['apr_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mai_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.mai_guthaben = int(data['mai_guthaben'])
 | 
				
			||||||
    mai_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.mai_schulden = int(data['mai_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    jun_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jun_guthaben = int(data['jun_guthaben'])
 | 
				
			||||||
    jun_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jun_schulden = int(data['jun_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    jul_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jul_guthaben = int(data['jul_guthaben'])
 | 
				
			||||||
    jul_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.jul_schulden = int(data['jul_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    aug_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.aug_guthaben = int(data['aug_guthaben'])
 | 
				
			||||||
    aug_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.aug_schulden = int(data['aug_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sep_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.sep_guthaben = int(data['sep_guthaben'])
 | 
				
			||||||
    sep_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.sep_schulden = int(data['sep_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    okt_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.okt_guthaben = int(data['okt_guthaben'])
 | 
				
			||||||
    okt_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.okt_schulden = int(data['okt_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nov_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.nov_guthaben = int(data['nov_guthaben'])
 | 
				
			||||||
    nov_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.nov_schulden = int(data['nov_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dez_guthaben = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.dez_guthaben = int(data['dez_guthaben'])
 | 
				
			||||||
    dez_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.dez_schulden = int(data['dez_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    last_schulden = db.Column(db.Integer, nullable=False, default=0)
 | 
					        self.last_schulden = int(data['last_schulden'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    year = db.Column(db.Integer, nullable=False, default=datetime.now().year)
 | 
					        self.year = int(data['year_date'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
 | 
					        self.user_id = int(data['user_id'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.db = geruecht.getDatabesController()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def getSchulden(self):
 | 
					    def getSchulden(self):
 | 
				
			||||||
        """ Get Schulden
 | 
					        """ Get Schulden
 | 
				
			||||||
| 
						 | 
					@ -184,7 +218,8 @@ class CreditList():
 | 
				
			||||||
            self.dez_schulden += amount
 | 
					            self.dez_schulden += amount
 | 
				
			||||||
            retValue = (self.dez_guthaben, self.dez_schulden)
 | 
					            retValue = (self.dez_guthaben, self.dez_schulden)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        db.session.commit()
 | 
					        #db.session.commit()
 | 
				
			||||||
 | 
					        self.db.updateCreditList(self)
 | 
				
			||||||
        LOGGER.debug("Credit and Amount is {}".format(retValue))
 | 
					        LOGGER.debug("Credit and Amount is {}".format(retValue))
 | 
				
			||||||
        return retValue
 | 
					        return retValue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -238,8 +273,8 @@ class CreditList():
 | 
				
			||||||
        elif month == 12:
 | 
					        elif month == 12:
 | 
				
			||||||
            self.dez_guthaben += credit
 | 
					            self.dez_guthaben += credit
 | 
				
			||||||
            retValue = (self.dez_guthaben, self.dez_schulden)
 | 
					            retValue = (self.dez_guthaben, self.dez_schulden)
 | 
				
			||||||
 | 
					        self.db.updateCreditList(self)
 | 
				
			||||||
        db.session.commit()
 | 
					        #db.session.commit()
 | 
				
			||||||
        LOGGER.debug("Credit and Amount is {}".format(retValue))
 | 
					        LOGGER.debug("Credit and Amount is {}".format(retValue))
 | 
				
			||||||
        return retValue
 | 
					        return retValue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,11 @@
 | 
				
			||||||
from geruecht import getLogger
 | 
					from geruecht import getLogger
 | 
				
			||||||
from geruecht import db
 | 
					import geruecht
 | 
				
			||||||
#from geruecht.model.creditList import CreditList
 | 
					from geruecht.model.creditList import CreditList, create_empty_data
 | 
				
			||||||
from datetime import datetime
 | 
					from datetime import datetime
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGGER = getLogger(__name__)
 | 
					LOGGER = getLogger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class User():
 | 
					class User():
 | 
				
			||||||
    """ Database Object for User
 | 
					    """ Database Object for User
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,10 +26,17 @@ class User():
 | 
				
			||||||
        self.dn = data['dn']
 | 
					        self.dn = data['dn']
 | 
				
			||||||
        self.firstname = data['firstname']
 | 
					        self.firstname = data['firstname']
 | 
				
			||||||
        self.lastname = data['lastname']
 | 
					        self.lastname = data['lastname']
 | 
				
			||||||
        self.group = data['group']
 | 
					        self.group = data['gruppe']
 | 
				
			||||||
 | 
					        self.db = geruecht.getDatabesController()
 | 
				
			||||||
 | 
					        self.ldap = geruecht.getLDAPController()
 | 
				
			||||||
 | 
					        self.geruechte = []
 | 
				
			||||||
 | 
					        geruechte = self.db.getCreditListFromUser(self)
 | 
				
			||||||
 | 
					        if type(geruechte) == list:
 | 
				
			||||||
 | 
					            self.geruechte = geruechte
 | 
				
			||||||
 | 
					        elif type(geruechte) == CreditList:
 | 
				
			||||||
 | 
					            self.geruechte.append(geruechte)
 | 
				
			||||||
        #geruechte = db.relationship('CreditList', backref='user', lazy=True)
 | 
					        #geruechte = db.relationship('CreditList', backref='user', lazy=True)
 | 
				
			||||||
    '''
 | 
					
 | 
				
			||||||
    def createGeruecht(self, amount=0, year=datetime.now().year):
 | 
					    def createGeruecht(self, amount=0, year=datetime.now().year):
 | 
				
			||||||
        """ Create Geruecht
 | 
					        """ Create Geruecht
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,10 +51,14 @@ class User():
 | 
				
			||||||
                the created geruecht
 | 
					                the created geruecht
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        LOGGER.debug("Create Geruecht for user {} in year {}".format(self, year))
 | 
					        LOGGER.debug("Create Geruecht for user {} in year {}".format(self, year))
 | 
				
			||||||
        credit = CreditList(user_id=self.id, last_schulden=amount, year=year)
 | 
					        data = create_empty_data()
 | 
				
			||||||
        db.session.add(credit)
 | 
					        data['user_id'] = self.id,
 | 
				
			||||||
        db.session.commit()
 | 
					        data['last_schulden'] = amount,
 | 
				
			||||||
        credit = CreditList.query.filter_by(year=year, user_id=self.id).first()
 | 
					        data['year_date'] = year
 | 
				
			||||||
 | 
					        credit = CreditList(data)
 | 
				
			||||||
 | 
					        self.geruechte.append(credit)
 | 
				
			||||||
 | 
					        self.db.updateCreditList(credit)
 | 
				
			||||||
 | 
					        credit = self.db.getCreditListFromUser(self, year=year)
 | 
				
			||||||
        LOGGER.debug("Created Geruecht {}".format(credit))
 | 
					        LOGGER.debug("Created Geruecht {}".format(credit))
 | 
				
			||||||
        return credit
 | 
					        return credit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,8 +105,7 @@ class User():
 | 
				
			||||||
        geruecht = self.getGeruecht(year=year)
 | 
					        geruecht = self.getGeruecht(year=year)
 | 
				
			||||||
        retVal = geruecht.addAmount(amount, month=month)
 | 
					        retVal = geruecht.addAmount(amount, month=month)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        db.session.add(geruecht)
 | 
					        self.db.updateCreditList(geruecht)
 | 
				
			||||||
        db.session.commit()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.updateGeruecht()
 | 
					        self.updateGeruecht()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -118,8 +129,7 @@ class User():
 | 
				
			||||||
        geruecht = self.getGeruecht(year=year)
 | 
					        geruecht = self.getGeruecht(year=year)
 | 
				
			||||||
        retVal = geruecht.addCredit(credit, month=month)
 | 
					        retVal = geruecht.addCredit(credit, month=month)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        db.session.add(geruecht)
 | 
					        self.db.updateCreditList(geruecht)
 | 
				
			||||||
        db.session.commit()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.updateGeruecht()
 | 
					        self.updateGeruecht()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -138,8 +148,7 @@ class User():
 | 
				
			||||||
                geruecht.last_schulden = 0
 | 
					                geruecht.last_schulden = 0
 | 
				
			||||||
            if index != 0:
 | 
					            if index != 0:
 | 
				
			||||||
                geruecht.last_schulden = (self.geruechte[index - 1].getSchulden() * -1)
 | 
					                geruecht.last_schulden = (self.geruechte[index - 1].getSchulden() * -1)
 | 
				
			||||||
 | 
					            self.db.updateCreditList(geruecht)
 | 
				
			||||||
        db.session.commit()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def sortYear(self, geruecht):
 | 
					    def sortYear(self, geruecht):
 | 
				
			||||||
        """ Sort Year
 | 
					        """ Sort Year
 | 
				
			||||||
| 
						 | 
					@ -154,7 +163,7 @@ class User():
 | 
				
			||||||
                int year of the geruecht
 | 
					                int year of the geruecht
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        return geruecht.year
 | 
					        return geruecht.year
 | 
				
			||||||
    '''
 | 
					
 | 
				
			||||||
    def toJSON(self):
 | 
					    def toJSON(self):
 | 
				
			||||||
        """ Create Dic to dump in JSON
 | 
					        """ Create Dic to dump in JSON
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,10 +179,10 @@ class User():
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return dic
 | 
					        return dic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update(self):
 | 
					    def updateUser(self):
 | 
				
			||||||
        data = ldap.getUserData(self.cn)
 | 
					        data = self.ldap.getUserData(self.cn)
 | 
				
			||||||
        data['group'] = ldap.getGroup(self.cn)
 | 
					        data['group'] = self.ldap.getGroup(self.cn)
 | 
				
			||||||
        db.updateUser(data)
 | 
					        self.db.updateUser(data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def login(self, password):
 | 
					    def login(self, password):
 | 
				
			||||||
        """ Login for the User
 | 
					        """ Login for the User
 | 
				
			||||||
| 
						 | 
					@ -185,13 +194,13 @@ class User():
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        LOGGER.debug("Login User {}".format(self))
 | 
					        LOGGER.debug("Login User {}".format(self))
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            from geruecht import ldapController as ldap
 | 
					            self.ldap.login(self.cn, password)
 | 
				
			||||||
            ldap.login(self.cn, password)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            self.update()
 | 
					            self.updateUser()
 | 
				
			||||||
            return True
 | 
					            return True
 | 
				
			||||||
        except:
 | 
					        except:
 | 
				
			||||||
            return False
 | 
					            return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __repr__(self):
 | 
					    def __repr__(self):
 | 
				
			||||||
        return "User({}, {}, {})".format(self.cn, self.dn, self.group)
 | 
					        return "User({}, {}, {})".format(self.cn, self.dn, self.group)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,11 +1,11 @@
 | 
				
			||||||
from geruecht import app, db, accesTokenController, MONEY, BAR, USER, GASTRO, LOGGER
 | 
					from geruecht import app, db, accesTokenController, MONEY, BAR, USER, GASTRO, LOGGER
 | 
				
			||||||
from geruecht import ldapController as ldap
 | 
					from geruecht import ldapController as ldap
 | 
				
			||||||
from geruecht.model.user import User
 | 
					from geruecht.model.user import User
 | 
				
			||||||
#from geruecht.model.creditList import CreditList
 | 
					 | 
				
			||||||
#from geruecht.model.priceList import PriceList
 | 
					 | 
				
			||||||
from datetime import datetime
 | 
					 | 
				
			||||||
from flask import request, jsonify
 | 
					from flask import request, jsonify
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def login(user, password):
 | 
				
			||||||
 | 
					    return user.login(password)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def verifyAccessToken(token, group):
 | 
					def verifyAccessToken(token, group):
 | 
				
			||||||
    """ Verify Accestoken
 | 
					    """ Verify Accestoken
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,7 @@ def _login():
 | 
				
			||||||
    LOGGER.debug("User is {}".format(user))
 | 
					    LOGGER.debug("User is {}".format(user))
 | 
				
			||||||
    if user:
 | 
					    if user:
 | 
				
			||||||
        LOGGER.debug("Check login for User {}".format(user))
 | 
					        LOGGER.debug("Check login for User {}".format(user))
 | 
				
			||||||
        if user.login(password):
 | 
					        if login(user, password):
 | 
				
			||||||
            token = accesTokenController.createAccesToken(user)
 | 
					            token = accesTokenController.createAccesToken(user)
 | 
				
			||||||
            dic = user.toJSON()
 | 
					            dic = user.toJSON()
 | 
				
			||||||
            dic["token"] = token
 | 
					            dic["token"] = token
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue