mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
Remove unused ejs library functions.
This commit is contained in:
@ -1,170 +0,0 @@
|
||||
/*
|
||||
samr rpc utility functions
|
||||
Copyright Andrew Tridgell 2005
|
||||
released under the GNU GPL version 3 or later
|
||||
*/
|
||||
|
||||
if (global["HAVE_SAMR_JS"] != undefined) {
|
||||
return;
|
||||
}
|
||||
HAVE_SAMR_JS=1
|
||||
|
||||
/*
|
||||
return a list of names and indexes from a samArray
|
||||
*/
|
||||
function samArray(output)
|
||||
{
|
||||
var list = new Array(output.num_entries);
|
||||
if (output.sam == NULL) {
|
||||
return list;
|
||||
}
|
||||
var i, entries = output.sam.entries;
|
||||
for (i=0;i<output.num_entries;i++) {
|
||||
list[i] = new Object();
|
||||
list[i].name = entries[i].name;
|
||||
list[i].idx = entries[i].idx;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/*
|
||||
connect to the sam database
|
||||
*/
|
||||
function samrConnect(conn)
|
||||
{
|
||||
security_init(conn);
|
||||
var io = irpcObj();
|
||||
io.input.system_name = NULL;
|
||||
io.input.access_mask = conn.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
var status = conn.samr_Connect2(io);
|
||||
check_status_ok(status);
|
||||
return io.output.connect_handle;
|
||||
}
|
||||
|
||||
/*
|
||||
close a handle
|
||||
*/
|
||||
function samrClose(conn, handle)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.handle = handle;
|
||||
var status = conn.samr_Close(io);
|
||||
check_status_ok(status);
|
||||
}
|
||||
|
||||
/*
|
||||
get the sid for a domain
|
||||
*/
|
||||
function samrLookupDomain(conn, handle, domain)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.connect_handle = handle;
|
||||
io.input.domain_name = domain;
|
||||
var status = conn.samr_LookupDomain(io);
|
||||
check_status_ok(status);
|
||||
return io.output.sid;
|
||||
}
|
||||
|
||||
/*
|
||||
open a domain by sid
|
||||
*/
|
||||
function samrOpenDomain(conn, handle, sid)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.connect_handle = handle;
|
||||
io.input.access_mask = conn.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
io.input.sid = sid;
|
||||
var status = conn.samr_OpenDomain(io);
|
||||
check_status_ok(status);
|
||||
return io.output.domain_handle;
|
||||
}
|
||||
|
||||
/*
|
||||
open a user by rid
|
||||
*/
|
||||
function samrOpenUser(conn, handle, rid)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.domain_handle = handle;
|
||||
io.input.access_mask = conn.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
io.input.rid = rid;
|
||||
var status = conn.samr_OpenUser(io);
|
||||
check_status_ok(status);
|
||||
return io.output.user_handle;
|
||||
}
|
||||
|
||||
/*
|
||||
return a list of all users
|
||||
*/
|
||||
function samrEnumDomainUsers(conn, dom_handle)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.domain_handle = dom_handle;
|
||||
io.input.resume_handle = 0;
|
||||
io.input.acct_flags = 0;
|
||||
io.input.max_size = -1;
|
||||
var status = conn.samr_EnumDomainUsers(io);
|
||||
check_status_ok(status);
|
||||
return samArray(io.output);
|
||||
}
|
||||
|
||||
/*
|
||||
return a list of all groups
|
||||
*/
|
||||
function samrEnumDomainGroups(conn, dom_handle)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.domain_handle = dom_handle;
|
||||
io.input.resume_handle = 0;
|
||||
io.input.acct_flags = 0;
|
||||
io.input.max_size = -1;
|
||||
var status = conn.samr_EnumDomainGroups(io);
|
||||
check_status_ok(status);
|
||||
return samArray(io.output);
|
||||
}
|
||||
|
||||
/*
|
||||
return a list of domains
|
||||
*/
|
||||
function samrEnumDomains(conn, handle)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.connect_handle = handle;
|
||||
io.input.resume_handle = 0;
|
||||
io.input.buf_size = -1;
|
||||
var status = conn.samr_EnumDomains(io);
|
||||
check_status_ok(status);
|
||||
return samArray(io.output);
|
||||
}
|
||||
|
||||
/*
|
||||
return information about a user
|
||||
*/
|
||||
function samrQueryUserInfo(conn, user_handle, level)
|
||||
{
|
||||
var r, io = irpcObj();
|
||||
io.input.user_handle = user_handle;
|
||||
io.input.level = level;
|
||||
var status = conn.samr_QueryUserInfo(io);
|
||||
check_status_ok(status);
|
||||
return io.output.info.info3;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
fill a user array with user information from samrQueryUserInfo
|
||||
*/
|
||||
function samrFillUserInfo(conn, dom_handle, users, level)
|
||||
{
|
||||
var i;
|
||||
for (i=0;i<users.length;i++) {
|
||||
var r, user_handle, info;
|
||||
user_handle = samrOpenUser(conn, dom_handle, users[i].idx);
|
||||
info = samrQueryUserInfo(conn, user_handle, level);
|
||||
info.name = users[i].name;
|
||||
info.idx = users[i].idx;
|
||||
users[i] = info;
|
||||
samrClose(conn, user_handle);
|
||||
}
|
||||
}
|
||||
|
@ -1,291 +0,0 @@
|
||||
/*
|
||||
winreg rpc utility functions
|
||||
Copyright Andrew Tridgell 2005
|
||||
released under the GNU GPL version 3 or later
|
||||
*/
|
||||
|
||||
libinclude("base.js");
|
||||
|
||||
/*
|
||||
close a handle
|
||||
*/
|
||||
function __winreg_close(handle)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.handle = handle;
|
||||
this.winreg_CloseKey(io);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
open a hive
|
||||
*/
|
||||
function __winreg_open_hive(hive)
|
||||
{
|
||||
var io = irpcObj();
|
||||
io.input.system_name = NULL;
|
||||
io.input.access_mask = this.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
var status;
|
||||
if (hive == "HKLM") {
|
||||
status = this.winreg_OpenHKLM(io);
|
||||
} else if (hive == "HKCR") {
|
||||
status = this.winreg_OpenHKCR(io);
|
||||
} else if (hive == "HKPD") {
|
||||
status = this.winreg_OpenHKPD(io);
|
||||
} else if (hive == "HKU") {
|
||||
status = this.winreg_OpenHKU(io);
|
||||
} else {
|
||||
this._last_error = "Unknown hive " + hive;
|
||||
return undefined;
|
||||
}
|
||||
if (!status.is_ok) {
|
||||
return undefined;
|
||||
}
|
||||
return io.output.handle;
|
||||
}
|
||||
|
||||
/*
|
||||
open a handle to a path
|
||||
*/
|
||||
function __winreg_open_path(path)
|
||||
{
|
||||
var s = string_init();
|
||||
var i, components = s.split('\\', path);
|
||||
|
||||
/* cope with a leading slash */
|
||||
if (components[0] == '') {
|
||||
for (i=0;i<(components.length-1);i++) {
|
||||
components[i] = components[i+1];
|
||||
}
|
||||
delete(components[i]);
|
||||
}
|
||||
|
||||
if (components.length == 0) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var handle = this.open_hive(components[0]);
|
||||
if (handle == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (components.length == 1) {
|
||||
return handle;
|
||||
}
|
||||
|
||||
var hpath = components[1];
|
||||
|
||||
for (i=2;i<components.length;i++) {
|
||||
hpath = hpath + "\\" + components[i];
|
||||
}
|
||||
|
||||
io = irpcObj();
|
||||
io.input.parent_handle = handle;
|
||||
io.input.keyname = hpath;
|
||||
io.input.unknown = 0;
|
||||
io.input.access_mask = this.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
var status = this.winreg_OpenKey(io);
|
||||
|
||||
this.close(handle);
|
||||
|
||||
if (!status.is_ok) {
|
||||
return undefined;
|
||||
}
|
||||
if (io.output.result != "WERR_OK") {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return io.output.handle;
|
||||
}
|
||||
|
||||
/*
|
||||
return a list of keys for a winreg server given a path
|
||||
usage:
|
||||
list = reg.enum_path(path);
|
||||
*/
|
||||
function __winreg_enum_path(path)
|
||||
{
|
||||
var list = new Array(0);
|
||||
|
||||
if (path == null || path == "\\" || path == "") {
|
||||
return new Array("HKLM", "HKU");
|
||||
}
|
||||
|
||||
var handle = this.open_path(path);
|
||||
if (handle == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var io = irpcObj();
|
||||
io.input.handle = handle;
|
||||
io.input.name = new Object();
|
||||
io.input.name.length = 0;
|
||||
io.input.name.size = 32;
|
||||
io.input.name.name = NULL;
|
||||
io.input.keyclass = new Object();
|
||||
io.input.keyclass.length = 0;
|
||||
io.input.keyclass.size = 1024;
|
||||
io.input.keyclass.name = NULL;
|
||||
io.input.last_changed_time = 0;
|
||||
|
||||
var idx = 0;
|
||||
for (idx=0;idx >= 0;idx++) {
|
||||
io.input.enum_index = idx;
|
||||
var status = this.winreg_EnumKey(io);
|
||||
if (!status.is_ok) {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
var out = io.output;
|
||||
if (out.result == "WERR_MORE_DATA") {
|
||||
io.input.name.size = io.input.name.size * 2;
|
||||
idx--;
|
||||
if (io.input.name.size > 32000) {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (out.result != "WERR_OK") {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
list[list.length] = out.name.name;
|
||||
}
|
||||
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
return a list of values for a winreg server given a path
|
||||
usage:
|
||||
list = reg.enum_values(path);
|
||||
|
||||
each returned list element is an object containing a name, a
|
||||
type and a value
|
||||
*/
|
||||
function __winreg_enum_values(path)
|
||||
{
|
||||
var data = datablob_init();
|
||||
var list = new Array(0);
|
||||
|
||||
var handle = this.open_path(path);
|
||||
if (handle == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var io = irpcObj();
|
||||
io.input.handle = handle;
|
||||
io.input.name = new Object();
|
||||
io.input.name.length = 0;
|
||||
io.input.name.size = 128;
|
||||
io.input.name.name = "";
|
||||
io.input.type = 0;
|
||||
io.input.value = new Array(0);
|
||||
io.input.size = 1024;
|
||||
io.input.length = 0;
|
||||
|
||||
var idx;
|
||||
for (idx=0;idx >= 0;idx++) {
|
||||
io.input.enum_index = idx;
|
||||
var status = this.winreg_EnumValue(io);
|
||||
if (!status.is_ok) {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
var out = io.output;
|
||||
if (out.result == "WERR_MORE_DATA") {
|
||||
io.input.size = io.input.size * 2;
|
||||
io.input.name.size = io.input.name.size * 2;
|
||||
idx--;
|
||||
/* limit blobs to 1M */
|
||||
if (io.input.size > 1000000) {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (out.result != "WERR_OK") {
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
var el = new Object();
|
||||
el.name = out.name.name;
|
||||
el.type = out.type;
|
||||
el.rawvalue = out.value;
|
||||
el.value = data.regToVar(el.rawvalue, el.type);
|
||||
el.size = out.size;
|
||||
list[list.length] = el;
|
||||
}
|
||||
|
||||
this.close(handle);
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
create a new key
|
||||
ok = reg.create_key(path, key);
|
||||
*/
|
||||
function __winreg_create_key(path, key)
|
||||
{
|
||||
var handle = this.open_path(path);
|
||||
if (handle == undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
var io = irpcObj();
|
||||
io.input.handle = handle;
|
||||
io.input.name = key;
|
||||
io.input.keyclass = NULL;
|
||||
io.input.options = 0;
|
||||
io.input.access_mask = this.SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
io.input.secdesc = NULL;
|
||||
io.input.action_taken = 0;
|
||||
|
||||
var status = this.winreg_CreateKey(io);
|
||||
this.close(handle);
|
||||
if (!status.is_ok) {
|
||||
return false;
|
||||
}
|
||||
if (io.output.result != "WERR_OK") {
|
||||
return false;
|
||||
}
|
||||
this.close(io.output.new_handle);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
return a string for a winreg type
|
||||
*/
|
||||
function __winreg_typestring(type)
|
||||
{
|
||||
return this.typenames[type];
|
||||
}
|
||||
|
||||
/*
|
||||
initialise the winreg lib, returning an object
|
||||
*/
|
||||
function winregObj()
|
||||
{
|
||||
var reg = winreg_init();
|
||||
security_init(reg);
|
||||
|
||||
reg.typenames = new Array("REG_NONE", "REG_SZ", "REG_EXPAND_SZ", "REG_BINARY",
|
||||
"REG_DWORD", "REG_DWORD_BIG_ENDIAN", "REG_LINK", "REG_MULTI_SZ",
|
||||
"REG_RESOURCE_LIST", "REG_FULL_RESOURCE_DESCRIPTOR",
|
||||
"REG_RESOURCE_REQUIREMENTS_LIST", "REG_QWORD");
|
||||
|
||||
reg.close = __winreg_close;
|
||||
reg.open_hive = __winreg_open_hive;
|
||||
reg.open_path = __winreg_open_path;
|
||||
reg.enum_path = __winreg_enum_path;
|
||||
reg.enum_values = __winreg_enum_values;
|
||||
reg.create_key = __winreg_create_key;
|
||||
reg.typestring = __winreg_typestring;
|
||||
|
||||
return reg;
|
||||
}
|
Reference in New Issue
Block a user