mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 07:01:12 +00:00
Clean seaserv
This commit is contained in:
@@ -8,7 +8,7 @@ from django.http import HttpResponse, HttpResponseServerError
|
||||
|
||||
from auth.decorators import login_required, api_login_required
|
||||
|
||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_users, get_repos, \
|
||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_repos, \
|
||||
get_repo, get_commits, get_branches, \
|
||||
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
|
||||
get_group_repoids, check_group_staff
|
||||
|
@@ -1,14 +1,9 @@
|
||||
|
||||
import service
|
||||
from service import cclient, ccnet_rpc, monitor_rpc, seafserv_rpc, \
|
||||
from service import ccnet_rpc, monitor_rpc, seafserv_rpc, \
|
||||
seafserv_threaded_rpc, ccnet_threaded_rpc
|
||||
from service import translate_peerid, translate_msgtime, translate_groupid, \
|
||||
translate_userid, translate_msgtime2, translate_time_sec, \
|
||||
translate_time_usec, get_peer_avatar_url, get_user_avatar_url, \
|
||||
translate_userid_simple, translate_peerid_simple
|
||||
from service import get_peers_by_role, get_peers_by_myrole, send_command
|
||||
from service import send_command
|
||||
from service import get_groups, get_group
|
||||
from service import get_users, get_user, get_events, count_event
|
||||
from service import get_repos, get_repo, get_commits, get_branches
|
||||
from service import get_binding_peerids
|
||||
from service import get_ccnetuser
|
||||
|
@@ -1,43 +1,4 @@
|
||||
"""
|
||||
Peer:
|
||||
peer.props.id: Peer's ID.
|
||||
peer.props.name peer's name
|
||||
peer.props.user_id The ID of the user this peer belong to.
|
||||
peer.props.timestamp Last modification time in milliseconds.
|
||||
peer.props.role_list The roles I give to this peer's user.
|
||||
peer.props.myrole_list This roles this peer's user gives to me.
|
||||
|
||||
User:
|
||||
user.props.id: User ID.
|
||||
user.props.name: User Name.
|
||||
user.props.timestamp Last modification time in milliseconds.
|
||||
user.props.is_self True if this is myself.
|
||||
user.props.role_list The roles I give to this user.
|
||||
user.props.myrole_list This roles this user gives to me.
|
||||
user.props.default_relay The user's default relay.
|
||||
user.props.avatar_url The user's default relay.
|
||||
|
||||
Group:
|
||||
group.props.id: Group ID.
|
||||
group.props.name: Group Name.
|
||||
group.props.creator: Creator
|
||||
group.props.rendezvous: The ID of the rendezvous peer.
|
||||
group.props.timestamp: Last modification time.
|
||||
group.props.members: The peer IDs of the group members seperated by ' '.
|
||||
group.props.followers: The peer IDs of the followers.
|
||||
group.props.maintainers: The peer IDs of the maintainers.
|
||||
|
||||
Message:
|
||||
msg.props.id: Message ID
|
||||
msg.props.parent_id Parent ID
|
||||
msg.props.src The user who sent this message
|
||||
msg.props.dest
|
||||
msg.props.is_to_group True if this is a group message
|
||||
msg.props.ctime Creation time
|
||||
msg.props.rtime Receive time
|
||||
msg.props.n_ack Number of acks
|
||||
msg.props.n_reply Number of replies
|
||||
msg.props.content
|
||||
|
||||
Repo:
|
||||
id: Repo ID
|
||||
@@ -67,12 +28,6 @@ Commit:
|
||||
parent_id:
|
||||
second_parent_id:
|
||||
|
||||
SyncInfo:
|
||||
|
||||
repo_id:
|
||||
head_commit: The head_commit of master branch at seahub
|
||||
deleted_on_relay: True if repo is deleted on relay
|
||||
|
||||
|
||||
"""
|
||||
|
||||
@@ -99,17 +54,6 @@ else:
|
||||
print "Load config from " + CCNET_CONF_PATH
|
||||
CCNET_CONF_PATH = os.path.normpath(os.path.expanduser(CCNET_CONF_PATH))
|
||||
|
||||
|
||||
# This does not connect daemon, used for the web to display
|
||||
# (name, id) info
|
||||
cclient = ccnet.Client()
|
||||
|
||||
if os.path.exists(CCNET_CONF_PATH):
|
||||
cclient.load_confdir(CCNET_CONF_PATH)
|
||||
cclient.inited = True
|
||||
else:
|
||||
cclient.inited = False
|
||||
|
||||
pool = ccnet.ClientPool(CCNET_CONF_PATH)
|
||||
ccnet_rpc = ccnet.CcnetRpcClient(pool, req_pool=True)
|
||||
ccnet_threaded_rpc = ccnet.CcnetThreadedRpcClient(pool, req_pool=True)
|
||||
@@ -117,185 +61,9 @@ monitor_rpc = seafile.MonitorRpcClient(pool)
|
||||
seafserv_rpc = seafile.ServerRpcClient(pool, req_pool=True)
|
||||
seafserv_threaded_rpc = seafile.ServerThreadedRpcClient(pool, req_pool=True)
|
||||
|
||||
user_db = {}
|
||||
|
||||
def translate_userid(user_id):
|
||||
try:
|
||||
user = user_db[user_id]
|
||||
except:
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
if user:
|
||||
user_db[user_id] = user
|
||||
else:
|
||||
return user_id[:8]
|
||||
if user.props.name:
|
||||
return user.props.name + "(" + user_id[:4] + ")"
|
||||
else:
|
||||
return user_id[:8]
|
||||
|
||||
|
||||
def translate_userid_simple(user_id):
|
||||
try:
|
||||
user = user_db[user_id]
|
||||
except:
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
if user:
|
||||
user_db[user_id] = user
|
||||
else:
|
||||
return user_id[:8]
|
||||
if user.props.name:
|
||||
return user.props.name
|
||||
else:
|
||||
return user_id[:8]
|
||||
|
||||
|
||||
peer_db = {}
|
||||
|
||||
def translate_peerid(peer_id):
|
||||
try:
|
||||
peer = peer_db[peer_id]
|
||||
except:
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
if peer:
|
||||
peer_db[peer_id] = peer
|
||||
else:
|
||||
return peer_id[:8]
|
||||
if peer.props.name:
|
||||
return peer.props.name
|
||||
else:
|
||||
return peer_id[:8]
|
||||
|
||||
|
||||
def translate_peerid_simple(peer_id):
|
||||
try:
|
||||
peer = peer_db[peer_id]
|
||||
except:
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
if peer:
|
||||
peer_db[peer_id] = peer
|
||||
else:
|
||||
return peer_id[:8]
|
||||
if peer.props.name:
|
||||
return peer.props.name
|
||||
else:
|
||||
return peer_id[:8]
|
||||
|
||||
|
||||
def get_peer_avatar_url(peer_id):
|
||||
try:
|
||||
peer = peer_db[peer_id]
|
||||
except:
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
if peer:
|
||||
peer_db[peer_id] = peer
|
||||
else:
|
||||
return None
|
||||
try:
|
||||
user = user_db[peer.props.user_id]
|
||||
except:
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
if user:
|
||||
user_db[user_id] = user
|
||||
else:
|
||||
return None
|
||||
return user.props.avatar_url
|
||||
|
||||
def get_user_avatar_url(user_id):
|
||||
try:
|
||||
user = user_db[user_id]
|
||||
except:
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
if user:
|
||||
user_db[user_id] = user
|
||||
else:
|
||||
return None
|
||||
return user.props.avatar_url
|
||||
|
||||
|
||||
group_db = {}
|
||||
|
||||
def translate_groupid(group_id):
|
||||
try:
|
||||
group = group_db[group_id]
|
||||
except:
|
||||
group = ccnet_threaded_rpc.get_group(group_id)
|
||||
if group:
|
||||
group_db[group_id] = group
|
||||
else:
|
||||
return group_id[:8]
|
||||
if group.props.name:
|
||||
return group.props.name + "(" + group_id[:4] + ")"
|
||||
else:
|
||||
return group_id[:8]
|
||||
|
||||
|
||||
def translate_msgtime(msgtime):
|
||||
return datetime.fromtimestamp(
|
||||
(float(msgtime))/1000000).strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
def translate_msgtime2(msgtime):
|
||||
return datetime.fromtimestamp(
|
||||
(float(msgtime))).strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
def translate_time_sec(time):
|
||||
return datetime.fromtimestamp(
|
||||
(float(time))).strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
def translate_time_usec(time):
|
||||
return datetime.fromtimestamp(
|
||||
(float(time))/1000000).strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
|
||||
|
||||
#### Basic ccnet API ####
|
||||
|
||||
def get_peers_by_role(role):
|
||||
try:
|
||||
peer_ids = ccnet_rpc.get_peers_by_role(role)
|
||||
except SearpcError:
|
||||
return []
|
||||
|
||||
peers = []
|
||||
for peer_id in peer_ids.split("\n"):
|
||||
# too handle the ending '\n'
|
||||
if peer_id == '':
|
||||
continue
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
peers.append(peer)
|
||||
return peers
|
||||
|
||||
def get_peers_by_myrole(myrole):
|
||||
try:
|
||||
peer_ids = ccnet_rpc.get_peers_by_myrole(myrole)
|
||||
except SearpcError:
|
||||
return []
|
||||
|
||||
peers = []
|
||||
for peer_id in peer_ids.split("\n"):
|
||||
# too handle the ending '\n'
|
||||
if peer_id == '':
|
||||
continue
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
peers.append(peer)
|
||||
return peers
|
||||
|
||||
def get_users():
|
||||
user_ids = ccnet_threaded_rpc.list_users()
|
||||
if not user_ids:
|
||||
return []
|
||||
users = []
|
||||
for user_id in user_ids.split("\n"):
|
||||
# too handle the ending '\n'
|
||||
if user_id == '':
|
||||
continue
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
users.append(user)
|
||||
return users
|
||||
|
||||
|
||||
def get_user(user_id):
|
||||
user = ccnet_threaded_rpc.get_user(user_id)
|
||||
return user
|
||||
|
||||
def get_ccnetuser(username=None, userid=None):
|
||||
# Get emailuser from db
|
||||
@@ -341,20 +109,6 @@ def get_group(group_id):
|
||||
return group
|
||||
|
||||
|
||||
def get_events(offset, limit):
|
||||
events = ccnet_rpc.get_events(offset, limit)
|
||||
for event in events:
|
||||
if not event.props.body:
|
||||
event.detail = ""
|
||||
else:
|
||||
event.detail = json.loads(event.props.body)
|
||||
return events
|
||||
|
||||
|
||||
def count_event():
|
||||
return ccnet_rpc.count_event()
|
||||
|
||||
|
||||
def send_command(command):
|
||||
client = pool.get_client()
|
||||
client.send_cmd(command)
|
||||
|
2
urls.py
2
urls.py
@@ -2,7 +2,7 @@ from django.conf.urls.defaults import *
|
||||
from django.conf import settings
|
||||
from django.views.generic.simple import direct_to_template
|
||||
|
||||
from seahub.views import root, peers, myhome, \
|
||||
from seahub.views import root, myhome, \
|
||||
repo, repo_history, modify_token, remove_repo, sys_seafadmin, sys_useradmin, \
|
||||
org_seafadmin, org_useradmin, org_group_admin, org_remove, \
|
||||
activate_user, user_add, user_remove, sys_group_admin, sys_org_admin, \
|
||||
|
22
views.py
22
views.py
@@ -27,7 +27,7 @@ from auth.forms import AuthenticationForm, PasswordResetForm, SetPasswordForm, \
|
||||
PasswordChangeForm
|
||||
from auth.tokens import default_token_generator
|
||||
from share.models import FileShare
|
||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_users, get_repos, \
|
||||
from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_groups, get_repos, \
|
||||
get_repo, get_commits, get_branches, \
|
||||
seafserv_threaded_rpc, seafserv_rpc, get_binding_peerids, get_ccnetuser, \
|
||||
get_group_repoids, check_group_staff
|
||||
@@ -51,26 +51,6 @@ from seahub.settings import FILE_PREVIEW_MAX_SIZE, CROCODOC_API_TOKEN
|
||||
def root(request):
|
||||
return HttpResponseRedirect(reverse(myhome))
|
||||
|
||||
def peers(request):
|
||||
peer_type = request.REQUEST.get('type', 'all')
|
||||
peer_ids = ccnet_rpc.list_peers()
|
||||
peers = []
|
||||
for peer_id in peer_ids.split("\n"):
|
||||
# too handle the ending '\n'
|
||||
if peer_id == '':
|
||||
continue
|
||||
peer = ccnet_rpc.get_peer(peer_id)
|
||||
if peer_type == 'all':
|
||||
peers.append(peer)
|
||||
if peer_type == 'mypeer':
|
||||
if peer.props.role_list.find('MyPeer') != -1:
|
||||
peers.append(peer)
|
||||
|
||||
users = get_users()
|
||||
return render_to_response('peers.html', {
|
||||
'peers': peers,
|
||||
'users': users,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
def validate_owner(request, repo_id):
|
||||
"""
|
||||
|
Reference in New Issue
Block a user