def decrease_order(self): """ Decreases the order of this MenuItem """ db = Database() if self.get_menu_id() is not None: stmnt = "SELECT MAX(MNI_ORDER) AS NEWORDER FROM MENUITEMS WHERE MNI_MNU_ID = ? AND MNI_ORDER < ? ;" cur = db.query(stmnt, (self.get_menu_id(), self.get_order())) row = cur.fetchonemap() if row is not None: if row["NEWORDER"] is None: return temp_order = self.get_order() stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ORDER = ? AND MNI_MNU_ID = ? ;" db.query(stmnt, (temp_order, row["NEWORDER"], self.get_menu_id()),commit=True) stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ID = ? ;" db.query(stmnt, (row["NEWORDER"], self.get_id()),commit=True) db.commit() PokeManager.add_activity(ActivityType.MENU) elif self.get_parent_menu_item_id() is not None: stmnt = "SELECT MAX(MNI_ORDER) AS NEWORDER FROM MENUITEMS WHERE MNI_MNI_ID = ? AND MNI_ORDER < ? ;" cur = db.query(stmnt, (self.get_parent_menu_item_id(), self.get_order())) row = cur.fetchonemap() if row is not None: if row["NEWORDER"] is None: return temp_order = self.get_order() stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ORDER = ? AND MNI_MNI_ID = ? ;" db.query(stmnt, (temp_order, row["NEWORDER"], self.get_parent_menu_item_id()),commit=True) stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ID = ? ;" db.query(stmnt, (row["NEWORDER"], self.get_id()),commit=True) db.commit() PokeManager.add_activity(ActivityType.MENU)
def delete(self): """ deletes this session """ db = Database() stmnt = "DELETE FROM SESSIONS WHERE SES_ID = ? ;" db.query(stmnt,(self._id,),commit=True)
def assign_to(self,user): """ Assigns this role to a user """ session_user = Session.get_current_session_user() db = Database() #check if sessionuser has role has_role = session_user.has_role(self) stmnt = "SELECT COUNT(URI_RIG_ID) AS CNT FROM USERRIGHTS WHERE URI_RIG_ID IN \ (SELECT RRI_RIG_ID FROM ROLERIGHTS WHERE RRI_ROL_ID = ? ) ;" cur = db.query(stmnt,(self._id,)) res = cur.fetchone()[0] has_all_permissions_of_role = res == len(self.get_permissions()) if not has_role and not has_all_permissions_of_role: raise PermissionException(PermissionException.get_msg(7)) for role in user.get_grantable_roles(): if role["name"] == self._name: stmnt = "UPDATE OR INSERT INTO USERROLES (URO_USR_ID, URO_ROL_ID) \ VALUES (?,?) MATCHING (URO_USR_ID, URO_ROL_ID) ;"; db.query(stmnt, (user.get_id(),self._id),commit=True) PokeManager.add_activity(ActivityType.USER) return raise PermissionException(PermissionException.get_msg(8))
def move_to_bottom_order(self): """ Moves this menuitem to the bottom-order """ db = Database() if self.get_menu_id() is not None: stmnt = "SELECT MIN(MNI_ORDER) AS NEWORDER FROM MENUITEMS WHERE MNI_MNU_ID = ? ;" cur = db.query(stmnt, (self.get_menu_id(),)) row = cur.fetchonemap() if row is not None: if row["NEWORDER"] is None: return temp_order = self.get_order() stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ORDER = ? AND MNI_MNU_ID = ? ;" db.query(stmnt, (temp_order, row["NEWORDER"], self.get_menu_id()),commit=True) stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ID = ? ;" db.query(stmnt, (row["NEWORDER"], self.get_id()),commit=True) db.commit() PokeManager.add_activity(ActivityType.MENU) elif self.get_parent_menu_item_id() is not None: stmnt = "SELECT MIN(MNI_ORDER) AS NEWORDER, MNI_ID FROM MENUITEMS WHERE MNI_MNI_ID = ? ;" cur = db.query(stmnt, (self.get_parent_menu_item_id(),)) row = cur.fetchonemap() if row is not None: if row["NEWORDER"] is None: return temp_order = self.get_order() stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ORDER = ? AND MNI_MNI_ID = ? ;" db.query(stmnt, (temp_order, row["NEWORDER"], self.get_parent_menu_item_id()),commit=True) stmnt = "UPDATE MENUITEMS SET MNI_ORDER = ? WHERE MNI_ID = ? ;" db.query(stmnt, (row["NEWORDER"], self.get_id()),commit=True) db.commit() PokeManager.add_activity(ActivityType.MENU)
def delete(self): """ Deletes this Action from the database """ db = Database() stmnt = "DELETE FROM ACTIONS WHERE ACT_ID = ? ;" db.query(stmnt, (self.get_id(),),commit=True) PokeManager.add_activity(ActivityType.MENU)
def cleanup_css_sessiontable(cls): """ Cleans up old css filenames """ db = Database() stmnt = "DELETE FROM CSSSESSION WHERE CSE_OUTDATED = 1 ;" db.query(stmnt, commit=True) return
def delete(self): """ Deletes the ActionList from the DB """ db = Database() stmnt = "DELETE FROM ACTIONLISTS WHERE ATL_ID = ? ;" db.query(stmnt, (self.get_id(),),commit=True) PokeManager.add_activity(ActivityType.MENU)
def remove_permissions_for_module(cls,module): """ removes the permissions of a module """ module_name = module.get_name() db = Database() stmnt = "DELETE FROM RIGHTS WHERE RIG_NAME LIKE ? ;" db.query(stmnt, (module_name+"%",),commit=True)
def store(self): """ currently only one repository can be owned by one skarphed instance """ db = Database() stmnt = "UPDATE OR INSERT INTO REPOSITORIES (REP_ID, REP_NAME, REP_IP, REP_PORT, REP_LASTUPDATE, REP_PUBLICKEY) VALUES (1,?,?,?,?,?) MATCHING (REP_ID) ;" db.query(stmnt,(self._name, self._ip, self._port, self._lastupdate, self.get_public_key()),commit=True) PokeManager.add_activity(ActivityType.REPOSITORY)
def delete(self): """ Deletes this MenuItem from DB """ db = Database() stmnt = "DELETE FROM MENUITEMS WHERE MNI_ID = ? ;" db.query(stmnt, (self.get_id(),),commit=True) PokeManager.add_activity(ActivityType.MENU)
def remove_permission(cls, permission, module=""): """ removes a permission from the database """ db = Database() stmnt = "DELETE FROM RIGHTS WHERE RIG_NAME = ? ;" db.query(stmnt, (permission,),commit=True) PokeManager.add_activity(ActivityType.PERMISSION)
def delete(self): """ deletes this role from the database """ db = Database() stmnt = "DELETE FROM ROLES WHERE ROL_ID = ? ;" db.query(stmnt,(self._id,),commit=True) PokeManager.add_activity(ActivityType.ROLE)
def delete_actions_with_module(cls, module): """ Deletes all actions that contain this widget """ db = Database() stmnt = "DELETE FROM ACTIONS WHERE ACT_WGT_ID IN (SELECT WGT_ID FROM WIDGETS WHERE WGT_MOD_ID = ?) ;" db.query(stmnt,(module.get_id(),),commit=True) PokeManager.add_activity(ActivityType.MENU) return
def delete_actions_with_widget(cls, widget): """ Deletes all actions that contain this widget """ db = Database() stmnt = "DELETE FROM ACTIONS WHERE ACT_WGT_ID = ? ;" db.query(stmnt,(widget.get_id(),),commit=True) PokeManager.add_activity(ActivityType.MENU) return
def delete_definitions_with_widget(cls, widget): """ Deletes all Definitions that concern the given widget """ db = Database() stmnt = "DELETE FROM CSS WHERE CSS_WGT_ID = ? ;" db.query(stmnt, (widget.get_id(),), commit=True) cls.cleanup_css_sessiontable() return
def delete(self): """ Deletes this menu from the database """ db = Database() stmnt = "DELETE FROM MENUS WHERE MNU_ID = ? ;" db.query(stmnt, (self.get_id(),),commit=True) db.commit() PokeManager.add_activity(ActivityType.MENU)
def set_name(self,name,ignore_db = True): """ Sets the Name of the action """ self._name = unicode(name) if not ignore_db: db = Database() stmnt = "UPDATE ACTIONS SET ACT_NAME = ? WHERE ACT_ID = ? ;" db.query(stmnt, (self._name, self.get_id()),commit=True)
def set_name(self, name, ignore_db=False): """ Sets the Name of the actionList """ self._name = unicode(name) if self._id is not None and not ignore_db: db = Database() stmnt= "UPDATE ACTIONLISTS SET ATL_NAME = ? WHERE ATL_ID = ? ;" db.query(stmnt, (self._name, self.get_id()),commit=True)
def create_permission(cls, permission, module=""): """ Creates a new permission in database """ db = Database() new_id = db.get_seq_next('RIG_GEN') stmnt = "INSERT INTO RIGHTS (RIG_ID, RIG_NAME) VALUES (?,?) ;" db.query(stmnt,(new_id,module+"."+permission),commit=True) PokeManager.add_activity(ActivityType.PERMISSION) return module+"."+permission
def revoke_from(self, user): """ Revokes a role from a user """ session_user = Session.get_current_session_user() db = Database() stmnt = "DELETE FROM USERROLES WHERE URO_USR_ID = ? AND URO_ROL_ID = ? ;"; db.query(stmnt,(user.get_id(),self._id),commit=True) PokeManager.add_activity(ActivityType.USER)
def add_menu_item(self, menu_item): """ Adds a MenuItem as SubMenu-Component to this MenuItem """ menu_item_id = menu_item.get_id() menu_item.set_parent_menu_item_id(self.get_id()) db = Database() stmnt = "UPDATE MENUITEMS SET MNI_MNI_ID = ? WHERE MNI_ID = ? ;" db.query(stmnt, (self.get_id(), menu_item_id),commit=True) PokeManager.add_activity(ActivityType.MENU)
def assign_action_list(self, action_list): """ Assigns an ActionList to this MenuItem """ action_list_id = action_list.get_id() self.set_action_list_id(action_list_id) db = Database() stmnt = "UPDATE MENUITEMS SET MNI_ATL_ID = ? WHERE MNI_ID = ? ;" db.query(stmnt, (action_list_id, self.get_id()),commit=True) PokeManager.add_activity(ActivityType.MENU)
def set_name(self,name, ignore_db=False): """ Sets the name of this MenuItem """ self._name = unicode(name) if self.get_id() is not None and not ignore_db: db = Database() stmnt = "UPDATE MENUITEMS SET MNI_NAME = ? WHERE MNI_ID = ? ;" db.query(stmnt, (self._name, self.get_id()),commit=True) PokeManager.add_activity(ActivityType.MENU)
def remove_menu_item(self, menu_item): """ Removes a MenuItem (SubmenuItem) assigned to this MenuItem """ menu_item_id = menu_item.get_id() menu_item.set_parent_menu_item_id(None) db = Database() stmnt = "UPDATE MENUITEMS SET MNI_MNI_ID = NULL WHERE MNI_ID = ? ;" db.query(stmnt, (self.get_id(), menu_item_id),commit=True) PokeManager.add_activity(ActivityType.MENU)
def create_default_view(cls): db = Database() stmnt = "SELECT VIE_ID FROM VIEWS WHERE VIE_DEFAULT = 1 ;" cur = db.query(stmnt) row = cur.fetchonemap() if row is None: view_id = db.get_seq_next("VIE_GEN") stmnt = "INSERT INTO VIEWS (VIE_ID, VIE_SIT_ID, VIE_NAME, VIE_DEFAULT) \ VALUES (?,1,'default',1) ;" db.query(stmnt, (view_id,), commit=True)
def cleanup(cls): """ Remove activities that are no longer needed """ session = Session.get_current_session() db = Database() stmnt = "DELETE FROM SESSIONPOKE WHERE SPO_SES_ID IN (SELECT SES_ID FROM SESSIONS WHERE SES_EXPIRES < CURRENT_TIMESTAMP) ;" db.query(stmnt, (session.get_id(),), commit=True) stmnt = "DELETE FROM ACTIVITIES WHERE ATV_ID < COALESCE ((SELECT MIN(SPO_ATV_ID) FROM SESSIONPOKE WHERE SPO_SES_ID != ?),0) ;" db.query(stmnt, (session.get_id(),), commit=True)
def delete(self): """ deletes this repo from database """ if self._id is None: raise ModuleCoreException(ModuleCoreException.get_msg(4)) db = Database() stmnt = "DELETE FROM REPOSITORIES WHERE REP_ID = ? ;" db.query(stmnt,(self._id,),commit=True) PokeManager.add_activity(ActivityType.REPOSITORY)
def add_menu_item(self, menu_item): """ Adds a MenuItem to this Menu MenuItem only gets added if its not already assigned here """ if menu_item not in self._children: self._chilren.append(menu_item) db = Database() stmnt = "UPDATE MENUITEMS SET MNI_MNU_ID = ? WHERE MNI_ID = ? ;" db.query(stmnt, (self.get_id(),menu_item.get_id()),commit=True) PokeManager.add_activity(ActivityType.MENU)
def delete_definitions_with_module(cls, module): """ Deletes all CSS-Definitions that concern the given module and its children (Widget-related) """ db = Database() stmnt = "DELETE FROM CSS WHERE CSS_MOD_ID = ? OR \ CSS_WGT_ID IN (SELECT WGT_ID FROM WIDGETS WHERE WGT_MOD_ID = ? ) ;" db.query(stmnt, (module.get_id(), module.get_id()), commit=True) cls.cleanup_css_sessiontable() return
def poke(cls): """ Pulls together poke-response information for the current client """ activity_report = ActivityReport.generate() session = Session.get_current_session() db = Database() stmnt = "UPDATE OR INSERT INTO SESSIONPOKE (SPO_SES_ID, SPO_ATV_ID) VALUES (?, \ MAXVALUE(COALESCE((SELECT SPO_ATV_ID FROM SESSIONPOKE WHERE SPO_SES_ID = ?), 0) ,?)) MATCHING (SPO_SES_ID) ;" db.query(stmnt, (session.get_id(), session.get_id(), activity_report._latest_id+1), commit=True) cls.cleanup() return activity_report.to_dict()