def get(self, request): """ Get all organizations Permission checking: 1. only admin can perform this action. """ if not MULTI_TENANCY: error_msg = 'Feature is not enabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) try: page = int(request.GET.get('page', '1')) per_page = int(request.GET.get('per_page', '25')) except ValueError: page = 1 per_page = 25 start = (page - 1) * per_page try: orgs = ccnet_api.get_all_orgs(start, per_page) total_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) error_msg = 'Internal Server Error' return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg) result = [] for org in orgs: org_info = get_org_info(org) result.append(org_info) return Response({'organizations': result, 'total_count': total_count})
def count_orgs(): return ccnet_api.count_orgs()
def get(self, request, format=None): # count repos try: repos_count = seafile_api.count_repos() except SearpcError as e: logger.error(e) repos_count = 0 # count groups try: groups_count = len(ccnet_api.get_all_groups(-1, -1)) except Exception as e: logger.error(e) groups_count = 0 # count orgs if MULTI_TENANCY: multi_tenancy_enabled = True try: org_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) org_count = 0 else: multi_tenancy_enabled = False org_count = 0 # count users try: active_db_users = ccnet_api.count_emailusers('DB') except Exception as e: logger.error(e) active_db_users = 0 try: active_ldap_users = ccnet_api.count_emailusers('LDAP') except Exception as e: logger.error(e) active_ldap_users = 0 try: inactive_db_users = ccnet_api.count_inactive_emailusers('DB') except Exception as e: logger.error(e) inactive_db_users = 0 try: inactive_ldap_users = ccnet_api.count_inactive_emailusers('LDAP') except Exception as e: logger.error(e) inactive_ldap_users = 0 active_users = active_db_users + active_ldap_users if \ active_ldap_users > 0 else active_db_users inactive_users = inactive_db_users + inactive_ldap_users if \ inactive_ldap_users > 0 else inactive_db_users # get license info is_pro = is_pro_version() if is_pro: license_dict = parse_license() else: license_dict = {} if license_dict: with_license = True try: max_users = int(license_dict.get('MaxUsers', 3)) except ValueError as e: logger.error(e) max_users = 0 else: with_license = False max_users = 0 # count total file number try: total_files_count = seafile_api.get_total_file_number() except Exception as e: logger.error(e) total_files_count = 0 # count total storage try: total_storage = seafile_api.get_total_storage() except Exception as e: logger.error(e) total_storage = 0 # count devices number try: total_devices_count = TokenV2.objects.get_total_devices_count() except Exception as e: logger.error(e) total_devices_count = 0 # count current connected devices try: current_connected_devices_count = TokenV2.objects.\ get_current_connected_devices_count() except Exception as e: logger.error(e) current_connected_devices_count = 0 info = { 'users_count': active_users + inactive_users, 'active_users_count': active_users, 'repos_count': repos_count, 'total_files_count': total_files_count, 'groups_count': groups_count, 'org_count': org_count, 'multi_tenancy_enabled': multi_tenancy_enabled, 'is_pro': is_pro, 'with_license': with_license, 'license_expiration': license_dict.get('Expiration', ''), 'license_mode': license_dict.get('Mode', ''), 'license_maxusers': max_users, 'license_to': license_dict.get('Name', ''), 'total_storage': total_storage, 'total_devices_count': total_devices_count, 'current_connected_devices_count': current_connected_devices_count } return Response(info)
def get(self, request, format=None): # count repos try: repos_count = seafile_api.count_repos() except SearpcError as e: logger.error(e) repos_count = 0 # count groups try: groups_count = len(ccnet_api.get_all_groups(-1, -1)) except Exception as e: logger.error(e) groups_count = 0 # count orgs if MULTI_TENANCY: multi_tenancy_enabled = True try: org_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) org_count = 0 else: multi_tenancy_enabled = False org_count = 0 # count users try: active_db_users = ccnet_api.count_emailusers('DB') except Exception as e: logger.error(e) active_db_users = 0 try: active_ldap_users = ccnet_api.count_emailusers('LDAP') except Exception as e: logger.error(e) active_ldap_users = 0 try: inactive_db_users = ccnet_api.count_inactive_emailusers('DB') except Exception as e: logger.error(e) inactive_db_users = 0 try: inactive_ldap_users = ccnet_api.count_inactive_emailusers('LDAP') except Exception as e: logger.error(e) inactive_ldap_users = 0 active_users = active_db_users + active_ldap_users if active_ldap_users > 0 \ else active_db_users inactive_users = inactive_db_users + inactive_ldap_users if inactive_ldap_users > 0 \ else inactive_db_users is_pro = is_pro_version() if is_pro: license_dict = self._get_license_dict() else: license_dict = {} if license_dict: with_license = True try: max_users = int(license_dict.get('MaxUsers', '')) except ValueError as e: logger.error(e) max_users = 0 else: with_license = False max_users = 0 info = { 'users_count': active_users + inactive_users, 'active_users_count': active_users, 'repos_count': repos_count, 'groups_count': groups_count, 'org_count': org_count, 'multi_tenancy_enabled': multi_tenancy_enabled, 'is_pro': is_pro, 'with_license': with_license, 'license_expiration': license_dict.get('Expiration', ''), 'license_maxusers': max_users, 'license_to': license_dict.get('Name', ''), } return Response(info)
def get(self, request, format=None): # count repos try: repos_count = seafile_api.count_repos() except SearpcError as e: logger.error(e) repos_count = 0 # count groups try: groups_count = len(ccnet_api.get_all_groups(-1, -1)) except Exception as e: logger.error(e) groups_count = 0 # count orgs if MULTI_TENANCY: multi_tenancy_enabled = True try: org_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) org_count = 0 else: multi_tenancy_enabled = False org_count = 0 # count users try: active_db_users = ccnet_api.count_emailusers('DB') except Exception as e: logger.error(e) active_db_users = 0 try: active_ldap_users = ccnet_api.count_emailusers('LDAP') except Exception as e: logger.error(e) active_ldap_users = 0 try: inactive_db_users = ccnet_api.count_inactive_emailusers('DB') except Exception as e: logger.error(e) inactive_db_users = 0 try: inactive_ldap_users = ccnet_api.count_inactive_emailusers('LDAP') except Exception as e: logger.error(e) inactive_ldap_users = 0 active_users = active_db_users + active_ldap_users if active_ldap_users > 0 \ else active_db_users inactive_users = inactive_db_users + inactive_ldap_users if inactive_ldap_users > 0 \ else inactive_db_users is_pro = is_pro_version() if is_pro: license_file = os.path.join(seahub.settings.PROJECT_ROOT, '../../seafile-license.txt') license_dict = parse_license(license_file) else: license_dict = {} if license_dict: with_license = True else: with_license = False info = { 'users_count': active_users + inactive_users, 'active_users_count': active_users, 'repos_count': repos_count, 'groups_count': groups_count, 'org_count': org_count, 'multi_tenancy_enabled': multi_tenancy_enabled, 'is_pro': is_pro, 'with_license': with_license, 'license': license_dict } return Response(info)
def get(self, request, format=None): # count groups try: groups_count = len(ccnet_api.get_all_groups(-1, -1)) except Exception as e: logger.error(e) groups_count = 0 # count orgs if MULTI_TENANCY: multi_tenancy_enabled = True try: org_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) org_count = 0 else: multi_tenancy_enabled = False org_count = 0 # count users try: active_db_users = ccnet_api.count_emailusers('DB') except Exception as e: logger.error(e) active_db_users = 0 try: active_ldap_users = ccnet_api.count_emailusers('LDAP') except Exception as e: logger.error(e) active_ldap_users = 0 try: inactive_db_users = ccnet_api.count_inactive_emailusers('DB') except Exception as e: logger.error(e) inactive_db_users = 0 try: inactive_ldap_users = ccnet_api.count_inactive_emailusers('LDAP') except Exception as e: logger.error(e) inactive_ldap_users = 0 active_users = active_db_users + active_ldap_users if \ active_ldap_users > 0 else active_db_users inactive_users = inactive_db_users + inactive_ldap_users if \ inactive_ldap_users > 0 else inactive_db_users # get license info is_pro = is_pro_version() if is_pro: license_dict = parse_license() else: license_dict = {} if license_dict: with_license = True try: max_users = int(license_dict.get('MaxUsers', 3)) except ValueError as e: logger.error(e) max_users = 0 else: with_license = False max_users = 0 # count dtables try: dtables_count = DTables.objects.count() except Exception as e: logger.error(e) dtables_count = 0 info = { 'version': SEATABLE_VERSION, 'users_count': active_users + inactive_users, 'active_users_count': active_users, 'groups_count': groups_count, 'org_count': org_count, 'dtables_count': dtables_count, 'multi_tenancy_enabled': multi_tenancy_enabled, 'is_pro': is_pro, 'with_license': with_license, 'license_expiration': license_dict.get('Expiration', ''), 'license_mode': license_dict.get('Mode', ''), 'license_maxusers': max_users, 'license_to': license_dict.get('Name', ''), 'dtable_server_info': get_dtable_server_info(request.user.username) or {} } return Response(info)
def get(self, request, format=None): # count repos try: repos_count = seafile_api.count_repos() except SearpcError as e: logger.error(e) repos_count = 0 # count groups try: groups_count = len(ccnet_api.get_all_groups(-1, -1)) except Exception as e: logger.error(e) groups_count = 0 # count orgs if MULTI_TENANCY: multi_tenancy_enabled = True try: org_count = ccnet_api.count_orgs() except Exception as e: logger.error(e) org_count = 0 else: multi_tenancy_enabled = False org_count = 0 # count users try: active_db_users = ccnet_api.count_emailusers("DB") except Exception as e: logger.error(e) active_db_users = 0 try: active_ldap_users = ccnet_api.count_emailusers("LDAP") except Exception as e: logger.error(e) active_ldap_users = 0 try: inactive_db_users = ccnet_api.count_inactive_emailusers("DB") except Exception as e: logger.error(e) inactive_db_users = 0 try: inactive_ldap_users = ccnet_api.count_inactive_emailusers("LDAP") except Exception as e: logger.error(e) inactive_ldap_users = 0 active_users = active_db_users + active_ldap_users if active_ldap_users > 0 else active_db_users inactive_users = inactive_db_users + inactive_ldap_users if inactive_ldap_users > 0 else inactive_db_users is_pro = is_pro_version() if is_pro: license_dict = self._get_license_dict() else: license_dict = {} if license_dict: with_license = True try: max_users = int(license_dict.get("MaxUsers", "")) except ValueError as e: logger.error(e) max_users = 0 else: with_license = False max_users = 0 info = { "users_count": active_users + inactive_users, "active_users_count": active_users, "repos_count": repos_count, "groups_count": groups_count, "org_count": org_count, "multi_tenancy_enabled": multi_tenancy_enabled, "is_pro": is_pro, "with_license": with_license, "license_expiration": license_dict.get("Expiration", ""), "license_maxusers": max_users, "license_to": license_dict.get("Name", ""), } return Response(info)