summaryrefslogtreecommitdiff
path: root/testprogs/ejs/ejsnet/netusr.js
blob: da6e851ce78706da86b928dded84b1a005db4f65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
function PrintNetUsrHelp(options)
{
	println("User management - available commands:");
	println("\t list - list users in specified domain");
	println("\t info - display user account information");
}


function ListUsers(usrCtx)
{
	var list, user;
	var finished = false;

	for (list = usrCtx.List(list); list.Status.is_ok && !finished; list = usrCtx.List(list)) {
		for (i = 0; i < list.Count; i++) {
			user = list.Users[i];
			printf("%s\n", user.Username);
		}
		
		finished = list.EndOfList;
	}

	printf("\nResult: %s\n", list.Status.errstr);
}


function UserInfo(usrCtx, username)
{
	var info;

	info = usrCtx.Info(username);
	if (info == null) {
		println("Account unknown");
		return -1;
	}

	println("User account info:\n");
	printf("AccountName = %s\n", info.AccountName);
	printf("Description = %s\n", info.Description);
	printf("FullName    = %s\n", info.FullName);
	printf("AcctExpiry  = %s\n", info.AcctExpiry);
}


function UserManager(ctx, options)
{
	var usrCtx;

	if (options.ARGV.length < 2) {
		PrintNetUsrHelp(options);
		return -1;

	}
	
	var usrCmd = options.ARGV[1];

	if (usrCmd == "create") {

	} else if (usrCmd == "info") {
		var userName;

		if (options.ARGV.length > 2) {
			userName = options.ARGV[2];
		} else {
			println("No username provided");
			return -1;
		}
		usrCtx = ctx.UserMgr();

		UserInfo(usrCtx, userName);

	} else if (usrCmd == "list") {

		if (options.ARGV.length > 2) {
			usrCtx = ctx.UserMgr(options.ARGV[2]);
		} else {
			usrCtx = ctx.UserMgr();
		}

		ListUsers(usrCtx);

	} else {
		println("Unknown command specified.");
		PrintNetUsrHelp(options);
	}
}