mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-02 07:47:32 +00:00
Merge pull request #1176 from haiwen/fix-group-transfer
Fix group transfer
This commit is contained in:
commit
45a634b3be
@ -3346,6 +3346,10 @@ img.thumbnail {
|
||||
#group-discussions .popover-con {
|
||||
padding:0 0;
|
||||
}
|
||||
.group-admin-txt {
|
||||
font-size:12px;
|
||||
color:#888;
|
||||
}
|
||||
/****** grid view *****/
|
||||
/* view mode */
|
||||
.switch-mode {
|
||||
|
@ -10,7 +10,7 @@ from rest_framework.views import APIView
|
||||
from rest_framework import status
|
||||
|
||||
import seaserv
|
||||
from seaserv import seafile_api
|
||||
from seaserv import seafile_api, ccnet_api
|
||||
from pysearpc import SearpcError
|
||||
|
||||
from seahub.api2.utils import api_error
|
||||
@ -256,12 +256,13 @@ class Group(APIView):
|
||||
|
||||
# transfer a group
|
||||
if not is_group_member(group_id, new_owner):
|
||||
seaserv.ccnet_threaded_rpc.group_add_member(group_id, username, new_owner)
|
||||
ccnet_api.group_add_member(group_id, username, new_owner)
|
||||
|
||||
if not is_group_admin(group_id, new_owner):
|
||||
seaserv.ccnet_threaded_rpc.group_set_admin(group_id, new_owner)
|
||||
ccnet_api.group_set_admin(group_id, new_owner)
|
||||
|
||||
seaserv.ccnet_threaded_rpc.set_group_creator(group_id, new_owner)
|
||||
ccnet_api.set_group_creator(group_id, new_owner)
|
||||
ccnet_api.group_unset_admin(group_id, username)
|
||||
|
||||
except SearpcError as e:
|
||||
logger.error(e)
|
||||
|
@ -986,7 +986,13 @@
|
||||
<script type="text/template" id="group-member-tmpl">
|
||||
<img src="<%= avatar_url %>" alt="" width="32" class="avatar-circle fleft" />
|
||||
<div class="txt">
|
||||
<p class="txt-item ellipsis" title="<%- name %>"><%- name %></p>
|
||||
<p class="txt-item ellipsis" title="<%- name %>"><%- name %>
|
||||
<% if (is_owner) { %>
|
||||
<span class="group-admin-txt">{% trans "owner" %}</span>
|
||||
<% } else if (is_admin) { %>
|
||||
<span class="group-admin-txt">{% trans "admin" %}</span>
|
||||
<% } %>
|
||||
</p>
|
||||
<p class="txt-item ellipsis" title="<%- contact_email %>"><%- contact_email %></p>
|
||||
</div>
|
||||
</script>
|
||||
|
@ -18,11 +18,16 @@ define([
|
||||
'click': 'visitMemberProfile'
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
initialize: function(options) {
|
||||
this.is_owner = options.is_owner;
|
||||
},
|
||||
|
||||
render: function() {
|
||||
this.$el.html(this.template(this.model.attributes));
|
||||
var obj = {
|
||||
is_owner: this.is_owner,
|
||||
};
|
||||
$.extend(obj, this.model.attributes);
|
||||
this.$el.html(this.template(obj));
|
||||
return this;
|
||||
},
|
||||
|
||||
|
@ -29,7 +29,13 @@ define([
|
||||
},
|
||||
|
||||
addOne: function(item, collection, options) {
|
||||
var is_owner = false;
|
||||
if (item.get('email') === this.groupView.group.owner) {
|
||||
is_owner = true;
|
||||
}
|
||||
console.log(this.groupView.group.owner + " " + is_owner);
|
||||
var view = new ItemView({
|
||||
is_owner: is_owner,
|
||||
model: item
|
||||
});
|
||||
this.$listContainer.append(view.render().el);
|
||||
|
@ -160,7 +160,7 @@ define([
|
||||
if (!email) {
|
||||
return false;
|
||||
}
|
||||
if (email == _this.group.owner) {
|
||||
if (email == _this.groupView.group.owner) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -179,6 +179,7 @@ define([
|
||||
},
|
||||
success: function() {
|
||||
// after the transfer, the former owner becomes a common admin of the group.
|
||||
Common.feedback(gettext("Successfully transferred the group. You are now a normal member of the group."), 'success');
|
||||
$.modal.close();
|
||||
},
|
||||
error: function(xhr) {
|
||||
|
@ -124,7 +124,10 @@ class GroupsTest(BaseTestCase):
|
||||
self.assertEqual(200, resp.status_code)
|
||||
|
||||
json_resp = json.loads(resp.content)
|
||||
|
||||
assert json_resp['owner'] == new_creator
|
||||
assert new_creator in json_resp['admins']
|
||||
assert self.user.email not in json_resp['admins']
|
||||
|
||||
def test_can_not_transfer_group_to_group_owner(self):
|
||||
new_creator = self.user.email
|
||||
|
Loading…
Reference in New Issue
Block a user