4 require './rbac-lib.pl';
7 &ui_print_header(undef, $text{'user_title1'}, "");
8 $access{'users'} || $access{'roles'} || &error($text{'user_ecannot'});
11 $users = &list_user_attrs();
12 $user = $users->[$in{'idx'}];
13 &can_edit_user($user) || &error($text{'user_ecannot'});
14 &ui_print_header(undef, $text{'user_title2'}, "");
17 print &ui_form_start("save_user.cgi", "post");
18 print &ui_hidden("idx", $in{'idx'}),"\n";
19 print &ui_hidden("new", $in{'new'}),"\n";
20 print &ui_table_start($text{'user_header'}, "width=100%", 2);
22 print &ui_table_row($text{'user_user'},
23 &ui_user_textbox("user", $user->{'user'}));
25 if ($access{'users'} && $access{'roles'}) {
26 print &ui_table_row($text{'user_type'},
27 &ui_select("type", $user->{'attr'}->{'type'},
28 [ [ "", $text{'user_tdefault'} ],
29 [ "normal", $text{'user_tnormal'} ],
30 [ "role", $text{'user_trole'} ] ]));
33 print &ui_table_row($text{'user_profiles'},
34 &profiles_input("profiles", $user->{'attr'}->{'profiles'}, 1));
36 if (!$access{'authassign'}) {
38 print &ui_table_row($text{'user_auths'},
39 join("<br>", map { "<tt>$_</tt>" }
40 split(/,/, $user->{'attr'}->{'auths'})) ||
41 $text{'user_project1'});
45 print &ui_table_row($text{'user_auths'},
46 &auths_input("auths", $user->{'attr'}->{'auths'}));
49 print &ui_table_row($text{'user_roles'},
50 &attr_input("roles", $user->{'attr'}->{'roles'}, "role", 1));
52 $p = $user->{'attr'}->{'project'};
53 print &ui_table_row($text{'user_project'},
54 &ui_radio("project_def", $p ? 0 : 1,
55 [ [ 1, $text{'user_project1'} ],
56 [ 0, $text{'user_project0'} ] ])."\n".
57 &project_input("project", $p));
59 print &ui_table_row($text{'user_lock'},
60 &ui_radio("lock", $user->{'attr'}->{'lock_after_retries'},
61 [ [ "", $text{'user_ldefault'} ],
62 [ "yes", $text{'yes'} ],
63 [ "no", $text{'no'} ] ]));
65 print &ui_table_end();
67 print &ui_form_end([ [ "create", $text{'create'} ] ]);
70 print &ui_form_end([ [ "save", $text{'save'} ],
71 [ "delete", $text{'delete'} ] ]);
74 &ui_print_footer("list_users.cgi", $text{'users_return'});