def json_users(request, exclude=None): query = request.GET.get("q", None) json_user = { 'identifier': 'id', 'label': 'name', 'items': [], } if exclude: exclude = exclude.split(',') else: exclude = [] idx = 1 curr_users = [] for user in FreeNAS_Users( flags=FLAGS_DBINIT | FLAGS_CACHE_READ_USER | FLAGS_CACHE_WRITE_USER ): if idx > 50: break if ( (query is None or user.pw_name.startswith(query.encode('utf8'))) and user.pw_name not in exclude and user.pw_name not in curr_users ): json_user['items'].append({ 'id': user.pw_name, 'name': user.pw_name, 'label': user.pw_name, }) curr_users.append(user.pw_name) idx += 1 # Show users for the directory service provided in the wizard wizard_ds = request.session.get('wizard_ds') if request.GET.get('wizard') == '1' and wizard_ds: if wizard_ds.get('ds_type') == 'ad': users = FreeNAS_ActiveDirectory_Users( domainname=wizard_ds.get('ds_ad_domainname'), bindname=wizard_ds.get('ds_ad_bindname'), bindpw=wizard_ds.get('ds_ad_bindpw'), flags=FLAGS_DBINIT, ) elif wizard_ds.get('ds_type') == 'ldap': users = FreeNAS_LDAP_Users( host=wizard_ds.get('ds_ldap_hostname'), basedn=wizard_ds.get('ds_ldap_basedn'), binddn=wizard_ds.get('ds_ldap_binddn'), bindpw=wizard_ds.get('ds_ldap_bindpw'), flags=FLAGS_DBINIT, ) elif wizard_ds.get('ds_type') == 'nis': users = FreeNAS_NIS_Users( domain=wizard_ds.get('ds_nis_domain'), servers=wizard_ds.get('ds_nis_servers'), secure_mode=wizard_ds.get('ds_nis_secure_mode'), manycast=wizard_ds.get('ds_nis_manycast'), flags=FLAGS_DBINIT, ) else: users = None if users is not None: idx = 1 # FIXME: code duplication withe the block above for user in users._get_uncached_usernames(): if idx > 50: break if ( (query is None or user.startswith(query.encode('utf8'))) and user not in exclude ): json_user['items'].append({ 'id': '%s_%s' % ( wizard_ds.get('ds_type'), user, ), 'name': user, 'label': user, }) idx += 1 del users return HttpResponse( json.dumps(json_user, indent=3), content_type='application/json', )
def json_users(request, exclude=None): query = request.GET.get("q", None) json_user = { 'identifier': 'id', 'label': 'name', 'items': [], } if exclude: exclude = exclude.split(',') else: exclude = [] idx = 1 for user in FreeNAS_Users(flags=FLAGS_DBINIT | FLAGS_CACHE_READ_USER | FLAGS_CACHE_WRITE_USER): if idx > 50: break if ((query is None or user.pw_name.startswith(query)) and user.pw_name not in exclude): json_user['items'].append({ 'id': user.pw_name, 'name': user.pw_name, 'label': user.pw_name, }) idx += 1 # Show users for the directory service provided in the wizard wizard_ds = request.session.get('wizard_ds') if request.GET.get('wizard') == '1' and wizard_ds: if wizard_ds.get('ds_type') == 'ad': users = FreeNAS_ActiveDirectory_Users( domainname=wizard_ds.get('ds_ad_domainname'), bindname=wizard_ds.get('ds_ad_bindname'), bindpw=wizard_ds.get('ds_ad_bindpw'), flags=FLAGS_DBINIT, ) elif wizard_ds.get('ds_type') == 'ldap': users = FreeNAS_LDAP_Users( host=wizard_ds.get('ds_ldap_hostname'), basedn=wizard_ds.get('ds_ldap_basedn'), binddn=wizard_ds.get('ds_ldap_binddn'), bindpw=wizard_ds.get('ds_ldap_bindpw'), flags=FLAGS_DBINIT, ) elif wizard_ds.get('ds_type') == 'nis': users = FreeNAS_NIS_Users( domain=wizard_ds.get('ds_nis_domain'), servers=wizard_ds.get('ds_nis_servers'), secure_mode=wizard_ds.get('ds_nis_secure_mode'), manycast=wizard_ds.get('ds_nis_manycast'), flags=FLAGS_DBINIT, ) else: users = None if users is not None: idx = 1 # FIXME: code duplication withe the block above for user in users._get_uncached_usernames(): if idx > 50: break if ((query is None or user.startswith(query)) and user not in exclude): json_user['items'].append({ 'id': '%s_%s' % ( wizard_ds.get('ds_type'), user, ), 'name': user, 'label': user, }) idx += 1 del users return HttpResponse( json.dumps(json_user, indent=3), content_type='application/json', )
def json_users(request, exclude=None): query = request.GET.get("q", None) json_user = {"identifier": "id", "label": "name", "items": []} if exclude: exclude = exclude.split(",") else: exclude = [] idx = 1 for user in FreeNAS_Users(flags=FLAGS_DBINIT | FLAGS_CACHE_READ_USER | FLAGS_CACHE_WRITE_USER): if idx > 50: break if (query is None or user.pw_name.startswith(query)) and user.pw_name not in exclude: json_user["items"].append({"id": user.pw_name, "name": user.pw_name, "label": user.pw_name}) idx += 1 # Show users for the directory service provided in the wizard wizard_ds = request.session.get("wizard_ds") if request.GET.get("wizard") == "1" and wizard_ds: if wizard_ds.get("ds_type") == "ad": users = FreeNAS_ActiveDirectory_Users( domainname=wizard_ds.get("ds_ad_domainname"), bindname=wizard_ds.get("ds_ad_bindname"), bindpw=wizard_ds.get("ds_ad_bindpw"), flags=FLAGS_DBINIT, ) elif wizard_ds.get("ds_type") == "ldap": users = FreeNAS_LDAP_Users( host=wizard_ds.get("ds_ldap_hostname"), basedn=wizard_ds.get("ds_ldap_basedn"), binddn=wizard_ds.get("ds_ldap_binddn"), bindpw=wizard_ds.get("ds_ldap_bindpw"), flags=FLAGS_DBINIT, ) elif wizard_ds.get("ds_type") == "nis": users = FreeNAS_NIS_Users( domain=wizard_ds.get("ds_nis_domain"), servers=wizard_ds.get("ds_nis_servers"), secure_mode=wizard_ds.get("ds_nis_secure_mode"), manycast=wizard_ds.get("ds_nis_manycast"), flags=FLAGS_DBINIT, ) else: users = None if users is not None: idx = 1 # FIXME: code duplication withe the block above for user in users._get_uncached_usernames(): if idx > 50: break if (query is None or user.startswith(query)) and user not in exclude: json_user["items"].append( {"id": "%s_%s" % (wizard_ds.get("ds_type"), user), "name": user, "label": user} ) idx += 1 del users return HttpResponse(json.dumps(json_user, indent=3), content_type="application/json")