예제 #1
0
 def authenticate(self, user_name, pswd):
     """
     Validates the user's credentials. If are valid, returns
     a user object (minus the password hash).
     """
     #login = login.strip()
     #password = password.strip()
     rslt = ldap_auth(user_name,pswd)
     if rslt:
         self.db_session = Activity.createSession('try')
         user = Activity.getUser(self.db_session,user_name)  
         if not user: 
             #user in LDAP but not in our DB
             return
         else:
             del user['password']
             return user
     else :
         #check in our own DB
         self.db_session = Activity.createSession('try')
         user = Activity.getUser(self.db_session,user_name)
         if not user:
             return
         if not self.checkPassword(pswd, user['password']):
             return
         del user['password']
         return user
 def POST(self):
     session = Activity.createSession('try')
     if user_session.get('user')['access_level']==0:
         data  = json.loads(web.data())
         Activity.userIdAdmin(session, data["userid"], data["username"], data["mail"])
         return
     return "Permission Denied"
 def GET(self,params_str):
     params=params_str.split('/')
     session = Activity.createSession('try')
     name = params[0]
     lead = params[1]
     attr =params[2]
     Activity.addTeamJson(session, name, lead, attr)
 def GET(self):
     session = Activity.createSession('try')
     lead_teams = Activity.getLeadTeam(session, user_session.get('user')['name'])
     if lead_teams is None:
         return render.dashboard()
     else:
         return render.dashboard(teams=lead_teams, teamlead = True )
 def POST(self):
     params = json.loads(web.data())
     if params["workload"]=='':
         params["workload"]=1
     if params["weeks"]=='':
         params["weeks"]=0
     session = Activity.createSession('try')
     Activity.addAssignment(session, params["projectID"], params["name"], params["team"], params["personName"],params["start_date"],params["weeks"], params["desc"], workload=params["workload"],predecessor=params["predecessors"])
 def POST(self, param_str):
     params=param_str.split('/')
     session = Activity.createSession('try')
     if user_session.get('user')['access_level'] == 0:
         Activity.deletePersonByAdmin(session, params[0])
         #(session, objectId)   
         return
     else:
         return "Permisson Denied"   
 def GET(self, activityId):
     session = Activity.createSession('try')
     activityType = Activity.getActivityTypeById(session, activityId)
     if activityType == 'Project':
         return web.seeother('/project/'+activityId)
     elif activityType == 'Feature':
         return web.seeother('/feature/'+activityId)
     else:
         return web.seeother('/release/'+activityId)
 def GET(self):
     session = Activity.createSession('try')
     efjira_render = web.template.render("templates/", globals={}).jiramultiselector("efjira")
     jira_render = web.template.render("templates/", globals={}).jiramultiselector("jira")
     render._add_global(efjira_render, "efjira")
     render._add_global(jira_render, "jira")
     if Activity.getLeadTeam(session, user_session.get('user')['name']) is not None or user_session.get('user')['access_level']<=2 :
         return render.features(feature_editable=True)
     else:
         return render.features(feature_editable=False)
def getCostBreakdownJson(parent_id):
    session = Activity.createSession('try')
    costs = Activity.getChildCosts(session, parent_id)
    result = '{"costs": [\n'
    for i in range(len(costs)-1):
        result += '{"name": "' + str(costs[i][0]) + '", "cost": ' + str(costs[i][1]) +', "objectId": '+str(costs[i][2])+ '},\n'
    if len(costs)>0:
        result += '{"name": "' + str(costs[-1][0]) + '", "cost": ' + str(costs[-1][1]) +', "objectId": '+str(costs[-1][2])+ '}'
    result +=']}'
    return result
 def POST(self, param_str):
     session = Activity.createSession('try')
     params = param_str.split('/')
     user = Activity.getAssignmentPersonName(session, params[0])
     #activId = Activity.getAssignmentParent(session, params[0])
     #if(user==user_session.get('user')['name'] or Activity.check_recursive_lead(session, activId, user_session.get('user')['name'])=="true" or user_session.get('user')['access_level']<=2 or 
         #Activity.getLeadTeam(session, user_session.get('user')['name']) is not None ):
     if (user==user_session.get('user')['name'] or user=='' or user=="Unstaffed" or user_session.get('user')['access_level']<=2):
         Activity.updateAssignmentStatus(session, params[0], params[1])
     else:
         return "Permission Denied!"      
 def GET(self, feature):
     session = Activity.createSession('try')
     user = user_session.get('user')
     efjira_render = web.template.render("templates/", globals={}).jiramultiselector("efjira")
     epjira_render = web.template.render("templates/", globals={}).jiramultiselector("epjira")
     jira_render = web.template.render("templates/", globals={}).jiramultiselector("jira")
     render._add_global(efjira_render, "efjira")
     render._add_global(epjira_render, "epjira")
     render._add_global(jira_render, "jira")
     editable = Activity.check_recursive_lead(session, feature, user['name'])=="true" or Activity.getLeadTeam(session, user['name']) is not None or user['access_level']<=2
     return render.feature(feature, editable)
 def POST(self,taskid):
     #check permission
     session = Activity.createSession('try')
     user = Activity.getAssignmentPersonName(session, taskid)
     #activId = Activity.getAssignmentParent(session, taskid)
     #if(user==user_session.get('user')['name'] or Activity.check_recursive_lead(session, activId, user_session.get('user')['name'])=="true" or user_session.get('user')['access_level']<=2 or 
        #Activity.getLeadTeam(session, user_session.get('user')['name']) is not None ):
     if (user==user_session.get('user')['name'] or user=='' or user=="Unstaffed" or user_session.get('user')['access_level']<=2):
         desc = json.loads(web.data())
         Activity.updateAssignmentNote(session, taskid, desc["newContent"])
     else:
         raise PermissionDeny()
 def POST(self, task_id):
     session = Activity.createSession('try')
     user = Activity.getAssignmentPersonName(session, task_id)
     #activId = Activity.getAssignmentParent(session, task_id)
     #if (Activity.check_can_exe_assignment(session, task_id, user_session.get('user')['name']) or
         #user_session.get('user')['name']==user or Activity.check_recursive_lead(session, activId, user_session.get('user')['name'] )=="true" or user_session.get('user')['access_level']<=2 or 
         #Activity.getLeadTeam(session, user_session.get('user')['name']) is not None ):
     if (user==user_session.get('user')['name'] or user=='' or user=="Unstaffed" or user_session.get('user')['access_level']<=2):
         params = json.loads(web.data())
         Activity.forecast_task(session,task_id,forecast_start_date = params["start_date"], forecast_end_date = params["end_date"])
     else :
         return "Permission Denied"
