class checklists_kb(db.Model): id = db.Column(db.Integer, primary_key=True) question_pre_ID = db.Column(db.Integer) question_sprint_ID = db.Column(db.Integer) codeID_php = db.Column(db.Integer) codeID_asp = db.Column(db.Integer) codeID_java = db.Column(db.Integer) codeID_python = db.Column(db.Integer) include_always = db.Column(db.Boolean) include_first = db.Column(db.Boolean) checklistID = db.Column(db.String, db.ForeignKey("checklists.checklistID")) checklist_items = db.relationship( "checklists", primaryjoin="and_(checklists_kb.checklistID==checklists.checklistID," "checklists_kb.kbID==checklists.kbID)") kbID = db.Column(db.Integer, db.ForeignKey("kb_items.kbID")) kb_items = db.relationship("kb_items", foreign_keys=[kbID]) def __init__(self, checklistID, checklist, kbID, kb_items): self.question_pre_ID = 0 self.question_sprint_ID = 0 self.codeID_php = 0 self.codeID_asp = 0 self.codeID_java = 0 self.codeID_python = 0 self.include_always = False self.include_first = False self.checklistID = checklistID self.checklist_items = checklist self.kbID = kbID self.kb_items = kb_items
class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) privilege_id = db.Column(db.Integer, db.ForeignKey('privileges.id'), nullable=False) privilege = db.relationship("Privilege", backref=db.backref('users')) accessToken = db.Column(db.Integer, unique=True, nullable=False) username = db.Column(db.String(255), nullable=True, unique=True) password = db.Column(db.Text, nullable=True) access = db.Column(db.Boolean, nullable=False) activated = db.Column(db.Boolean, nullable=False) email = db.Column(db.String(255), nullable=False, unique=True) groups = db.relationship('Group', back_populates='members') #group = db.relationship('GroupMember', back_populates='member') def __init__(self, email, accessToken='', username='', password='', access=False, activated=False): self.accessToken = accessToken self.username = username self.password = password self.access = access self.activated = activated self.email = email def __repr__(self): return "<User> {}| {} activated:{} access:{} email:{}>)".format( self.id, self.username, self.activated, self.access, self.email)
class ChecklistKB(db.Model): __tablename__ = 'checklists_kb' id = db.Column(db.Integer, primary_key=True) checklist_id = db.Column(db.String(255), nullable=False) content = db.Column(db.Text) cwe = db.Column(db.Integer) maturity = db.Column(db.Integer, nullable=True) question_id = db.Column(db.Integer, db.ForeignKey('questions.id'), nullable=True) questions = db.relationship("Question", backref=db.backref('checklist_kb')) include_always = db.Column(db.Boolean) kb_id = db.Column(db.Integer, db.ForeignKey("kb_items.kb_id"), nullable=True) kb_items = db.relationship("KBItem", backref=db.backref('checklist_kb')) checklist_type = db.Column(db.Integer, nullable=False) def __init__(self, checklist_id, content, checklist_type, include_always, cwe, maturity): self.include_always = include_always self.checklist_id = checklist_id self.checklist_type = checklist_type self.content = content self.cwe = cwe self.maturity = maturity
class Comment(db.Model): __tablename__ = "comments" id = db.Column(db.Integer, primary_key=True) sprint_id = db.Column(db.Integer, db.ForeignKey('project_sprints.id'), nullable=False) sprint = db.relationship('ProjectSprint', backref=db.backref('comments')) checklist_id = db.Column(db.Integer, db.ForeignKey("checklists_kb.id"), nullable=False) checklist = db.relationship('ChecklistKB', backref=db.backref('commments')) status = db.Column(db.Integer, nullable=False) comment = db.Column(db.Text) date = db.Column(db.Integer, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) user = db.relationship("User", backref=db.backref("comments")) def __init__(self, status, comment, date): self.status = status self.comment = comment self.date = date
class QuestionResult(db.Model): __tablename__ = 'question_results' id = db.Column(db.Integer, primary_key=True) project_id = db.Column(db.Integer, db.ForeignKey("projects.id")) project = db.relationship("Project", backref=db.backref('question_results')) sprint_id = db.Column(db.Integer, db.ForeignKey("project_sprints.id")) sprint = db.relationship("ProjectSprint", backref=db.backref('question_results')) question_id = db.Column(db.Integer, db.ForeignKey('questions.id')) question = db.relationship("Question", backref=db.backref('question_result'), uselist=False) result = db.Column(db.Text) checklist_type = db.Column(db.Integer) def __init__(self, result, checklist_type): self.result = result self.checklist_type = checklist_type
class checklists_kb(db.Model): id = db.Column(db.Integer, primary_key=True) question_ID = db.Column(db.Integer) question_ID = db.Column(db.Integer) include_always = db.Column(db.String) checklistID = db.Column(db.String) content = db.Column(db.String) kbID = db.Column(db.Integer, db.ForeignKey("kb_items.kbID")) kb_items = db.relationship("kb_items", foreign_keys=[kbID]) question_ID = db.Column(db.Integer, db.ForeignKey("questions.id")) questions = db.relationship("questions", foreign_keys=[question_ID]) checklist_type = db.Column(db.Integer) cwe = db.Column(db.Integer) def __init__(self, checklistID, content, kbID, checklist_type, include_always, question_ID, cwe): self.question_ID = question_ID self.include_always = include_always self.checklistID = checklistID self.checklist_type = checklist_type self.content = content self.kbID = kbID self.cwe = cwe
class checklists_kb(db.Model): id = db.Column(db.Integer, primary_key=True) question_pre_ID = db.Column(db.Integer) question_sprint_ID = db.Column(db.Integer) codeID_php = db.Column(db.Integer) codeID_asp = db.Column(db.Integer) codeID_java = db.Column(db.Integer) codeID_python = db.Column(db.Integer) include_always = db.Column(db.Boolean) include_first = db.Column(db.Boolean) checklistID = db.Column(db.String, db.ForeignKey("checklists.checklistID")) checklist_items = db.relationship("checklists", foreign_keys=[checklistID]) kbID = db.Column(db.Integer, db.ForeignKey("kb_items.kbID")) kb_items = db.relationship("kb_items", foreign_keys=[kbID])
class Group(db.Model): __tablename__ = 'groups' id = db.Column(db.Integer, primary_key=True) owner_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) owner = db.relationship('User', backref=db.backref("owned_groups"), uselist=False) groupName = db.Column(db.String(255), nullable=False) members = db.relationship('User', secondary=GroupMember, back_populates='groups') timestamp = db.Column(db.Text) def __init__(self, groupName, timestamp): self.groupName = groupName self.timestamp = timestamp
class checklists_post(db.Model): id = db.Column(db.Integer, primary_key=True) checklistID = db.Column(db.Integer) projectID = db.Column(db.Integer) sprintID = db.Column(db.Integer) status = db.Column(db.Integer) checklistID = db.Column(db.String, db.ForeignKey("checklists.checklistID")) checklist_items = db.relationship("checklists", foreign_keys=[checklistID]) kbID = db.Column(db.Integer, db.ForeignKey("kb_items.kbID")) kb_items = db.relationship("kb_items", foreign_keys=[kbID]) def __init__(self, checklistID, projectID, sprintID, status, kbID): self.checklistID = checklistID self.projectID = projectID self.sprintID = sprintID self.status = status self.kbID = kbID
class ChecklistResult(db.Model): __tablename__ = 'checklists_results' id = db.Column(db.Integer, primary_key=True) checklist_id = db.Column(db.Integer, db.ForeignKey('checklists_kb.id'), nullable=True) checklist_item = db.relationship("ChecklistKB", backref=db.backref('')) project_id = db.Column(db.Integer, db.ForeignKey('projects.id'), nullable=True) project = db.relationship("Project", backref=db.backref('')) sprint_id = db.Column(db.Integer, db.ForeignKey('project_sprints.sprint_id'), nullable=True) sprint = db.relationship("ProjectSprint", backref=db.backref('')) status = db.Column(db.Integer, nullable=True) kb_id = db.Column(db.Integer, db.ForeignKey("kb_items.kb_id"), nullable=True) kb_items = db.relationship("KBItem", backref=db.backref('')) checklist_type_id = db.Column(db.Integer, db.ForeignKey("checklist_types.id")) checklist_type = db.relationship('ChecklistType', backref=db.backref("")) def __init__(self, status): self.status = status
class ProjectSprint(db.Model): __tablename__ = "project_sprints" sprint_id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) description = db.Column(db.Text) group_id = db.Column(db.Integer, db.ForeignKey("groups.id")) group = db.relationship('Group', backref=db.backref("sprints")) project_id = db.Column(db.Integer, db.ForeignKey("projects.id")) project = db.relationship('Project', backref=db.backref("sprints")) checklist_type_id = db.Column(db.Integer, db.ForeignKey("checklist_types.id")) checklist_type = db.relationship('ChecklistType', backref=db.backref("sprints")) def __init__(self, name, description): self.name = name self.description = description
class ChecklistKBCodeItem(db.Model): __tablename__ = 'checklist_kb_code_item' id = db.Column(db.Integer, primary_key=True) checklist_kb_id = db.Column(db.Integer, db.ForeignKey("checklists_kb.id"), nullable=False) checklists_kb_items = db.relationship( "ChecklistKB", backref=db.backref('checklist_kb_code_item')) code_items_id = db.Column(db.Integer, db.ForeignKey("code_items.id"), nullable=False) code_items = db.relationship("CodeItem", backref=db.backref('checklist_kb_code_item')) def __init__(self, checklist_kb_id, code_items_id): self.checklist_kb_id = checklist_kb_id self.code_items_id = code_items_id
class KBItem(db.Model): __tablename__ = 'kb_items' kb_id = db.Column(db.Integer, primary_key=True, autoincrement=False) title = db.Column(db.Text) content = db.Column(db.Text) checklist_category_id = db.Column(db.Integer, db.ForeignKey("checklist_category.id"), nullable=True) checklist_category = db.relationship("ChecklistCategory", backref=db.backref('kb_items')) def __init__(self, title, content, kb_id): self.kb_id = kb_id self.title = title self.content = content
class ChecklistType(db.Model): __tablename__ = 'checklist_types' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text, nullable=False) description = db.Column(db.Text, nullable=False) visibility = db.Column(db.Boolean, nullable=False) checklist_category_id = db.Column(db.Integer, db.ForeignKey("checklist_category.id"), nullable=True) checklist_category = db.relationship("ChecklistCategory", backref=db.backref('checklist_types')) def __init__(self, name, description, visibility): self.name = name self.description = description self.visibility = visibility
class CodeItem(db.Model): __tablename__ = 'code_items' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text, nullable=False) content = db.Column(db.Text, nullable=False) code_lang = db.Column(db.Text, nullable=False) checklist_category_id = db.Column(db.Integer, db.ForeignKey("checklist_category.id"), nullable=True) checklist_category = db.relationship("ChecklistCategory", backref=db.backref('code_items')) def __init__(self, content, title, lang): self.content = content self.title = title self.code_lang = lang
class comments(db.Model): id = db.Column(db.Integer, primary_key=True) sprintID = db.Column(db.Integer) checklistID = db.Column(db.Integer) userID = db.Column(db.Integer) status = db.Column(db.Integer) comment = db.Column(db.Text) date = db.Column(db.Integer) userID = db.Column(db.String, db.ForeignKey("users.userID")) user_items = db.relationship("users", foreign_keys=[userID]) def __init__(self, sprintID, checklistID, userID, status, comment, date): self.sprintID = sprintID self.checklistID = checklistID self.userID = userID self.status = status self.comment = comment self.date = date
class Log(db.Model): __tablename__ = 'logs' id = db.Column(db.Integer, primary_key=True) date = db.Column(db.Integer, nullable=False) time = db.Column(db.Integer, nullable=False) threat = db.Column(db.Text, nullable=False) ip = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False) user = db.relationship('User', backref=db.backref("logs")) message = db.Column(db.Text, nullable=False) status = db.Column(db.Text, nullable=False) def __init__(self, date, time, threat, ip, message, status, user_id): self.date = date self.time = time self.threat = threat self.ip = ip self.message = message self.status = status self.user_id = user_id