2020-01-18 22:31:49 +00:00
from flask import Blueprint , request , jsonify
from datetime import datetime
2020-01-19 08:07:45 +00:00
import geruecht . controller . userController as uc
2020-03-04 20:11:41 +00:00
import geruecht . controller . ldapController as lc
2020-01-19 08:07:45 +00:00
from geruecht . decorator import login_required
2020-03-04 20:11:41 +00:00
from geruecht . model import MONEY , GASTRO , VORSTAND
2020-03-10 08:19:11 +00:00
from geruecht . logger import getDebugLogger , getJobsLogger
debug = getDebugLogger ( )
jobL = getJobsLogger ( )
2020-01-18 22:31:49 +00:00
vorstand = Blueprint ( " vorstand " , __name__ )
2020-01-19 08:07:45 +00:00
userController = uc . UserController ( )
2020-03-04 20:11:41 +00:00
ldap = lc . LDAPController ( )
2020-01-19 08:07:45 +00:00
2020-03-03 21:33:47 +00:00
@vorstand.route ( ' /um/setStatus ' , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-03-03 21:33:47 +00:00
def _setStatus ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /um/setStatus " )
2020-03-03 21:33:47 +00:00
try :
data = request . get_json ( )
name = data [ ' name ' ]
retVal = userController . setStatus ( name )
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
2020-03-03 21:33:47 +00:00
return jsonify ( retVal )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-03 21:33:47 +00:00
return jsonify ( { " error " : str ( err ) } ) , 500
@vorstand.route ( ' /um/updateStatus ' , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-03-03 21:33:47 +00:00
def _updateStatus ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /um/updateStatus " )
2020-03-03 21:33:47 +00:00
try :
data = request . get_json ( )
retVal = userController . updateStatus ( data )
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
2020-03-03 21:33:47 +00:00
return jsonify ( retVal )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-03 21:33:47 +00:00
return jsonify ( { " error " : str ( err ) } ) , 500
@vorstand.route ( ' /um/deleteStatus ' , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-03-03 21:33:47 +00:00
def _deleteStatus ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /um/deleteStatus " )
2020-03-03 21:33:47 +00:00
try :
data = request . get_json ( )
userController . deleteStatus ( data )
2020-03-10 08:19:11 +00:00
debug . debug ( " return ok " )
2020-03-03 21:33:47 +00:00
return jsonify ( { " ok " : " ok " } )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-03 21:33:47 +00:00
return jsonify ( { " error " : str ( err ) } ) , 409
@vorstand.route ( ' /um/updateStatusUser ' , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-03-03 21:33:47 +00:00
def _updateStatusUser ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /um/updateStatusUser " )
2020-03-03 21:33:47 +00:00
try :
data = request . get_json ( )
username = data [ ' username ' ]
status = data [ ' status ' ]
retVal = userController . updateStatusOfUser ( username , status ) . toJSON ( )
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
2020-03-03 21:33:47 +00:00
return jsonify ( retVal )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-03 21:33:47 +00:00
return jsonify ( { " error " : str ( err ) } ) , 500
@vorstand.route ( ' /um/updateVoting ' , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-03-03 21:33:47 +00:00
def _updateVoting ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /um/updateVoting " )
2020-03-03 21:33:47 +00:00
try :
data = request . get_json ( )
username = data [ ' username ' ]
voting = data [ ' voting ' ]
retVal = userController . updateVotingOfUser ( username , voting ) . toJSON ( )
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
2020-03-03 21:33:47 +00:00
return jsonify ( retVal )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-03 21:33:47 +00:00
return jsonify ( { " error " : str ( err ) } ) , 500
2020-01-18 22:31:49 +00:00
@vorstand.route ( " /sm/addUser " , methods = [ ' POST ' , ' GET ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-01-19 20:32:58 +00:00
def _addUser ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /sm/addUser " )
try :
data = request . get_json ( )
user = data [ ' user ' ]
day = data [ ' day ' ]
month = data [ ' month ' ]
year = data [ ' year ' ]
date = datetime ( year , month , day , 12 )
retVal = userController . addWorker ( user [ ' username ' ] , date )
debug . debug ( " retrun {{ }} " . format ( retVal ) )
userl = userController . getUser ( user )
jobL . info ( " Vorstand {} {} schreibt Mitglied {} {} am {} zum Dienst ein " . format ( kwargs [ ' accToken ' ] . user . firstname , kwargs [ ' accToken ' ] . user . lastname , userl . firstname , userl . lastname , date . date ( ) ) )
return jsonify ( retVal )
except Exception as err :
debug . debug ( " exception " , exc_info = True )
return jsonify ( { " error " : str ( err ) } ) , 500
2020-01-19 20:32:58 +00:00
@vorstand.route ( " /sm/getUser " , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-01-19 20:32:58 +00:00
def _getUser ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /sm/getUser " )
try :
data = request . get_json ( )
day = data [ ' day ' ]
month = data [ ' month ' ]
year = data [ ' year ' ]
date = datetime ( year , month , day , 12 )
lockedDay = userController . getLockedDay ( date )
if not lockedDay :
lockedDay = {
' date ' : {
' year ' : year ,
' month ' : month ,
' day ' : day
} ,
' locked ' : False
}
else :
lockedDay = {
' date ' : {
' year ' : year ,
' month ' : month ,
' day ' : day
} ,
' locked ' : lockedDay [ ' locked ' ]
}
retVal = {
' worker ' : userController . getWorker ( date ) ,
' day ' : lockedDay
2020-02-23 21:31:22 +00:00
}
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
return jsonify ( retVal )
except Exception as err :
debug . debug ( " exception " , exc_info = True )
return jsonify ( { " error " : str ( err ) } ) , 500
2020-01-18 22:31:49 +00:00
2020-01-19 20:32:58 +00:00
@vorstand.route ( " /sm/deleteUser " , methods = [ ' POST ' ] )
2020-03-05 20:24:32 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-01-19 20:32:58 +00:00
def _deletUser ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /sm/deletUser " )
try :
data = request . get_json ( )
user = data [ ' user ' ]
day = data [ ' day ' ]
month = data [ ' month ' ]
year = data [ ' year ' ]
date = datetime ( year , month , day , 12 )
userController . deleteWorker ( user [ ' username ' ] , date )
debug . debug ( " return ok " )
user = userController . getUser ( user )
jobL . info ( " Vorstand {} {} entfernt Mitglied {} {} am {} vom Dienst " . format ( kwargs [ ' accToken ' ] . user . firstname , kwargs [ ' accToken ' ] . user . lastname , user . firstname , user . lastname , date . date ( ) ) )
return jsonify ( { " ok " : " ok " } )
except Exception as err :
debug . debug ( " exception " , exc_info = True )
return jsonify ( { " error " : str ( err ) } ) , 500
2020-02-24 11:19:52 +00:00
@vorstand.route ( " /sm/lockDay " , methods = [ ' POST ' ] )
2020-03-04 20:11:41 +00:00
@login_required ( groups = [ MONEY , GASTRO , VORSTAND ] )
2020-02-24 11:19:52 +00:00
def _lockDay ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /sm/lockDay " )
2020-02-24 11:19:52 +00:00
try :
data = request . get_json ( )
year = data [ ' year ' ]
month = data [ ' month ' ]
day = data [ ' day ' ]
locked = data [ ' locked ' ]
date = datetime ( year , month , day , 12 )
lockedDay = userController . setLockedDay ( date , locked , True )
if not lockedDay :
retVal = {
' date ' : {
' year ' : year ,
' month ' : month ,
' day ' : day
} ,
' locked ' : False
}
else :
retVal = {
' date ' : {
' year ' : year ,
' month ' : month ,
' day ' : day
} ,
' locked ' : lockedDay [ ' locked ' ]
}
2020-03-10 08:19:11 +00:00
debug . debug ( " return {{ }} " . format ( retVal ) )
2020-02-24 11:19:52 +00:00
return jsonify ( retVal )
except Exception as err :
2020-03-10 08:19:11 +00:00
debug . debug ( " exception " , exc_info = True )
2020-03-04 20:11:41 +00:00
return jsonify ( { ' error ' : err } ) , 409
@vorstand.route ( " /sm/searchWithExtern " , methods = [ ' GET ' ] )
@login_required ( groups = [ VORSTAND ] )
def _search ( * * kwargs ) :
2020-03-10 08:19:11 +00:00
debug . info ( " /sm/searchWithExtern " )
try :
retVal = ldap . getAllUser ( )
debug . debug ( " return {{ }} " . format ( retVal ) )
return jsonify ( retVal )
except Exception as err :
debug . debug ( " exception " , exc_info = True )
return jsonify ( { " error " : str ( err ) } ) , 500