本文整理汇总了Python中seaserv.seafile_api.get_user_share_usage函数的典型用法代码示例。如果您正苦于以下问题:Python get_user_share_usage函数的具体用法?Python get_user_share_usage怎么用?Python get_user_share_usage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_user_share_usage函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: user_search
def user_search(request):
"""Search a user.
"""
email = request.GET.get('email', '')
email_patt = email.replace('*', '%')
users = ccnet_threaded_rpc.search_emailusers(email_patt, -1, -1)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
for user in users:
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
user.self_usage = -1
user.share_usage = -1
user.quota = -1
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
return render_to_response('sysadmin/user_search.html', {
'users': users,
'email': email,
}, context_instance=RequestContext(request))
示例2: check_user_share_quota
def check_user_share_quota(username, repo, users=[], groups=[]):
"""Check whether user has enough quota when share repo to users/groups.
"""
if not users and not groups:
return True
if not seaserv.CALC_SHARE_USAGE:
return True
check_pass = False
quota = seafile_api.get_user_quota(username)
self_usage = seafile_api.get_user_self_usage(username)
current_share_usage = seafile_api.get_user_share_usage(username)
share_usage = 0
if users:
share_usage += seafile_api.get_repo_size(repo.id) * (len(users))
if groups:
grp_members = []
for group in groups:
grp_members += [ e.user_name for e in seaserv.get_group_members(group.id)]
grp_members = set(grp_members)
share_usage += seafile_api.get_repo_size(repo.id) * (len(grp_members) -1)
if share_usage + self_usage + current_share_usage < quota:
check_pass = True
return check_pass
示例3: _populate_user_quota_usage
def _populate_user_quota_usage(user):
"""Populate space/share quota to user.
Arguments:
- `user`:
"""
orgs = ccnet_threaded_rpc.get_orgs_by_user(user.email)
try:
if orgs:
user.org = orgs[0]
org_id = user.org.org_id
user.space_usage = seafserv_threaded_rpc.get_org_user_quota_usage(org_id, user.email)
user.space_quota = seafserv_threaded_rpc.get_org_user_quota(org_id, user.email)
user.share_usage = user.share_quota = 0
else:
user.space_usage = seafile_api.get_user_self_usage(user.email)
user.space_quota = seafile_api.get_user_quota(user.email)
if CALC_SHARE_USAGE:
user.share_quota = seafile_api.get_user_share_quota(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
else:
user.share_usage = user.share_quota = 0
except SearpcError as e:
logger.error(e)
user.space_usage = user.space_quota = user.share_usage = user.share_quota = -1
示例4: check_repo_owner_quota
def check_repo_owner_quota(self, isnewfile=True, contentlength=-1):
"""Check if the upload would cause the user quota be exceeded
`contentlength` is only positive when the client does not use "transfer-encode: chunking"
Return True if the quota would not be exceeded, otherwise return False.
"""
if contentlength <= 0:
# When client use "transfer-encode: chunking", the content length
# is not included in the request headers
if isnewfile:
return check_repo_quota(self.repo.id) >= 0
else:
return True
if not self.owner:
self.owner = seafile_api.get_repo_owner(self.repo.id)
quota = seafile_api.get_user_quota(self.owner)
if quota == INFINITE_QUOTA:
return True
self_usage = seafile_api.get_user_self_usage(self.owner)
share_usage = seafile_api.get_user_share_usage(self.owner) if CALC_SHARE_USAGE else 0
remain = quota - self_usage - share_usage
if not isnewfile:
remain -= self.obj.size
return contentlength <= remain
示例5: sys_user_admin
def sys_user_admin(request):
"""List all users from database.
"""
# Make sure page request is an int. If not, deliver first page.
try:
current_page = int(request.GET.get('page', '1'))
per_page = int(request.GET.get('per_page', '25'))
except ValueError:
current_page = 1
per_page = 25
users_plus_one = get_emailusers('DB', per_page * (current_page - 1), per_page + 1)
if len(users_plus_one) == per_page + 1:
page_next = True
else:
page_next = False
users = users_plus_one[:per_page]
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
for user in users:
if user.props.id == request.user.id:
user.is_self = True
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
user.self_usage = -1
user.share_usage = -1
user.quota = -1
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
have_ldap = True if len(get_emailusers('LDAP', 0, 1)) > 0 else False
platform = get_platform_name()
server_id = get_server_id()
return render_to_response(
'sysadmin/sys_useradmin.html', {
'users': users,
'current_page': current_page,
'prev_page': current_page-1,
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
'CALC_SHARE_USAGE': CALC_SHARE_USAGE,
'have_ldap': have_ldap,
'platform': platform,
'server_id': server_id[:8],
},
context_instance=RequestContext(request))
示例6: get_quota_usage
def get_quota_usage(username):
# https://github.com/haiwen/seahub/blob/master/seahub/api2/views.py#L310
used = seafile_api.get_user_self_usage(username) + seafile_api.get_user_share_usage(username)
total = seafile_api.get_user_quota(username)
if used > 0:
used = float(used)
if total == -2:
total = float(2)
elif total > 0:
total = float(total)
return used, total
示例7: sys_user_admin_admins
def sys_user_admin_admins(request):
"""List all admins from database.
"""
users = get_emailusers('DB', -1, -1)
admin_users = []
not_admin_users = []
for user in users:
if user.is_staff is True:
admin_users.append(user)
else:
not_admin_users.append(user)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in admin_users])
for user in admin_users:
if user.props.id == request.user.id:
user.is_self = True
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
user.self_usage = -1
user.share_usage = -1
user.quota = -1
# check user's role
if user.role == GUEST_USER:
user.is_guest = True
else:
user.is_guest = False
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
have_ldap = True if len(get_emailusers('LDAP', 0, 1)) > 0 else False
return render_to_response(
'sysadmin/sys_useradmin_admins.html', {
'admin_users': admin_users,
'not_admin_users': not_admin_users,
'CALC_SHARE_USAGE': CALC_SHARE_USAGE,
'have_ldap': have_ldap,
'default_user': DEFAULT_USER,
'guest_user': GUEST_USER,
}, context_instance=RequestContext(request))
示例8: user_info
def user_info(request, email):
owned_repos = seafile_api.get_owned_repo_list(email)
quota = seafile_api.get_user_quota(email)
quota_usage = 0
share_usage = 0
my_usage = 0
my_usage = seafile_api.get_user_self_usage(email)
if CALC_SHARE_USAGE:
try:
share_usage = seafile_api.get_user_share_usage(email)
except SearpcError, e:
logger.error(e)
share_usage = 0
quota_usage = my_usage + share_usage
示例9: get_quota_usage
def get_quota_usage(username):
# https://github.com/haiwen/seahub/blob/master/seahub/api2/views.py#L310
used = seafile_api.get_user_self_usage(username) + seafile_api.get_user_share_usage(username)
total = seafile_api.get_user_quota(username)
if used > 0:
used = float(used)
else:
used = 0
if total > 0:
total = float(total)
else:
total = float(2)
return used, total
# print get_quota_usage('[email protected]')
# print get_quota_usage('[email protected]')
示例10: user_search
def user_search(request):
"""Search a user.
"""
email = request.GET.get('email', '')
users = ccnet_threaded_rpc.search_emailusers(email, -1, -1)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
for user in users:
org = ccnet_threaded_rpc.get_orgs_by_user(user.email)
try:
if not org:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
else:
user.org = org[0]
org_id = user.org.org_id
user.self_usage = seafserv_threaded_rpc.get_org_user_quota_usage(org_id, user.email)
user.share_usage = 0
user.quota = seafserv_threaded_rpc.get_org_user_quota(org_id, user.email)
except SearpcError as e:
logger.error(e)
user.self_usage = -1
user.share_usage = -1
user.quota = -1
# check user's role
if user.role == GUEST_USER:
user.is_guest = True
else:
user.is_guest = False
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
return render_to_response('sysadmin/user_search.html', {
'users': users,
'email': email,
'default_user': DEFAULT_USER,
'guest_user': GUEST_USER,
'enable_guest': ENABLE_GUEST,
}, context_instance=RequestContext(request))
示例11: user_info
def user_info(request, email):
owned_repos = seafile_api.get_owned_repo_list(email)
org = ccnet_threaded_rpc.get_orgs_by_user(email)
if not org:
my_usage = seafile_api.get_user_self_usage(email)
quota = seafile_api.get_user_quota(email)
else:
org_id = org[0].org_id
my_usage =seafserv_threaded_rpc. \
get_org_user_quota_usage(org_id, email)
quota = seafserv_threaded_rpc. \
get_org_user_quota(org_id, email)
if CALC_SHARE_USAGE:
try:
share_usage = seafile_api.get_user_share_usage(email)
except SearpcError, e:
logger.error(e)
share_usage = 0
quota_usage = my_usage + share_usage
示例12: user_info
def user_info(request, email):
if request.method == 'POST':
result = {}
content_type = 'application/json; charset=utf-8'
f = SetUserQuotaForm(request.POST)
if f.is_valid():
email = f.cleaned_data['email']
quota_mb = f.cleaned_data['quota']
quota = quota_mb * (1 << 20)
try:
seafile_api.set_user_quota(email, quota)
except:
result['error'] = _(u'Failed to set quota: internal error')
return HttpResponse(json.dumps(result), content_type=content_type)
result['success'] = True
return HttpResponse(json.dumps(result), content_type=content_type)
else:
result['error'] = str(f.errors.values()[0])
return HttpResponse(json.dumps(result), content_type=content_type)
owned_repos = []
owned_repos = seafile_api.get_owned_repo_list(email)
quota = seafile_api.get_user_quota(email)
quota_usage = 0
share_usage = 0
my_usage = 0
my_usage = seafile_api.get_user_self_usage(email)
if CALC_SHARE_USAGE:
try:
share_usage = seafile_api.get_user_share_usage(email)
except SearpcError, e:
logger.error(e)
share_usage = 0
quota_usage = my_usage + share_usage
示例13: sys_user_admin
def sys_user_admin(request):
# Make sure page request is an int. If not, deliver first page.
try:
current_page = int(request.GET.get('page', '1'))
per_page= int(request.GET.get('per_page', '25'))
except ValueError:
current_page = 1
per_page = 25
users_plus_one = get_emailusers(per_page * (current_page - 1), per_page + 1)
if len(users_plus_one) == per_page + 1:
page_next = True
else:
page_next = False
users = users_plus_one[:per_page]
for user in users:
if user.props.id == request.user.id:
user.is_self = True
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
user.self_usage = -1
user.share_usage = -1
user.quota = -1
return render_to_response(
'sysadmin/sys_useradmin.html', {
'users': users,
'current_page': current_page,
'prev_page': current_page-1,
'next_page': current_page+1,
'per_page': per_page,
'page_next': page_next,
'CALC_SHARE_USAGE': CALC_SHARE_USAGE,
},
context_instance=RequestContext(request))
示例14: user_search
def user_search(request):
"""Search a user.
"""
email = request.GET.get('email', '')
email_patt = email.replace('*', '%')
users = ccnet_threaded_rpc.search_emailusers(email_patt, -1, -1)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
for user in users:
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
user.self_usage = -1
user.share_usage = -1
user.quota = -1
# check user's role
if user.role == GUEST_USER:
user.is_guest = True
else:
user.is_guest = False
# populate user last login time
user.last_login = None
for last_login in last_logins:
if last_login.username == user.email:
user.last_login = last_login.last_login
return render_to_response('sysadmin/user_search.html', {
'users': users,
'email': email,
'default_user': DEFAULT_USER,
'guest_user': GUEST_USER,
'enable_guest': ENABLE_GUEST,
}, context_instance=RequestContext(request))
示例15: user_info
def user_info(request, email):
owned_repos = seafile_api.get_owned_repo_list(email)
org = ccnet_threaded_rpc.get_orgs_by_user(email)
org_name = None
if not org:
space_usage = seafile_api.get_user_self_usage(email)
space_quota = seafile_api.get_user_quota(email)
if CALC_SHARE_USAGE:
share_usage = seafile_api.get_user_share_usage(email)
share_quota = seafile_api.get_user_share_quota(email)
else:
share_quota = share_usage = 0
else:
org_id = org[0].org_id
org_name = org[0].org_name
space_usage = seafserv_threaded_rpc.get_org_user_quota_usage(org_id,
email)
space_quota = seafserv_threaded_rpc.get_org_user_quota(org_id, email)
share_usage = share_quota = 0
# Repos that are share to user
in_repos = seafile_api.get_share_in_repo_list(email, -1, -1)
# get user profile
profile = Profile.objects.get_profile_by_user(email)
d_profile = DetailedProfile.objects.get_detailed_profile_by_user(email)
user_shared_links = []
# download links
p_fileshares = []
fileshares = list(FileShare.objects.filter(username=email))
for fs in fileshares:
r = seafile_api.get_repo(fs.repo_id)
if not r:
fs.delete()
continue
if fs.is_file_share_link():
if seafile_api.get_file_id_by_path(r.id, fs.path) is None:
fs.delete()
continue
fs.filename = os.path.basename(fs.path)
path = fs.path.rstrip('/') # Normalize file path
obj_id = seafile_api.get_file_id_by_path(r.id, path)
fs.file_size = seafile_api.get_file_size(r.store_id, r.version,
obj_id)
else:
if seafile_api.get_dir_id_by_path(r.id, fs.path) is None:
fs.delete()
continue
fs.filename = os.path.basename(fs.path.rstrip('/'))
path = fs.path
if path[-1] != '/': # Normalize dir path
path += '/'
# get dir size
dir_id = seafserv_threaded_rpc.get_dirid_by_path(r.id,
r.head_cmmt_id,
path)
fs.dir_size = seafserv_threaded_rpc.get_dir_size(r.store_id,
r.version,
dir_id)
fs.is_download = True
p_fileshares.append(fs)
p_fileshares.sort(key=lambda x: x.view_cnt, reverse=True)
user_shared_links += p_fileshares
# upload links
uploadlinks = list(UploadLinkShare.objects.filter(username=email))
p_uploadlinks = []
for link in uploadlinks:
r = seafile_api.get_repo(link.repo_id)
if not r:
link.delete()
continue
if seafile_api.get_dir_id_by_path(r.id, link.path) is None:
link.delete()
continue
link.dir_name = os.path.basename(link.path.rstrip('/'))
link.is_upload = True
p_uploadlinks.append(link)
p_uploadlinks.sort(key=lambda x: x.view_cnt, reverse=True)
user_shared_links += p_uploadlinks
return render_to_response(
'sysadmin/userinfo.html', {
'owned_repos': owned_repos,
'space_quota': space_quota,
'space_usage': space_usage,
'share_quota': share_quota,
'share_usage': share_usage,
'CALC_SHARE_USAGE': CALC_SHARE_USAGE,
'in_repos': in_repos,
'email': email,
'profile': profile,
'd_profile': d_profile,
'org_name': org_name,
'user_shared_links': user_shared_links,
}, context_instance=RequestContext(request))