def _update_account_additional_info(self, request, email): # update account profile name = request.data.get("name", None) if name is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.nickname = name profile.save() # update account loginid loginid = request.data.get("login_id", '').strip() if loginid != '': profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.login_id = loginid profile.save() # update account detailed profile department = request.data.get("department", None) if department is not None: d_profile = DetailedProfile.objects.get_detailed_profile_by_user(email) if d_profile is None: d_profile = DetailedProfile(user=email) d_profile.department = department d_profile.save() # update user quota space_quota_mb = request.data.get("storage", None) if space_quota_mb is not None: space_quota = int(space_quota_mb) * get_file_size_unit('MB') if is_org_context(request): org_id = request.user.org.org_id seaserv.seafserv_threaded_rpc.set_org_user_quota(org_id, email, space_quota) else: seafile_api.set_user_quota(email, space_quota) # update is_trial is_trial = request.data.get("is_trial", None) if is_trial is not None: try: from seahub_extra.trialaccount.models import TrialAccount except ImportError: pass else: if is_trial is True: expire_date = timezone.now() + relativedelta(days=7) TrialAccount.object.create_or_update(email, expire_date) else: TrialAccount.objects.filter(user_or_org=email).delete()
def update_user_info(request, user): # update basic user info password = request.data.get("password") if password: user.set_password(password) is_staff = request.data.get("is_staff") if is_staff: is_staff = to_python_boolean(is_staff) user.is_staff = is_staff is_active = request.data.get("is_active") if is_active: is_active = to_python_boolean(is_active) user.is_active = is_active # update user user.save() email = user.username # update additional user info if is_pro_version(): role = request.data.get("role") if role: User.objects.update_role(email, role) name = request.data.get("name") if name: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.nickname = name profile.save() # update account login_id login_id = request.data.get("login_id", None) if login_id is not None: login_id = login_id.strip() profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.login_id = None if login_id == "" else login_id profile.save() reference_id = request.data.get("reference_id", None) if reference_id is not None: reference_id = reference_id.strip() ccnet_api.set_reference_id(email, reference_id) department = request.data.get("department") if department: d_profile = DetailedProfile.objects.get_detailed_profile_by_user(email) if d_profile is None: d_profile = DetailedProfile(user=email) d_profile.department = department d_profile.save() quota_total_mb = request.data.get("quota_total") if quota_total_mb: quota_total = int(quota_total_mb) * get_file_size_unit('MB') if is_org_context(request): org_id = request.user.org.org_id seafile_api.set_org_user_quota(org_id, email, quota_total) else: seafile_api.set_user_quota(email, quota_total)
def _update_account_additional_info(self, request, email): # update account name name = request.data.get("name", None) if name is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.nickname = name profile.save() # update account list_in_address_book list_in_address_book = request.data.get("list_in_address_book", None) if list_in_address_book is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.list_in_address_book = list_in_address_book.lower( ) == 'true' profile.save() # update account loginid loginid = request.data.get("login_id", '').strip() if loginid != '': profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.login_id = loginid profile.save() # update account detailed profile department = request.data.get("department", None) if department is not None: d_profile = DetailedProfile.objects.get_detailed_profile_by_user( email) if d_profile is None: d_profile = DetailedProfile(user=email) d_profile.department = department d_profile.save() # update user quota space_quota_mb = request.data.get("storage", None) if space_quota_mb is not None: space_quota = int(space_quota_mb) * get_file_size_unit('MB') if is_org_context(request): org_id = request.user.org.org_id seaserv.seafserv_threaded_rpc.set_org_user_quota( org_id, email, space_quota) else: seafile_api.set_user_quota(email, space_quota) # update user institution institution = request.data.get("institution", None) if institution is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.institution = institution profile.save()
def _update_account_additional_info(self, request, email): # update account name name = request.data.get("name", None) if name is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.nickname = name profile.save() # update account list_in_address_book list_in_address_book = request.data.get("list_in_address_book", None) if list_in_address_book is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.list_in_address_book = list_in_address_book.lower() == 'true' profile.save() # update account loginid loginid = request.data.get("login_id", '').strip() if loginid != '': profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.login_id = loginid profile.save() # update account detailed profile department = request.data.get("department", None) if department is not None: d_profile = DetailedProfile.objects.get_detailed_profile_by_user(email) if d_profile is None: d_profile = DetailedProfile(user=email) d_profile.department = department d_profile.save() # update user quota space_quota_mb = request.data.get("storage", None) if space_quota_mb is not None: space_quota = int(space_quota_mb) * get_file_size_unit('MB') if is_org_context(request): org_id = request.user.org.org_id seaserv.seafserv_threaded_rpc.set_org_user_quota(org_id, email, space_quota) else: seafile_api.set_user_quota(email, space_quota) # update user institution institution = request.data.get("institution", None) if institution is not None: profile = Profile.objects.get_profile_by_user(email) if profile is None: profile = Profile(user=email) profile.institution = institution profile.save() # update is_trial is_trial = request.data.get("is_trial", None) if is_trial is not None: try: from seahub_extra.trialaccount.models import TrialAccount except ImportError: pass else: if is_trial is True: expire_date = timezone.now() + relativedelta(days=7) TrialAccount.object.create_or_update(email, expire_date) else: TrialAccount.objects.filter(user_or_org=email).delete()