changeset 328:cec5cbc956c0

Repository managment permissions, fixed found bugs updated js, added extra checks for doubled users and non active ones
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 01 Jul 2010 18:10:43 +0200
parents 0e87466a117e
children aafd9a98ea58
files pylons_app/model/db.py pylons_app/model/forms.py pylons_app/model/repo_model.py pylons_app/public/css/monoblue_custom.css pylons_app/templates/admin/repos/repo_edit.html
diffstat 5 files changed, 16 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/model/db.py	Thu Jul 01 00:57:45 2010 +0200
+++ b/pylons_app/model/db.py	Thu Jul 01 18:10:43 2010 +0200
@@ -60,7 +60,7 @@
 
 class Repo2Perm(Base):
     __tablename__ = 'repo_to_perm'
-    __table_args__ = (UniqueConstraint('user_id', 'permission_id', 'repository'), {'useexisting':True})
+    __table_args__ = (UniqueConstraint('user_id', 'repository'), {'useexisting':True})
     repo2perm_id = Column("repo2perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
     user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
     permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None)
--- a/pylons_app/model/forms.py	Thu Jul 01 00:57:45 2010 +0200
+++ b/pylons_app/model/forms.py	Thu Jul 01 18:10:43 2010 +0200
@@ -127,7 +127,9 @@
     def to_python(self, value, state):
         sa = meta.Session
         try:
-            self.user_db = sa.query(User).filter(User.username == value).one()
+            self.user_db = sa.query(User)\
+                .filter(User.active == True)\
+                .filter(User.username == value).one()
         except Exception:
             raise formencode.Invalid(_('This username is not valid'),
                                      value, state)
@@ -176,7 +178,9 @@
         sa = meta.Session
         for k, v in perms_new:
             try:
-                self.user_db = sa.query(User).filter(User.username == k).one()
+                self.user_db = sa.query(User)\
+                    .filter(User.active == True)\
+                    .filter(User.username == k).one()
             except Exception:
                 msg = self.message('perm_new_user_name',
                                      state=State_obj)
--- a/pylons_app/model/repo_model.py	Thu Jul 01 00:57:45 2010 +0200
+++ b/pylons_app/model/repo_model.py	Thu Jul 01 18:10:43 2010 +0200
@@ -43,7 +43,7 @@
         
     def get_users_js(self):
         
-        users = self.sa.query(User).all()
+        users = self.sa.query(User).filter(User.active == True).all()
         u_tmpl = '''{id:%s, fname:"%s", lname:"%s", nname:"%s"},'''
         users_array = '[%s];' % '\n'.join([u_tmpl % (u.user_id, u.name,
                                                     u.lastname, u.username) 
--- a/pylons_app/public/css/monoblue_custom.css	Thu Jul 01 00:57:45 2010 +0200
+++ b/pylons_app/public/css/monoblue_custom.css	Thu Jul 01 18:10:43 2010 +0200
@@ -208,7 +208,7 @@
 	font-size: 100%;
 }
 
-.ac #perm_ac{
+.ac .perm_ac{
 	width:15em;
 }
 /* styles for input field */
--- a/pylons_app/templates/admin/repos/repo_edit.html	Thu Jul 01 00:57:45 2010 +0200
+++ b/pylons_app/templates/admin/repos/repo_edit.html	Thu Jul 01 18:10:43 2010 +0200
@@ -36,7 +36,7 @@
         	<tr>
         		<td>${_('Owner')}</td>
 				<td class='ac'>
-					<div id="perm_ac">
+					<div class="perm_ac">
 						${h.text('user',class_='yui-ac-input')}
 						<div id="owner_container"></div>
 					</div>
@@ -63,7 +63,7 @@
 									<td>${r2p.user.username}</td>
 								</tr>
 							%else:
-	        				<tr id=${id(r2p.user.username)}>
+	        				<tr id="id${id(r2p.user.username)}">
 	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
 	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
 	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
@@ -71,16 +71,15 @@
 	        					<td>${r2p.user.username}</td>
 	        					<td>
 	        					  %if r2p.user.username !='default':
-				                  	<span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},${id(r2p.user.username)})">
+				                  	<span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
 				                  		<script type="text/javascript">
 											function ajaxAction(user_id,field_id){
 												var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
 												var callback = { success:function(o){
-																YAHOO.util.Dom.get(String(field_id)).innerHTML = '<td colspan="6"></td>';
-															 }};
+												var tr = YAHOO.util.Dom.get(String(field_id));
+												tr.parentNode.removeChild(tr);}};
 												var postData = '_method=delete&user_id='+user_id; 
-												var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); 
-						                	};
+												var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
 										</script>       	
 				                  	</span>
 				                  %endif					
@@ -101,7 +100,7 @@
         					<td>${h.radio('perm_new_user','repository.write')}</td>
         					<td>${h.radio('perm_new_user','repository.admin')}</td>
         					<td class='ac'>
-        						<div id="perm_ac">
+        						<div class="perm_ac" id="perm_ac">
         							${h.text('perm_new_user_name',class_='yui-ac-input')}
 									<div id="perm_container"></div>
         						</div>