예제 #14
0
 def login(self, user):
     """
     Set the user as logged in.
     """
     record_time = str(datetime.utcnow())
     self.db_session = Activity.createSession('try')
     user = Activity.updateUser(self.db_session,user['objectId'], record_time)
     try:
         del user['password']
     except KeyError:
         pass
     self.session.user = user
     return
 def GET(self,project):
     session = Activity.createSession('try')
     user = user_session.get('user')
     editable = False
     if Activity.check_recursive_lead(session, project, user['name'])=='true' or user['access_level']<=2:
         editable = True
     epjira_render = web.template.render("templates/", globals={}).jiramultiselector("epjira")
     render._add_global(epjira_render, "epjira")
     taskTable_render = web.template.render("templates/", globals={'session':user_session}).taskTable(popLink = "/assignments/" + project)
     render._add_global(taskTable_render,"taskTable")
     gantt_render = web.template.render("templates/", globals={'session':user_session}).ganttChart(popLink = "/assignments/" + project, canEdit = editable, showProj = True)
     render._add_global(gantt_render,"ganttChart")
     return render.project(project, editable)
 def GET(self, release):
     session=Activity.createSession('try')
     feature_editable = False 
     render_jira = web.template.render("templates/", globals={}).jiramultiselector("jira")
     render_efjira = web.template.render("templates/", globals={}).jiramultiselector("efjira")
     render_allocation = web.template.render("templates/", globals={}).allocationtool(release_id=release)
     render._add_global(render_allocation,"allocation_tool")
     render._add_global(render_efjira, "efjira")
     render._add_global(render_jira, "jira")
     if Activity.getLeadTeam(session, user_session.get('user')['name']) is not None or user_session.get('user')['access_level']<=2:
         feature_editable = True
     if user_session.get('user')['access_level']<=2 or Activity.check_recursive_lead(session, release, user_session.get('user')['name'])=='true':
         return render.release(release, True, True)
     else:
         return render.release(release, False, feature_editable)
