comparison rhodecode/templates/admin/repos/repo_edit_perms.html @ 3714:7e3d89d9d3a2 beta

- Manage User’s Groups: create, delete, rename, add/remove users inside. by user group admin. In this case, a user's group can be owned by several people thru an owner user's group. Some refactoring of naming, permission handling logic. - remove some code duplicity as well as inconsistent naming
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 08 Apr 2013 22:47:35 +0200
parents fa6ba6727475
children 25dbbdae3ed9
comparison
equal deleted inserted replaced
3713:e45f8cefd7d9 3714:7e3d89d9d3a2
27 <td style="white-space: nowrap;"> 27 <td style="white-space: nowrap;">
28 <img class="perm-gravatar" src="${h.gravatar_url(r2p.user.email,14)}"/>${r2p.user.username if r2p.user.username != 'default' else _('default')} 28 <img class="perm-gravatar" src="${h.gravatar_url(r2p.user.email,14)}"/>${r2p.user.username if r2p.user.username != 'default' else _('default')}
29 </td> 29 </td>
30 <td> 30 <td>
31 %if r2p.user.username !='default': 31 %if r2p.user.username !='default':
32 <span class="delete_icon action_button" onclick="ajaxActionUser(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')"> 32 <span class="delete_icon action_button" onclick="ajaxActionRevoke(${r2p.user.user_id}, 'user', '${'id%s'%id(r2p.user.username)}')">
33 ${_('revoke')} 33 ${_('revoke')}
34 </span> 34 </span>
35 %endif 35 %endif
36 </td> 36 </td>
37 </tr> 37 </tr>
52 %else: 52 %else:
53 ${g2p.users_group.users_group_name} 53 ${g2p.users_group.users_group_name}
54 %endif 54 %endif
55 </td> 55 </td>
56 <td> 56 <td>
57 <span class="delete_icon action_button" onclick="ajaxActionUserGroup(${g2p.users_group.users_group_id},'${'id%s'%id(g2p.users_group.users_group_name)}')"> 57 <span class="delete_icon action_button" onclick="ajaxActionRevoke(${g2p.users_group.users_group_id}, 'user_group', '${'id%s'%id(g2p.users_group.users_group_name)}')">
58 ${_('revoke')} 58 ${_('revoke')}
59 </span> 59 </span>
60 </td> 60 </td>
61 </tr> 61 </tr>
62 %endfor 62 %endfor
84 </span> 84 </span>
85 </td> 85 </td>
86 </tr> 86 </tr>
87 </table> 87 </table>
88 <script type="text/javascript"> 88 <script type="text/javascript">
89 function ajaxActionUser(user_id, field_id) { 89 function ajaxActionRevoke(obj_id, obj_type, field_id) {
90 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
91 var callback = { 90 var callback = {
92 success: function (o) { 91 success: function (o) {
93 var tr = YUD.get(String(field_id)); 92 var tr = YUD.get(String(field_id));
94 tr.parentNode.removeChild(tr); 93 tr.parentNode.removeChild(tr);
95 }, 94 },
96 failure: function (o) { 95 failure: function (o) {
97 alert("${_('Failed to remove user')}"); 96 alert(_TM['Failed to remoke permission'] + ": " + o.status);
98 }, 97 },
99 }; 98 };
100 var postData = '_method=delete&user_id=' + user_id; 99 if (obj_type=='user'){
100 var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
101 var postData = '_method=delete&user_id={0}&obj_type=user'.format(obj_id);
102 }
103 else if (obj_type=='user_group'){
104 var sUrl = "${h.url('delete_repo_users_group',repo_name=c.repo_name)}";
105 var postData = '_method=delete&users_group_id={0}&obj_type=user_group'.format(obj_id);
106
107 }
108
101 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); 109 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
102 }; 110 };
103 111
104 function ajaxActionUserGroup(users_group_id,field_id){
105 var sUrl = "${h.url('delete_repo_users_group',repo_name=c.repo_name)}";
106 var callback = {
107 success:function(o){
108 var tr = YUD.get(String(field_id));
109 tr.parentNode.removeChild(tr);
110 },
111 failure:function(o){
112 alert("${_('Failed to remove user group')}");
113 },
114 };
115 var postData = '_method=delete&users_group_id='+users_group_id;
116 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
117 };
118 112
119 YUE.onDOMReady(function () { 113 YUE.onDOMReady(function () {
120 if (!YUD.hasClass('perm_new_member_name', 'error')) { 114 if (!YUD.hasClass('perm_new_member_name', 'error')) {
121 YUD.setStyle('add_perm_input', 'display', 'none'); 115 YUD.setStyle('add_perm_input', 'display', 'none');
122 } 116 }