예제 #1
0
    def getProfileActivityDictionary(self):
        user = mProject.smallUserDisplay(self.id,
                                         mProject.userNameDisplay(self.firstName,
                                                                  self.lastName,
                                                                  self.affiliation,
                                                                  mProject.isFullLastName(self.groupMembershipBitmask)),
                                         self.imageId)
        user['location_id'] = self.locationId
        user['location'] = self.location
        user['description'] = self.description
        user['is_leader'] = self.isLeader

        data = dict(projects = self.getProjects(),
                    ideas = self.getIdeas(),
                    endorsed_projects = self.getEndorsedProjects(),
                    user = user)

        return data
예제 #2
0
    def getProfileActivityDictionary(self):
        user = mProject.smallUserDisplay(
            self.id,
            mProject.userNameDisplay(
                self.firstName, self.lastName, self.affiliation,
                mProject.isFullLastName(self.groupMembershipBitmask)),
            self.imageId)
        user['location_id'] = self.locationId
        user['location'] = self.location
        user['description'] = self.description
        user['is_leader'] = self.isLeader

        data = dict(projects=self.getProjects(),
                    ideas=self.getIdeas(),
                    endorsed_projects=self.getEndorsedProjects(),
                    user=user)

        return data
예제 #3
0
    def getEndorsedProjects(self):
        betterData = []

        try:
            sql = """select p.project_id,
                        p.title,
                        p.description,
                        p.image_id,
                        p.location_id,
                        o.user_id as owner_user_id,
                        o.first_name as owner_first_name,
                        o.last_name as owner_last_name,
                        o.affiliation as owner_affiliation,
                        o.group_membership_bitmask as owner_group_membership_bitmask,
                        o.image_id as owner_image_id,
                    (select count(cpu.user_id) from project__user cpu where cpu.project_id = p.project_id) as num_members
                from project p
                inner join project_endorsement pe on pe.project_id = p.project_id and pe.user_id = $id
                inner join project__user pu on pu.project_id = p.project_id and pu.is_project_creator = 1
                inner join user o on o.user_id = pu.user_id
                 where p.is_active = 1"""
            data = list(self.db.query(sql, {'id': self.id}))

            for item in data:
                betterData.append(
                    dict(project_id=item.project_id,
                         title=item.title,
                         description=item.description,
                         image_id=item.image_id,
                         location_id=item.location_id,
                         owner=mProject.smallUserDisplay(
                             item.owner_user_id,
                             mProject.userNameDisplay(
                                 item.owner_first_name, item.owner_last_name,
                                 item.owner_affiliation,
                                 mProject.isFullLastName(
                                     item.owner_group_membership_bitmask)),
                             item.owner_image_id),
                         num_members=item.num_members))
        except Exception, e:
            log.info("*** couldn't get user endorsed projects")
            log.error(e)
예제 #4
0
def authGetUser(db, email, password):
    sql = "select user_id, first_name, last_name, affiliation, group_membership_bitmask, image_id, email, password, salt from user where email = $email and is_active = 1"
    data = db.query(sql, {'email':email})

    if (len(data) > 0):
        user = list(data)[0]
        hashed_password = makePassword(password, user.salt)

        if (hashed_password[0] == user.password):
            log.info("*** User authenticated")
            return mProject.smallUserDisplay(user.user_id,
                                             mProject.userNameDisplay(user.first_name,
                                                                      user.last_name,
                                                                      user.affiliation,
                                                                      mProject.isFullLastName(user.group_membership_bitmask)),
                                             user.image_id)
        else:
            log.warning("*** User not authenticated for email = %s" % email)
            return None
    else:
        log.warning("*** No record for email= %s" % email)
        return None
예제 #5
0
    def getEndorsedProjects(self):
        betterData = []

        try:
            sql = """select p.project_id,
                        p.title,
                        p.description,
                        p.image_id,
                        p.location_id,
                        o.user_id as owner_user_id,
                        o.first_name as owner_first_name,
                        o.last_name as owner_last_name,
                        o.affiliation as owner_affiliation,
                        o.group_membership_bitmask as owner_group_membership_bitmask,
                        o.image_id as owner_image_id,
                    (select count(cpu.user_id) from project__user cpu where cpu.project_id = p.project_id) as num_members
                from project p
                inner join project_endorsement pe on pe.project_id = p.project_id and pe.user_id = $id
                inner join project__user pu on pu.project_id = p.project_id and pu.is_project_creator = 1
                inner join user o on o.user_id = pu.user_id
                 where p.is_active = 1"""
            data  = list(self.db.query(sql, { 'id': self.id }))

            for item in data:
                betterData.append(dict(project_id = item.project_id,
                                        title = item.title,
                                        description = item.description,
                                        image_id = item.image_id,
                                        location_id = item.location_id,
                                        owner = mProject.smallUserDisplay(item.owner_user_id,
                                                                          mProject.userNameDisplay(item.owner_first_name,
                                                                                                   item.owner_last_name,
                                                                                                   item.owner_affiliation,
                                                                                                   mProject.isFullLastName(item.owner_group_membership_bitmask)),
                                                                 item.owner_image_id),
                                        num_members = item.num_members))
        except Exception,e:
            log.info("*** couldn't get user endorsed projects")
            log.error(e)
예제 #6
0
def authGetUser(db, email, password):
    sql = "select user_id, first_name, last_name, affiliation, group_membership_bitmask, image_id, email, password, salt from user where email = $email and is_active = 1"
    data = db.query(sql, {'email': email})

    if (len(data) > 0):
        user = list(data)[0]
        hashed_password = makePassword(password, user.salt)

        if (hashed_password[0] == user.password):
            log.info("*** User authenticated")
            return mProject.smallUserDisplay(
                user.user_id,
                mProject.userNameDisplay(
                    user.first_name, user.last_name, user.affiliation,
                    mProject.isFullLastName(user.group_membership_bitmask)),
                user.image_id)
        else:
            log.warning("*** User not authenticated for email = %s" % email)
            return None
    else:
        log.warning("*** No record for email= %s" % email)
        return None