예제 #1
0
파일: Project.py 프로젝트: wajones98/fyp
 def remove_project(user_id, project_id, email):
     query = f"""
             SELECT 
                 [creator]
             FROM
                 [prj].[project]
             WHERE
                 [ProjectId] = '{project_id}'
             """
     conn = Database.connect()
     cursor = conn.cursor()
     results = Database.execute_query(query, cursor)
     conn.close()
     if user_id == results[0][0]:
         remove_member = User.get_user_from_email(email)
         if remove_member is not None:
             query = """
                     [prj].[RemoveProject] @UserId = ?, @ProjectId = ?
                     """
             params = (user_id, project_id)
             conn = Database.connect()
             cursor = conn.cursor()
             results = Database.execute_sproc(query, params, cursor)
             if results['Status'] == 201:
                 cursor.commit()
             conn.close()
             return results
         else:
             return {'Status': 400, 'Message': 'There is no account associated with this email'}
     else:
         return {'Status': 400, 'Message':'This user is not the owner of the project'}
예제 #2
0
파일: Project.py 프로젝트: wajones98/fyp
    def invite_to_project(project_info):
        query = """
                [prj].[InviteUserToProject] @UserId = ?, @ProjectId = ?
                """
        user_id = User.get_user_from_email(project_info['Email'])

        if user_id is not None:
            project_id = project_info['ProjectId']
            params = (user_id, project_id)
            conn = Database.connect()
            cursor = conn.cursor()
            results = Database.execute_sproc(query, params, cursor)
            if results['Status'] == 201:
                cursor.commit()
            conn.close()
        else:
            results = {'Status': 404, 'Message': 'This email does not have a registered account'}
        return results
예제 #3
0
 def invite_member(user_id, invitation_info):
     user = User.get_user_info(user_id)
     if user.get_institution() is not None:
         invited_user_id = User.get_user_from_email(invitation_info['Email'])
         if invited_user_id is not None:
             if user.get_institution() not in Institution.get_all_pending(invited_user_id):
                 query = f"""
                             [usr].[InviteUserToInstitution] ?, ?, ?
                         """
                 params = (invited_user_id, user.get_institution(), invitation_info['Role'])
                 conn = Database.connect()
                 cursor = conn.cursor()
                 results = Database.execute_sproc(query, params, cursor)
                 if results['Status'] == 201:
                     cursor.commit()
                 conn.close()
                 return results
             else:
                 return {'Status': 400, 'Message': 'This account has already been invited'}
         else:
             return {'Status': 400, 'Message': 'There is no account associated with this email'}
     else:
         return {'Status': 400, 'Message': 'User not part of institution'}
예제 #4
0
 def remove_member(user_id, email):
     user = User.get_user_info(user_id)
     if user.get_institution() is not None:
         institution = Institution.get_institution(user.get_institution())
         if institution.get_owner() == user_id:
             remove_user_id = User.get_user_from_email(email)
             if remove_user_id is not None:
                 query = f"""
                         [usr].[RemoveUserFromInstitution] ?, ?
                         """
                 params = (remove_user_id, user.get_institution())
                 conn = Database.connect()
                 cursor = conn.cursor()
                 results = Database.execute_sproc(query, params, cursor)
                 if results['Status'] == 200:
                     cursor.commit()
                 conn.close()
                 return results
             else:
                 return {'Status': 400, 'Message': 'There is no account associated with this email'}
         else:
             return {'Status': 400, 'Message': 'User is not owner of institution'}
     else:
         return {'Status': 400, 'Message': 'User not part of institution'}
예제 #5
0
파일: Project.py 프로젝트: wajones98/fyp
    def get_users_projects(user_id):
        query = f"""
            SELECT
                p.[ProjectID]
                ,p.[Name]
                ,p.[Desc]
                ,u.[Email]
                ,p.[StartDate]
                ,p.[EndDate]
                ,p.[Public]
            FROM 
                [MetaData].[prj].[Project] p
                INNER JOIN
                [MetaData].[usr].[User] u
            ON
                p.[Creator] = u.[UserID]
                LEFT JOIN
                [MetaData].[prj].[ProjectMember] pm
            ON
                p.[ProjectID] = pm.[ProjectID]
            WHERE
                pm.[Pending] = 0
                AND
                pm.[UserID] = '{user_id}'
                OR
                p.[Creator] = '{user_id}'
            """
        conn = Database.connect()
        cursor = conn.cursor()
        results = Database.execute_query(query, cursor)
        projects = []
        for row in results:
            project = Project()
            project.set_project_id(row[0])
            project.set_name(row[1])
            project.set_desc(row[2])
            project.set_creator(row[3])
            project.set_start_date(row[4])
            project.set_end_date(row[5])
            project.set_public(row[6])
            query = f"""
                    SELECT
                        u.[Email],
                        pm.[Pending]
                    FROM
                        [MetaData].[prj].[ProjectMember] pm	
                        INNER JOIN
                        [MetaData].[usr].[User] u
                    ON
                        pm.[UserId] = u.[UserID]
                    WHERE
                        [ProjectID] = '{project.get_project_id()}'
                    """
            cursor = conn.cursor()
            results = Database.execute_query(query, cursor)
            members = []
            for member_row in results:
                user_id = User.get_user_from_email(member_row[0])
                user = User.get_user_info(user_id)
                user.user['pending'] = member_row[1]
                members.append(user.user)
            project.set_project_members(members)



            projects.append(project.project)
        conn.close()
        response = {'Projects': projects}
        return json.dumps(response)