diff --git a/circle/dashboard/models.py b/circle/dashboard/models.py index 8bd31b4..9019326 100644 --- a/circle/dashboard/models.py +++ b/circle/dashboard/models.py @@ -43,6 +43,8 @@ from acl.models import AclBase from vm.tasks.agent_tasks import add_keys, del_keys +from dashboard import store_api + logger = getLogger(__name__) pwgen = User.objects.make_random_password @@ -193,6 +195,13 @@ def create_profile(sender, user, request, **kwargs): if not user.pk: return False profile, created = Profile.objects.get_or_create(user=user) + + if created: + user_home = "u-%d" % user.pk + if not store_api.userexist(user_home): + store_api.createuser(user_home, profile.smb_password, None, + profile.disk_quota) + return created user_logged_in.connect(create_profile) diff --git a/circle/dashboard/views.py b/circle/dashboard/views.py index 9147188..b370e5a 100644 --- a/circle/dashboard/views.py +++ b/circle/dashboard/views.py @@ -208,11 +208,15 @@ class IndexView(LoginRequiredMixin, TemplateView): 'operator', user).all()[:5] # toplist + user_home = "u-%d" % user.pk cache = get_cache("default") - toplist = cache.get("toplist-test") + toplist = cache.get("toplist-%s" % user_home) if not toplist: - toplist = store_api.process_list(store_api.toplist("test")) - cache.set("toplist-test", toplist, 300) + try: + toplist = store_api.process_list(store_api.toplist(user_home)) + except Http404: + toplist = [] + cache.set("toplist-%s" % user_home, toplist, 300) context['toplist'] = toplist @@ -3075,7 +3079,8 @@ class StoreList(LoginRequiredMixin, TemplateView): directory = self.request.GET.get("directory", "/") directory = "/" if not len(directory) else directory - content = store_api.listfolder("test", directory) + user_home = "u-%d" % self.request.user.pk + content = store_api.listfolder(user_home, directory) context['root'] = store_api.process_list(content) context['up_url'] = self.create_up_directory(directory) context['current'] = directory @@ -3102,16 +3107,18 @@ class StoreList(LoginRequiredMixin, TemplateView): @require_GET @login_required def store_download(request): + user_home = "u-%d" % request.user.pk path = request.GET.get("path") - url = store_api.requestdownload("test", path) + url = store_api.requestdownload(user_home, path) return redirect(url) @require_GET @login_required def store_upload(request): + user_home = "u-%d" % request.user.pk directory = request.GET.get("directory", "/") - action = store_api.requestupload("test", directory) + action = store_api.requestupload(user_home, directory) next_url = "%s%s?directory=%s" % ( settings.DJANGO_URL[:-1], reverse("dashboard.views.store-list"), directory) @@ -3124,8 +3131,9 @@ def store_upload(request): @require_GET @login_required def store_get_upload_url(request): + user_home = "u-%d" % request.user.pk current_dir = request.GET.get("current_dir") - url = store_api.requestupload("test", current_dir) + url = store_api.requestupload(user_home, current_dir) return HttpResponse( json.dumps({'url': url}), content_type="application/json") @@ -3150,8 +3158,9 @@ class StoreRemove(LoginRequiredMixin, TemplateView): return context def post(self, *args, **kwargs): + user_home = "u-%d" % self.request.user.pk path = self.request.POST.get("path") - store_api.requestremove("test", path) + store_api.requestremove(user_home, path) if path.endswith("/"): return redirect("%s?directory=%s" % ( @@ -3168,10 +3177,11 @@ class StoreRemove(LoginRequiredMixin, TemplateView): @require_POST @login_required def store_new_directory(request): + user_home = "u-%d" % request.user.pk path = request.POST.get("path") name = request.POST.get("name") - store_api.requestnewfolder("test", path + name) + store_api.requestnewfolder(user_home, path + name) return redirect("%s?directory=%s" % ( reverse("dashboard.views.store-list"), path)) @@ -3179,8 +3189,13 @@ def store_new_directory(request): @require_POST @login_required def store_refresh_toplist(request): + user_home = "u-%d" % request.user.pk cache = get_cache("default") - toplist = store_api.process_list(store_api.toplist("test")) + try: + toplist = store_api.process_list(store_api.toplist(user_home)) + except Http404: + toplist = [] cache.set("toplist-test", toplist, 300) + user_home = "u-%d" % request.user.pk return redirect(reverse("dashboard.index"))