def getActivityProgressInfo(activity):
    info = {"warning":False, "delaytime":0, "msg":"", "children":0, "delayed":0}
    session = Activity.createSession("try")
    if activity.activity_type == "Release" or activity.activity_type == "Feature":
        query_table = Activity.Activity
        filter_col = Activity.Activity.parent_id
        recursive_func = getActivityProgressInfo
    else:
        query_table = Activity.Assignment
        filter_col = Activity.Assignment.activity_id
        recursive_func = getTaskProgressInfo
    children = session.query(query_table).filter(filter_col == activity.objectId)
    for child in children:
        info["children"] += 1
        if json.loads(recursive_func(child))["warning"]: info["delayed"] += 1
    if info["delayed"] > 0: info["warning"] = True
    session.close()
    return json.dumps(info)
 def POST(self):
     session = Activity.createSession('try')
     web_input = web.input(new_picture={})
     person_profile = {'objectId': web_input['objectId']}
     teams = Activity.getLeadTeam(session, user_session.get('user')['name'])
     rtn_url =  web_input['rtn_url']
     del web_input['rtn_url']
     if web_input.new_picture.filename!='':  #update the profile image
         origin_full_filename="images/profile/origin_"  +web_input.new_picture.filename
         file_ext = web_input.new_picture.filename.split('.')[-1]
         fout = open( origin_full_filename,'wb+') 
         fout.write(web_input.new_picture.file.read())
         fout.close()
         im = Image.open(origin_full_filename)
         thumbnail_file_name= md5(open(origin_full_filename, 'rb').read()).hexdigest() + '.' + file_ext
         im.thumbnail((140,140), Image.ANTIALIAS)
         im.save("images/profile/" + thumbnail_file_name)
         web_input.picture = thumbnail_file_name
         remove(origin_full_filename)
     if user_session.get('user')['access_level'] <=2:   #manager             
         person_profile.update(web_input)
         del person_profile['new_picture']
     elif teams is not None:   #TEAMLEAD
         for team in teams:
             if Activity.check_person_on_team(session, web_input['objectId'], team.objectId) :
                 person_profile['display_name'] = web_input['display_name']
                 person_profile['team'] = web_input['team']
                 person_profile['location'] = web_input['location']
                 person_profile['user_type'] = web_input['user_type']
                 person_profile['email'] = web_input['email']
                 person_profile['name'] = web_input['email'].split('@')[0]
                 break
     if user_session.get('user')['display_name'] == web_input['display_name']:  #person himself
         person_profile['email'] = web_input['email']
         person_profile['name'] = web_input['email'].split('@')[0]
         if 'picture' in web_input.keys():
             person_profile['picture'] = web_input['picture']
         person_profile['mobile_num'] = web_input['mobile_num']
     Activity.editPersonProfile(session, person_profile)
     user_session.user.update(person_profile)
     raise web.seeother(rtn_url)         
 def POST(self, team_name):
     session = Activity.createSession('try')
     if user_session.get('user')['access_level']<=1:
         data  = json.loads(web.data())
         if data["accesslevel"] == '':
             al = 4
         else:
             al = data["accesslevel"]
         Activity.newPerson(session, team=team_name, display_name=data["name"], email=data["email"], position=data["position"], 
                            location=data["location"], user_type=data["user_type"],access_level=al,mobile_num=data["mobile"])
         return
     #check if modified by the team lead
     leadteams = Activity.getLeadTeam(session, user_session.get('user')['name'])
     if leadteams is not None:
         for team in leadteams:
             if team_name==team.name:
                 data  = json.loads(web.data())
                 Activity.newPerson(session, team=team_name, display_name=data["name"], email=data["email"], position=data["position"], 
                                    location=data["location"], user_type=data["user_type"],mobile_num=data["mobile"])
                 return
     return "Permission Denied"
 def GET(self, team):
     session=Activity.createSession('try')
     team_editable = False 
     allocation_render = web.template.render("templates/", globals={}).allocationtool(team_id = team, unstaffed = True)
     render._add_global(allocation_render, "allocation_tool")
     teamTable_render = web.template.render("templates/", globals={'session':user_session}).taskTable(popLink = "/filledassignmentsbyteam/" + team,showAddBtn=False,
                                                                                                      fields=["index", "name", "activity", "person", "start_time", "end_time" ,"status", "description", "operation"],
                                                                                                      reorder=False)
     render._add_global(teamTable_render,"teamTable") 
     if Activity.getLeadTeam(session, user_session.get('user')['name']) is not None:
         tleads = Activity.getTeamLead(session, team)
         for params in tleads:
             if params ==  user_session.get('user')['name']:
                 team_editable = True
     if user_session.get('user')['access_level']<=1 :
         support_render = web.template.render("templates/", globals={}).support(team, True)
         render._add_global(support_render, "support")
         return render.team(team, True)
     else: 
         support_render = web.template.render("templates/", globals={}).support(team, False)
         render._add_global(support_render, "support")
         return render.team(team,team_editable)
 def GET(self, activity_id):
     session = Activity.createSession('try') 
     return Activity.getActivityInfoJson(session, activity_id)
 def GET(self, activity_id):
     session = Activity.createSession('try') 
     return Activity.getChildren(session, activity_id, user_session.get('user')['name'])
 def POST(self):
     params = json.loads(web.data())
     session = Activity.createSession("try")
     return Activity.getFeatureLoad(session, params["numofweeks"], params["startdate"], params["releasetuple"], params["teams"])
 def POST(self):
     params=json.loads(web.data())
     session = Activity.createSession('try')
     return Activity.getAvailable(session,params["startdate"],params["numofweeks"],params["teams"],params["teamname"])
 def POST(self):
     params=json.loads(web.data())
     session = Activity.createSession('try')
     return Activity.getWorkloadFilter(session,params["numofweeks"],params["startdate"],params["releasetuple"],params["teams"])
 def GET(self):
     session = Activity.createSession('try')
     return Activity.getProgramLeads(session)
 def GET(self):
     session = Activity.createSession('try')
     return Activity.getAllLeadsJson(session)
 def GET(self,team):
     session = Activity.createSession('try')
     return Activity.getTeamLeadsJson(session,team)   
 def GET(self, team):
     session = Activity.createSession('try')
     return Activity.getPeopleByTeamJson(session, team)
 def GET(self, teamname):
     session = Activity.createSession('try')
     return SupportTasks.GetSupportTasksByTeam(session, teamname)