class Skarphed_repoPage (ObjectPageAbstract): def __init__(self,par,repo): ObjectPageAbstract.__init__(self,par,repo) self.table = gtk.Table(2,4,False) self.moduleFrame=PageFrame(self, _("Modules"), IconStock.MODULE) self.moduleList = ModuleList(self,repo) self.moduleFrame.add(self.moduleList) self.pack_start(self.moduleFrame,False) self.mUploadFrame=PageFrame(self, _("Upload Module"), IconStock.MODULE) self.mUploadbox = gtk.HBox() self.mUploadbox.set_border_width(10) self.mUpload_label = gtk.Label(_("Please choose the Module and click OK")) self.mUpload_filechoose = gtk.FileChooserButton(_("Select Module"), None) self.mUpload_filechoose.connect("file-set", self.moduleFileChosen) self.mUpload_filechoose.set_size_request(200,30) self.mUpload_enter = gtk.Button(stock=gtk.STOCK_OK) self.mUpload_enter.connect("clicked", self.uploadModule) self.mUpload_dummy = gtk.Label("") self.mUploadbox.pack_start(self.mUpload_label,False) self.mUploadbox.pack_start(self.mUpload_filechoose,False) self.mUploadbox.pack_start(self.mUpload_enter,False) self.mUploadbox.pack_start(self.mUpload_dummy,True) self.mUploadFrame.add(self.mUploadbox) self.pack_start(self.mUploadFrame,False) self.templateFrame=PageFrame(self, _("Templates"), IconStock.TEMPLATE) self.templateVBox = gtk.VBox() self.templateButtonBox = gtk.HBox() self.templateDeleteButton = gtk.Button(stock=gtk.STOCK_DELETE) self.templateDummy = gtk.Label("") self.templateList = TemplateList(self,repo) self.templateVBox.pack_start(self.templateList,True) self.templateVBox.pack_start(self.templateButtonBox,False) self.templateButtonBox.pack_start(self.templateDummy,True) self.templateButtonBox.pack_start(self.templateDeleteButton,False) self.templateDeleteButton.connect("clicked",self.cb_DeleteTemplate) self.templateFrame.add(self.templateVBox) self.pack_start(self.templateFrame,False) self.tUploadFrame=PageFrame(self, _("Upload Template"), IconStock.TEMPLATE) self.tUploadbox = gtk.HBox() self.tUploadbox.set_border_width(10) self.tUpload_label = gtk.Label(_("Please choose the Template and click OK")) self.tUpload_filechoose = gtk.FileChooserButton(_("Select Template"), None) self.tUpload_filechoose.connect("file-set", self.templateFileChosen) self.tUpload_filechoose.set_size_request(200,30) self.tUpload_enter = gtk.Button(stock=gtk.STOCK_OK) self.tUpload_enter.connect("clicked", self.uploadTemplate) self.tUpload_dummy = gtk.Label("") self.tUploadbox.pack_start(self.tUpload_label,False) self.tUploadbox.pack_start(self.tUpload_filechoose,False) self.tUploadbox.pack_start(self.tUpload_enter,False) self.tUploadbox.pack_start(self.tUpload_dummy,True) self.tUploadFrame.add(self.tUploadbox) self.pack_start(self.tUploadFrame,False) self.adminFrame= PageFrame(self, _("Change Password"), IconStock.CREDENTIAL) self.adminHBox = gtk.HBox() self.adminHBoxDummy = gtk.Label("") self.adminTable= gtk.Table(2,4,False) self.adminLabel = gtk.Label(_("Change admin-password here:")) self.adminPasswordLabel = gtk.Label(_("New password")) self.adminRepeatLabel = gtk.Label(_("New password (repeat)")) self.adminPasswordEntry = gtk.Entry() self.adminPasswordEntry.set_visibility(False) self.adminPasswordEntry.set_invisible_char("●") self.adminRepeatEntry = gtk.Entry() self.adminRepeatEntry.set_visibility(False) self.adminRepeatEntry.set_invisible_char("●") self.adminButtonDummy = gtk.Label() self.adminButtonHBox = gtk.HBox() self.adminButtonChange = gtk.Button(stock=gtk.STOCK_OK) self.adminButtonHBox.pack_start(self.adminButtonDummy,True) self.adminButtonHBox.pack_start(self.adminButtonChange,False) self.adminTable.attach(self.adminLabel,0,2,0,1) self.adminTable.attach(self.adminPasswordLabel,0,1,1,2) self.adminTable.attach(self.adminPasswordEntry,1,2,1,2) self.adminTable.attach(self.adminRepeatLabel,0,1,2,3) self.adminTable.attach(self.adminRepeatEntry,1,2,2,3) self.adminTable.attach(self.adminButtonHBox,0,2,3,4) self.adminHBox.pack_start(self.adminTable,False) self.adminHBox.pack_start(self.adminHBoxDummy,True) self.adminFrame.add(self.adminHBox) self.adminButtonChange.connect("clicked", self.cb_ChangePassword) self.pack_start(self.adminFrame,False) self.developerFrame = PageFrame(self, _("Developers"), IconStock.USER) self.developerHBox= gtk.HBox() self.developerList= DeveloperList(self,repo) self.developerHBox.pack_start(self.developerList,True) self.developerTable = gtk.Table(2,5,False) self.developerButtonHBox = gtk.HBox() self.developerButtonHBoxDummy = gtk.Label() self.developerLabel = gtk.Label(_("Please enter the information for a new Developer here:")) self.developerNameLabel = gtk.Label(_("Nickname:")) self.developerFullnameLabel = gtk.Label(_("Full Name:")) self.developerPublicKeyLabel = gtk.Label(_("Public Key:")) self.developerNameEntry = DefaultEntry(default_message=_("nickname")) self.developerFullnameEntry = DefaultEntry(default_message=_("Firstname Lastname")) self.developerPublicKeyEntry = gtk.TextView() self.developerAddButton = gtk.Button(stock=gtk.STOCK_ADD) self.developerAddButton.connect("clicked", self.cb_Add) self.developerButtonHBox.pack_start(self.developerButtonHBoxDummy,True) self.developerButtonHBox.pack_start(self.developerAddButton,False) self.developerTable.attach(self.developerLabel,0,2,0,1) self.developerTable.attach(self.developerNameLabel,0,1,1,2) self.developerTable.attach(self.developerNameEntry,1,2,1,2) self.developerTable.attach(self.developerFullnameLabel,0,1,2,3) self.developerTable.attach(self.developerFullnameEntry,1,2,2,3) self.developerTable.attach(self.developerPublicKeyLabel,0,1,3,4) self.developerTable.attach(self.developerPublicKeyEntry,1,2,3,4) self.developerTable.attach(self.developerButtonHBox,0,2,4,5) self.developerHBox.pack_start(self.developerTable,False) self.developerFrame.add(self.developerHBox) self.pack_start(self.developerFrame,False) self.show_all() def render(self): repo = self.getMyObject() if not repo: return auth = repo.isAuthenticated() self.adminFrame.set_visible(auth) self.developerFrame.set_visible(auth) self.templateDeleteButton.set_visible(auth) self.moduleList.render() self.developerList.render() def cb_ChangePassword(self, widget=None, data=None): pw1 = self.adminPasswordEntry.get_text() pw2 = self.adminRepeatEntry.get_text() if pw1 == pw2: repo = self.getMyObject() repo.changePassword(pw1) else: pass #TODO: Implement error behaviour def cb_DeleteTemplate(self,widget=None,data=None): def execute(): repo = self.getMyObject() repo.deleteTemplate(self.templateToDelete) self.templateToDelete = None selection = self.templateList.treeview.get_selection() rowiter = selection.get_selected()[1] nr = self.templateList.store.get_value(rowiter,4) self.templateToDelete = nr YesNoPage(self.getApplication().getMainWindow(), _("Do you really want to delete this Template from the Repository?"), execute) def cb_Add(self,widget=None,data=None): name = self.developerNameEntry.get_text() fullName = self.developerFullnameEntry.get_text() textBuffer = self.developerPublicKeyEntry.get_buffer() publicKey = textBuffer.get_text(textBuffer.get_start_iter(),textBuffer.get_end_iter()) repo = self.getMyObject() if not repo: return repo.registerDeveloper(name,fullName,publicKey) def moduleFileChosen(self, widget=None, data=None): self.moduleFileToUpload = widget.get_filename() def templateFileChosen(self, widget=None, data=None): self.templateFileToUpload = widget.get_filename() def uploadModule(self,widget=None,data=None): repo = self.getMyObject() if not repo: return repo.uploadModule(self.moduleFileToUpload) def uploadTemplate(self,widget=None,data=None): repo = self.getMyObject() if not repo: return repo.uploadTemplate(self.templateFileToUpload)
class UserPage(ObjectPageAbstract): def __init__(self, par, user): ObjectPageAbstract.__init__(self, par, user) user.fetchRightsData() user.fetchRoleData() self.headline = gtk.Label() self.pack_start(self.headline, False) self.info = PageFrame(self, _("Information"), gui.IconStock.USER) self.infobox = gtk.VBox() self.info.add(self.infobox) self.pack_start(self.info, False) self.perm = PageFrame(self, _("Permissions / Roles"), gui.IconStock.ROLE) self.permbox = gtk.Table(2, 2, False) self.permbox.set_row_spacings(10) self.permbox.set_col_spacings(10) self.permbox.set_border_width(10) self.perm_permlabel = FrameLabel( self, _("Please choose the Permissions you want to assign to the user here:" ), gui.IconStock.PERMISSION) self.perm_rolelabel = FrameLabel( self, _("Please choose the Rights you want to assign to the user here:"), gui.IconStock.ROLE) self.perm_permlistview = gtk.TreeView() self.perm_permlist = gtk.ListStore(int, str, str) self.perm_permlistview.set_model(self.perm_permlist) self.perm_permlist_col_checkbox = gtk.TreeViewColumn('') self.perm_permlist_col_identifier = gtk.TreeViewColumn( _('Permission Identifier')) self.perm_permlist_col_name = gtk.TreeViewColumn(_('Permission Name')) self.perm_permlistview.append_column(self.perm_permlist_col_checkbox) self.perm_permlistview.append_column(self.perm_permlist_col_identifier) self.perm_permlistview.append_column(self.perm_permlist_col_name) self.perm_permlist_renderer_checkbox = gtk.CellRendererToggle() self.perm_permlist_renderer_identifier = gtk.CellRendererText() self.perm_permlist_renderer_name = gtk.CellRendererText() self.perm_permlist_col_checkbox.pack_start( self.perm_permlist_renderer_checkbox) self.perm_permlist_col_identifier.pack_start( self.perm_permlist_renderer_identifier) self.perm_permlist_col_name.pack_start( self.perm_permlist_renderer_name) self.perm_permlist_col_checkbox.add_attribute( self.perm_permlist_renderer_checkbox, 'active', 0) self.perm_permlist_col_identifier.add_attribute( self.perm_permlist_renderer_identifier, 'text', 1) self.perm_permlist_col_name.add_attribute( self.perm_permlist_renderer_name, 'text', 2) self.perm_permlist_renderer_checkbox.set_activatable(True) self.perm_permlist_renderer_checkbox.connect("toggled", self.toggledRight) self.perm_rolelistview = gtk.TreeView() self.perm_rolelist = gtk.ListStore(int, str, str, int) self.perm_rolelistview.set_model(self.perm_rolelist) self.perm_rolelist_col_checkbox = gtk.TreeViewColumn('') self.perm_rolelist_col_identifier = gtk.TreeViewColumn( _('Role Identifier')) self.perm_rolelist_col_name = gtk.TreeViewColumn(_('RoleName')) self.perm_rolelistview.append_column(self.perm_rolelist_col_checkbox) self.perm_rolelistview.append_column(self.perm_rolelist_col_identifier) self.perm_rolelistview.append_column(self.perm_rolelist_col_name) self.perm_rolelist_renderer_checkbox = gtk.CellRendererToggle() self.perm_rolelist_renderer_identifier = gtk.CellRendererText() self.perm_rolelist_renderer_name = gtk.CellRendererText() self.perm_rolelist_col_checkbox.pack_start( self.perm_rolelist_renderer_checkbox) self.perm_rolelist_col_identifier.pack_start( self.perm_rolelist_renderer_identifier) self.perm_rolelist_col_name.pack_start( self.perm_rolelist_renderer_name) self.perm_rolelist_col_checkbox.add_attribute( self.perm_rolelist_renderer_checkbox, 'active', 0) self.perm_rolelist_col_identifier.add_attribute( self.perm_rolelist_renderer_identifier, 'text', 1) self.perm_rolelist_col_name.add_attribute( self.perm_rolelist_renderer_name, 'text', 2) self.perm_rolelist_renderer_checkbox.set_activatable(True) self.perm_rolelist_renderer_checkbox.connect("toggled", self.toggledRole) self.permbox.attach(self.perm_permlabel, 0, 1, 0, 1) self.permbox.attach(self.perm_permlistview, 0, 1, 1, 2) self.permbox.attach(self.perm_rolelabel, 1, 2, 0, 1) self.permbox.attach(self.perm_rolelistview, 1, 2, 1, 2) self.perm.add(self.permbox) self.pack_start(self.perm, False) self.alterpw = PageFrame(self, _("Alter Password"), gui.IconStock.CREDENTIAL) self.alterpwhbox = gtk.HBox() self.alterpwdummy = gtk.Label("") self.alterpwbox = gtk.Table(2, 4, False) self.alterpwbox.set_row_spacings(10) self.alterpwbox.set_col_spacings(10) self.alterpwbox.set_border_width(10) self.alterpw_oldpw_label = gtk.Label(_("Old Password:"******"New Password:"******"Repeat Password:"******"●") self.alterpw_oldpw_entry.set_visibility(False) self.alterpw_newpw1_entry = gtk.Entry() self.alterpw_newpw1_entry.set_invisible_char("●") self.alterpw_newpw1_entry.set_visibility(False) self.alterpw_newpw2_entry = gtk.Entry() self.alterpw_newpw2_entry.set_invisible_char("●") self.alterpw_newpw2_entry.set_visibility(False) self.alterpw_ok = gtk.Button(_("Alter Password")) self.alterpwbox.attach(self.alterpw_oldpw_label, 0, 1, 0, 1) self.alterpwbox.attach(self.alterpw_oldpw_entry, 1, 2, 0, 1) self.alterpwbox.attach(self.alterpw_newpw1_label, 0, 1, 1, 2) self.alterpwbox.attach(self.alterpw_newpw1_entry, 1, 2, 1, 2) self.alterpwbox.attach(self.alterpw_newpw2_label, 0, 1, 2, 3) self.alterpwbox.attach(self.alterpw_newpw2_entry, 1, 2, 2, 3) self.alterpwbox.attach(self.alterpw_ok, 1, 2, 3, 4) self.alterpwhbox.pack_start(self.alterpwbox, False) self.alterpwhbox.pack_start(self.alterpwdummy, True) self.alterpw.add(self.alterpwhbox) self.alterpw_ok.connect("clicked", self.alterPassword) self.pack_start(self.alterpw, False) self.show_all() self.render() def render(self): user = self.getMyObject() if not user: return self.headline.set_markup( _("<b>Settings for User: "******"</b>") if user.permissiondata is not None: self.perm_permlist.clear() for permission in user.permissiondata: self.perm_permlist.append( (int(permission['granted']), str(permission['right']), '')) if user.roledata is not None: self.perm_rolelist.clear() for role in user.roledata: self.perm_rolelist.append( (int(role['granted']), str(role['name']), '', role['id'])) alter_pw_permitted = user.getUsers().getSkarphed().checkPermission( "skarphed.users.alter_password") is_active_user = user.getUsers().getSkarphed().getUsername( ) == user.getName() if alter_pw_permitted or is_active_user: self.alterpw.set_visible(True) self.alterpw_oldpw_entry.set_visible(is_active_user) self.alterpw_oldpw_label.set_visible(is_active_user) else: self.alterpw.set_visible(False) def alterPassword(self, widget=None, data=None): user = self.getMyObject() if not user: return alter_pw_permitted = user.getUsers().getSkarphed().checkPermission( "skarphed.users.alter_password") is_active_user = user.getUsers().getSkarphed().getUsername( ) == user.getName() if alter_pw_permitted or is_active_user: if is_active_user: oldpw = self.alterpw_oldpw_entry.get_text() newpw1 = self.alterpw_newpw1_entry.get_text() newpw2 = self.alterpw_newpw2_entry.get_text() if newpw2 != newpw1: return False # Password repeat not successful if newpw1 == "": return False # New password is empty if is_active_user: user.alterPassword(newpw1, oldpw) else: user.alterPassword(newpw1) def toggledRole(self, render=None, path=None): rowiter = self.perm_rolelist.get_iter(path) roleId = self.perm_rolelist.get_value(rowiter, 3) val = 1 - self.perm_rolelist.get_value(rowiter, 0) user = self.getMyObject() if not user: return if val == 1: user.assignRole(roleId) else: user.removeRole(roleId) def toggledRight(self, render=None, path=None): rowiter = self.perm_permlist.get_iter(path) perm = self.perm_permlist.get_value(rowiter, 1) val = 1 - self.perm_permlist.get_value(rowiter, 0) user = self.getMyObject() if not user: return if val == 1: user.assignPermission(perm) else: user.removePermission(perm)
class UserPage(ObjectPageAbstract): def __init__(self,par,user): ObjectPageAbstract.__init__(self,par,user) user.fetchRightsData() user.fetchRoleData() self.headline = gtk.Label() self.pack_start(self.headline,False) self.info = PageFrame(self,_("Information"), gui.IconStock.USER) self.infobox = gtk.VBox() self.info.add(self.infobox) self.pack_start(self.info,False) self.perm = PageFrame(self,_("Permissions / Roles"), gui.IconStock.ROLE) self.permbox = gtk.Table(2,2,False) self.permbox.set_row_spacings(10) self.permbox.set_col_spacings(10) self.permbox.set_border_width(10) self.perm_permlabel = FrameLabel(self,_("Please choose the Permissions you want to assign to the user here:"),gui.IconStock.PERMISSION) self.perm_rolelabel = FrameLabel(self,_("Please choose the Rights you want to assign to the user here:"),gui.IconStock.ROLE) self.perm_permlistview = gtk.TreeView() self.perm_permlist = gtk.ListStore(int, str,str) self.perm_permlistview.set_model(self.perm_permlist) self.perm_permlist_col_checkbox = gtk.TreeViewColumn('') self.perm_permlist_col_identifier = gtk.TreeViewColumn(_('Permission Identifier')) self.perm_permlist_col_name = gtk.TreeViewColumn(_('Permission Name')) self.perm_permlistview.append_column(self.perm_permlist_col_checkbox) self.perm_permlistview.append_column(self.perm_permlist_col_identifier) self.perm_permlistview.append_column(self.perm_permlist_col_name) self.perm_permlist_renderer_checkbox= gtk.CellRendererToggle() self.perm_permlist_renderer_identifier = gtk.CellRendererText() self.perm_permlist_renderer_name = gtk.CellRendererText() self.perm_permlist_col_checkbox.pack_start(self.perm_permlist_renderer_checkbox) self.perm_permlist_col_identifier.pack_start(self.perm_permlist_renderer_identifier) self.perm_permlist_col_name.pack_start(self.perm_permlist_renderer_name) self.perm_permlist_col_checkbox.add_attribute(self.perm_permlist_renderer_checkbox,'active',0) self.perm_permlist_col_identifier.add_attribute(self.perm_permlist_renderer_identifier,'text',1) self.perm_permlist_col_name.add_attribute(self.perm_permlist_renderer_name,'text',2) self.perm_permlist_renderer_checkbox.set_activatable(True) self.perm_permlist_renderer_checkbox.connect("toggled",self.toggledRight) self.perm_rolelistview = gtk.TreeView() self.perm_rolelist = gtk.ListStore(int, str,str,int) self.perm_rolelistview.set_model(self.perm_rolelist) self.perm_rolelist_col_checkbox = gtk.TreeViewColumn('') self.perm_rolelist_col_identifier = gtk.TreeViewColumn(_('Role Identifier')) self.perm_rolelist_col_name = gtk.TreeViewColumn(_('RoleName')) self.perm_rolelistview.append_column(self.perm_rolelist_col_checkbox) self.perm_rolelistview.append_column(self.perm_rolelist_col_identifier) self.perm_rolelistview.append_column(self.perm_rolelist_col_name) self.perm_rolelist_renderer_checkbox= gtk.CellRendererToggle() self.perm_rolelist_renderer_identifier = gtk.CellRendererText() self.perm_rolelist_renderer_name = gtk.CellRendererText() self.perm_rolelist_col_checkbox.pack_start(self.perm_rolelist_renderer_checkbox) self.perm_rolelist_col_identifier.pack_start(self.perm_rolelist_renderer_identifier) self.perm_rolelist_col_name.pack_start(self.perm_rolelist_renderer_name) self.perm_rolelist_col_checkbox.add_attribute(self.perm_rolelist_renderer_checkbox,'active',0) self.perm_rolelist_col_identifier.add_attribute(self.perm_rolelist_renderer_identifier,'text',1) self.perm_rolelist_col_name.add_attribute(self.perm_rolelist_renderer_name,'text',2) self.perm_rolelist_renderer_checkbox.set_activatable(True) self.perm_rolelist_renderer_checkbox.connect("toggled",self.toggledRole) self.permbox.attach(self.perm_permlabel,0,1,0,1) self.permbox.attach(self.perm_permlistview,0,1,1,2) self.permbox.attach(self.perm_rolelabel,1,2,0,1) self.permbox.attach(self.perm_rolelistview,1,2,1,2) self.perm.add(self.permbox) self.pack_start(self.perm,False) self.alterpw = PageFrame(self, _("Alter Password"), gui.IconStock.CREDENTIAL) self.alterpwhbox = gtk.HBox() self.alterpwdummy = gtk.Label("") self.alterpwbox = gtk.Table(2,4,False) self.alterpwbox.set_row_spacings(10) self.alterpwbox.set_col_spacings(10) self.alterpwbox.set_border_width(10) self.alterpw_oldpw_label = gtk.Label(_("Old Password:"******"New Password:"******"Repeat Password:"******"●") self.alterpw_oldpw_entry.set_visibility(False) self.alterpw_newpw1_entry = gtk.Entry() self.alterpw_newpw1_entry.set_invisible_char("●") self.alterpw_newpw1_entry.set_visibility(False) self.alterpw_newpw2_entry = gtk.Entry() self.alterpw_newpw2_entry.set_invisible_char("●") self.alterpw_newpw2_entry.set_visibility(False) self.alterpw_ok = gtk.Button(_("Alter Password")) self.alterpwbox.attach(self.alterpw_oldpw_label,0,1,0,1) self.alterpwbox.attach(self.alterpw_oldpw_entry,1,2,0,1) self.alterpwbox.attach(self.alterpw_newpw1_label,0,1,1,2) self.alterpwbox.attach(self.alterpw_newpw1_entry,1,2,1,2) self.alterpwbox.attach(self.alterpw_newpw2_label,0,1,2,3) self.alterpwbox.attach(self.alterpw_newpw2_entry,1,2,2,3) self.alterpwbox.attach(self.alterpw_ok,1,2,3,4) self.alterpwhbox.pack_start(self.alterpwbox,False) self.alterpwhbox.pack_start(self.alterpwdummy,True) self.alterpw.add(self.alterpwhbox) self.alterpw_ok.connect("clicked", self.alterPassword) self.pack_start(self.alterpw,False) self.show_all() self.render() def render(self): user = self.getMyObject() if not user: return self.headline.set_markup(_("<b>Settings for User: "******"</b>") if user.permissiondata is not None: self.perm_permlist.clear() for permission in user.permissiondata: self.perm_permlist.append((int(permission['granted']),str(permission['right']),'')) if user.roledata is not None: self.perm_rolelist.clear() for role in user.roledata: self.perm_rolelist.append((int(role['granted']), str(role['name']), '', role['id'])) alter_pw_permitted = user.getUsers().getSkarphed().checkPermission("skarphed.users.alter_password") is_active_user = user.getUsers().getSkarphed().getUsername() == user.getName() if alter_pw_permitted or is_active_user: self.alterpw.set_visible(True) self.alterpw_oldpw_entry.set_visible(is_active_user) self.alterpw_oldpw_label.set_visible(is_active_user) else: self.alterpw.set_visible(False) def alterPassword(self, widget=None, data=None): user = self.getMyObject() if not user: return alter_pw_permitted = user.getUsers().getSkarphed().checkPermission("skarphed.users.alter_password") is_active_user = user.getUsers().getSkarphed().getUsername() == user.getName() if alter_pw_permitted or is_active_user: if is_active_user: oldpw = self.alterpw_oldpw_entry.get_text() newpw1 = self.alterpw_newpw1_entry.get_text() newpw2 = self.alterpw_newpw2_entry.get_text() if newpw2 != newpw1: return False # Password repeat not successful if newpw1 == "": return False # New password is empty if is_active_user: user.alterPassword(newpw1,oldpw) else: user.alterPassword(newpw1) def toggledRole(self,render=None,path=None): rowiter = self.perm_rolelist.get_iter(path) roleId = self.perm_rolelist.get_value(rowiter,3) val = 1-self.perm_rolelist.get_value(rowiter,0) user = self.getMyObject() if not user: return if val == 1: user.assignRole(roleId) else: user.removeRole(roleId) def toggledRight(self,render=None,path=None): rowiter = self.perm_permlist.get_iter(path) perm = self.perm_permlist.get_value(rowiter,1) val = 1-self.perm_permlist.get_value(rowiter,0) user = self.getMyObject() if not user: return if val == 1: user.assignPermission(perm) else: user.removePermission(perm)
class Skarphed_repoPage(ObjectPageAbstract): def __init__(self, par, repo): ObjectPageAbstract.__init__(self, par, repo) self.table = gtk.Table(2, 4, False) self.moduleFrame = PageFrame(self, _("Modules"), IconStock.MODULE) self.moduleList = ModuleList(self, repo) self.moduleFrame.add(self.moduleList) self.pack_start(self.moduleFrame, False) self.mUploadFrame = PageFrame(self, _("Upload Module"), IconStock.MODULE) self.mUploadbox = gtk.HBox() self.mUploadbox.set_border_width(10) self.mUpload_label = gtk.Label( _("Please choose the Module and click OK")) self.mUpload_filechoose = gtk.FileChooserButton( _("Select Module"), None) self.mUpload_filechoose.connect("file-set", self.moduleFileChosen) self.mUpload_filechoose.set_size_request(200, 30) self.mUpload_enter = gtk.Button(stock=gtk.STOCK_OK) self.mUpload_enter.connect("clicked", self.uploadModule) self.mUpload_dummy = gtk.Label("") self.mUploadbox.pack_start(self.mUpload_label, False) self.mUploadbox.pack_start(self.mUpload_filechoose, False) self.mUploadbox.pack_start(self.mUpload_enter, False) self.mUploadbox.pack_start(self.mUpload_dummy, True) self.mUploadFrame.add(self.mUploadbox) self.pack_start(self.mUploadFrame, False) self.templateFrame = PageFrame(self, _("Templates"), IconStock.TEMPLATE) self.templateVBox = gtk.VBox() self.templateButtonBox = gtk.HBox() self.templateDeleteButton = gtk.Button(stock=gtk.STOCK_DELETE) self.templateDummy = gtk.Label("") self.templateList = TemplateList(self, repo) self.templateVBox.pack_start(self.templateList, True) self.templateVBox.pack_start(self.templateButtonBox, False) self.templateButtonBox.pack_start(self.templateDummy, True) self.templateButtonBox.pack_start(self.templateDeleteButton, False) self.templateDeleteButton.connect("clicked", self.cb_DeleteTemplate) self.templateFrame.add(self.templateVBox) self.pack_start(self.templateFrame, False) self.tUploadFrame = PageFrame(self, _("Upload Template"), IconStock.TEMPLATE) self.tUploadbox = gtk.HBox() self.tUploadbox.set_border_width(10) self.tUpload_label = gtk.Label( _("Please choose the Template and click OK")) self.tUpload_filechoose = gtk.FileChooserButton( _("Select Template"), None) self.tUpload_filechoose.connect("file-set", self.templateFileChosen) self.tUpload_filechoose.set_size_request(200, 30) self.tUpload_enter = gtk.Button(stock=gtk.STOCK_OK) self.tUpload_enter.connect("clicked", self.uploadTemplate) self.tUpload_dummy = gtk.Label("") self.tUploadbox.pack_start(self.tUpload_label, False) self.tUploadbox.pack_start(self.tUpload_filechoose, False) self.tUploadbox.pack_start(self.tUpload_enter, False) self.tUploadbox.pack_start(self.tUpload_dummy, True) self.tUploadFrame.add(self.tUploadbox) self.pack_start(self.tUploadFrame, False) self.adminFrame = PageFrame(self, _("Change Password"), IconStock.CREDENTIAL) self.adminHBox = gtk.HBox() self.adminHBoxDummy = gtk.Label("") self.adminTable = gtk.Table(2, 4, False) self.adminLabel = gtk.Label(_("Change admin-password here:")) self.adminPasswordLabel = gtk.Label(_("New password")) self.adminRepeatLabel = gtk.Label(_("New password (repeat)")) self.adminPasswordEntry = gtk.Entry() self.adminPasswordEntry.set_visibility(False) self.adminPasswordEntry.set_invisible_char("●") self.adminRepeatEntry = gtk.Entry() self.adminRepeatEntry.set_visibility(False) self.adminRepeatEntry.set_invisible_char("●") self.adminButtonDummy = gtk.Label() self.adminButtonHBox = gtk.HBox() self.adminButtonChange = gtk.Button(stock=gtk.STOCK_OK) self.adminButtonHBox.pack_start(self.adminButtonDummy, True) self.adminButtonHBox.pack_start(self.adminButtonChange, False) self.adminTable.attach(self.adminLabel, 0, 2, 0, 1) self.adminTable.attach(self.adminPasswordLabel, 0, 1, 1, 2) self.adminTable.attach(self.adminPasswordEntry, 1, 2, 1, 2) self.adminTable.attach(self.adminRepeatLabel, 0, 1, 2, 3) self.adminTable.attach(self.adminRepeatEntry, 1, 2, 2, 3) self.adminTable.attach(self.adminButtonHBox, 0, 2, 3, 4) self.adminHBox.pack_start(self.adminTable, False) self.adminHBox.pack_start(self.adminHBoxDummy, True) self.adminFrame.add(self.adminHBox) self.adminButtonChange.connect("clicked", self.cb_ChangePassword) self.pack_start(self.adminFrame, False) self.developerFrame = PageFrame(self, _("Developers"), IconStock.USER) self.developerHBox = gtk.HBox() self.developerList = DeveloperList(self, repo) self.developerHBox.pack_start(self.developerList, True) self.developerTable = gtk.Table(2, 5, False) self.developerButtonHBox = gtk.HBox() self.developerButtonHBoxDummy = gtk.Label() self.developerLabel = gtk.Label( _("Please enter the information for a new Developer here:")) self.developerNameLabel = gtk.Label(_("Nickname:")) self.developerFullnameLabel = gtk.Label(_("Full Name:")) self.developerPublicKeyLabel = gtk.Label(_("Public Key:")) self.developerNameEntry = DefaultEntry(default_message=_("nickname")) self.developerFullnameEntry = DefaultEntry( default_message=_("Firstname Lastname")) self.developerPublicKeyEntry = gtk.TextView() self.developerAddButton = gtk.Button(stock=gtk.STOCK_ADD) self.developerAddButton.connect("clicked", self.cb_Add) self.developerButtonHBox.pack_start(self.developerButtonHBoxDummy, True) self.developerButtonHBox.pack_start(self.developerAddButton, False) self.developerTable.attach(self.developerLabel, 0, 2, 0, 1) self.developerTable.attach(self.developerNameLabel, 0, 1, 1, 2) self.developerTable.attach(self.developerNameEntry, 1, 2, 1, 2) self.developerTable.attach(self.developerFullnameLabel, 0, 1, 2, 3) self.developerTable.attach(self.developerFullnameEntry, 1, 2, 2, 3) self.developerTable.attach(self.developerPublicKeyLabel, 0, 1, 3, 4) self.developerTable.attach(self.developerPublicKeyEntry, 1, 2, 3, 4) self.developerTable.attach(self.developerButtonHBox, 0, 2, 4, 5) self.developerHBox.pack_start(self.developerTable, False) self.developerFrame.add(self.developerHBox) self.pack_start(self.developerFrame, False) self.show_all() def render(self): repo = self.getMyObject() if not repo: return auth = repo.isAuthenticated() self.adminFrame.set_visible(auth) self.developerFrame.set_visible(auth) self.templateDeleteButton.set_visible(auth) self.moduleList.render() self.developerList.render() def cb_ChangePassword(self, widget=None, data=None): pw1 = self.adminPasswordEntry.get_text() pw2 = self.adminRepeatEntry.get_text() if pw1 == pw2: repo = self.getMyObject() repo.changePassword(pw1) else: pass #TODO: Implement error behaviour def cb_DeleteTemplate(self, widget=None, data=None): def execute(): repo = self.getMyObject() repo.deleteTemplate(self.templateToDelete) self.templateToDelete = None selection = self.templateList.treeview.get_selection() rowiter = selection.get_selected()[1] nr = self.templateList.store.get_value(rowiter, 4) self.templateToDelete = nr YesNoPage( self.getApplication().getMainWindow(), _("Do you really want to delete this Template from the Repository?" ), execute) def cb_Add(self, widget=None, data=None): name = self.developerNameEntry.get_text() fullName = self.developerFullnameEntry.get_text() textBuffer = self.developerPublicKeyEntry.get_buffer() publicKey = textBuffer.get_text(textBuffer.get_start_iter(), textBuffer.get_end_iter()) repo = self.getMyObject() if not repo: return repo.registerDeveloper(name, fullName, publicKey) def moduleFileChosen(self, widget=None, data=None): self.moduleFileToUpload = widget.get_filename() def templateFileChosen(self, widget=None, data=None): self.templateFileToUpload = widget.get_filename() def uploadModule(self, widget=None, data=None): repo = self.getMyObject() if not repo: return repo.uploadModule(self.moduleFileToUpload) def uploadTemplate(self, widget=None, data=None): repo = self.getMyObject() if not repo: return repo.uploadTemplate(self.templateFileToUpload)