Changeset - cec5cbc956c0
[Not reviewed]
default
0 5 0
Marcin Kuzminski - 15 years ago 2010-07-01 18:10:43
marcin@python-works.com
Repository managment permissions, fixed found bugs updated js, added extra checks for doubled users and non active ones
5 files changed with 16 insertions and 13 deletions:
0 comments (0 inline, 0 general)
pylons_app/model/db.py
Show inline comments
 
@@ -60,7 +60,7 @@ class Permission(Base):
 

	
 
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)
pylons_app/model/forms.py
Show inline comments
 
@@ -127,7 +127,9 @@ class ValidRepoUser(formencode.validator
 
    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 @@ class ValidPerms(formencode.validators.F
 
        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)
pylons_app/model/repo_model.py
Show inline comments
 
@@ -43,7 +43,7 @@ class RepoModel(object):
 
        
 
    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) 
pylons_app/public/css/monoblue_custom.css
Show inline comments
 
@@ -208,7 +208,7 @@ table tr.parity1 {
 
	font-size: 100%;
 
}
 

	
 
.ac #perm_ac{
 
.ac .perm_ac{
 
	width:15em;
 
}
 
/* styles for input field */
pylons_app/templates/admin/repos/repo_edit.html
Show inline comments
 
@@ -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>
0 comments (0 inline, 0 general)