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"
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)