User files finished and groups started

This commit is contained in:
John Crisp 2025-04-25 19:01:25 +02:00
parent dbeacddd96
commit 295c6b3ff3
12 changed files with 404 additions and 263 deletions

View File

@ -4,32 +4,34 @@
%= form_for '/groups' => (method => 'POST') => begin %= form_for '/groups' => (method => 'POST') => begin
%= hidden_field 'trt' => 'ADD' %= hidden_field 'trt' => 'ADD'
<br>
<div>
<button type="submit" class="btn btn-primary"><%= $btn %> </button>
</div>
<p> <br>
%= submit_button "$btn", class => ""
</p>
% end % end
<br>
<p> <h2> <h2><%=l 'grp_CURRENT_LIST' %></h2>
%=l 'grp_CURRENT_LIST' <br><br>
</h2><br><br>
% my $numGroups = @$groups; % my $numGroups = @$groups;
% if ($numGroups == 0){ % if ($numGroups == 0){
%=l 'ACCOUNT_GROUP_NONE' %=l 'ACCOUNT_GROUP_NONE'
% } else { % } else {
<table class="table table-bordered"> <table class="table table-bordered user-table-max-wdith">
<thead> <thead>
<tr> <tr>
<th class=""> <th class="col-sm">
%=l 'GROUP' %=l 'GROUP'
</th> </th>
<th class=""> <th class="col-sm">
%=l 'DESCRIPTION' %=l 'DESCRIPTION'
</th> </th>
<th class=""> <th class="user-valign-center col-sm" colspan="2">
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
</thead> </thead>
@ -38,37 +40,38 @@
% foreach my $group ( @$groups ) % foreach my $group ( @$groups )
% { % {
<tr> <tr>
%= t td => (class => "") => $group->key <td><%= $group->key %></td>
%= t td => (class => "") => $group->prop('Description') <td><%= $group->prop('Description') %></td>
<td class="" style="min-width:15em">
%my $modify_text = l('MODIFY'); # Localized text %my $modify_text = l('MODIFY'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $group_name = $group->key; # group name extracted from the data structure %my $group_name = $group->key; # group name extracted from the data structure
%my $actionModify = qq{ %my $actionModify = qq{
% <a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name"> %<a href="groups2?CsrfDef=$csrf_token&trt=UPD&group=$group_name">
% <button type='button' class="" title='$modify_text' > % <button type='button' class="btn btn-primary" title='$modify_text' >
% $modify_text % $modify_text
% </button> % </button>
% </a> %</a>
%}; %};
%my $remove_text = l('REMOVE'); # Localized text %my $remove_text = l('REMOVE'); # Localized text
%my $csrf_token = "TOKEN"; # CSRF token for security %my $csrf_token = "TOKEN"; # CSRF token for security
%my $group_name = $group->key; # group name extracted from the data structure %my $group_name = $group->key; # group name extracted from the data structure
%my $actionRemove = qq{ %my $actionRemove = qq{
% <a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name"> %<a href="groups2?CsrfDef=$csrf_token&trt=DEL&group=$group_name">
% <button type='button' class="" title='$remove_text' > % <button type='button' class="btn btn-primary" title='$remove_text' >
% $remove_text % $remove_text
% </button> % </button>
% </a> %</a>
%}; %};
<%= $c->render_to_string(inline => $actionModify) %> <%= $c->render_to_string(inline => $actionRemove) %>
</td> <td class="user-valign-center"><%= $c->render_to_string(inline => $actionModify) %></td>
<td class="user-valign-center"><%= $c->render_to_string(inline => $actionRemove) %></td>
</tr> </tr>
% } % }
</tbody> </tbody>
</table> </table>
<%} %> <%} %>
</p>
</div> </div>

View File

@ -25,11 +25,11 @@
% foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) { % foreach (sort { $a->{'WEIGHT'} <=> $b->{'WEIGHT'} } @{$nav{$h}{'DESCRIPTIONS'}}) {
% next if ($_->{'MENUCAT'} ne 'U' ); # menu User % next if ($_->{'MENUCAT'} ne 'U' ); # menu User
% if ( $_->{'FILENAME'} =~ m/^2\// ) { % if ( $_->{'FILENAME'} =~ m/^2\// ) {
% $target = '_self'; % $target = '_self';
% (my $file2 = $_->{'FILENAME'}) =~ s|^2/||; % (my $file2 = $_->{'FILENAME'}) =~ s|^2/||;
% $href = '/smanager/' . $file2; % $href = '/smanager/' . $file2;
% } else { % } else {
% $target = 'main'; % $target = 'main';
% $href = '/server-manager' . $_->{'FILENAME'}; % $href = '/server-manager' . $_->{'FILENAME'};
% } % }

View File

@ -1,23 +1,47 @@
<div id=""> <div>
% my $btn = l('REMOVE'); % my $btn = l('REMOVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin %= form_for '/useraccountsd' => (method => 'POST') => begin
<p> <div>
<h2> <h2><%= l 'usr_REMOVE_ACCOUNT_TITLE' %></h2>
%=l 'usr_REMOVE_ACCOUNT_TITLE' </div>
</h2> <br>
<div>
Needs a text change in the Lex files
<br> <br>
%= $c->l('usr_REMOVE_DESC', $usr_datas->{user}, $usr_datas->{name} ); %= $c->l('usr_REMOVE_DESC', $usr_datas->{user}, $usr_datas->{name} );
</div>
<br><br>
<table class="table table-bordered user-table-max-wdith">
<thead>
<tr>
<th class="col-sm">
%=l 'ACCOUNT'
</th>
<th class="col-sm">
%=l 'USER_NAME'
</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= $usr_datas->{user} %></td>
<td><%= $usr_datas->{name} %></td>
</tr>
</tbody>
</table>
<br> <br>
%= $c->render_to_string(inline => $c->l('usr_REMOVE_DESC2')) %= $c->render_to_string(inline => $c->l('usr_REMOVE_DESC2'))
</p>
<p> <div class="row g-3 align-items-center">
<br> <div class="col-md-2">
%= submit_button "$btn", class => "" <button type="submit" class="btn btn-primary"><%= $btn %></button>
</p> </div>
</div>
%= hidden_field 'trt' => $usr_datas->{trt} %= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}

View File

@ -5,18 +5,20 @@
%= form_for '/useraccounts' => (method => 'POST') => begin %= form_for '/useraccounts' => (method => 'POST') => begin
<br>
<div> <div>
<button type="submit" class="btn btn-primary"><%= $btn %> </button> <button type="submit" class="btn btn-primary"><%= $btn %> </button>
</div> </div>
% end % end
<p> <br>
%= $c->render_to_string(inline => $c->l('usr_FIRSTPAGE_DESC')) %= $c->render_to_string(inline => $c->l('usr_FIRSTPAGE_DESC'))
<br> <br>
</p>
%= dumper @$users
%#= dumper @$users
% my $numUsers = @$users; % my $numUsers = @$users;
% if ($numUsers == 0){ % if ($numUsers == 0){
@ -37,7 +39,7 @@
<th> <th>
%=l 'usr_FORWARDING_ADDRESS' %=l 'usr_FORWARDING_ADDRESS'
</th> </th>
<th class="user-valign-center" colspan="5"> <th class="user-valign-center" colspan="5">
%=l 'ACTION' %=l 'ACTION'
</th> </th>
</tr> </tr>
@ -68,6 +70,7 @@
% my $csrf_token = "TOKEN"; # CSRF token for security % my $csrf_token = "TOKEN"; # CSRF token for security
% my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure % my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure
% my $password_text = l("PASSWORD_RESET"); % my $password_text = l("PASSWORD_RESET");
% if ($useraccounts_user_name eq 'admin') { % if ($useraccounts_user_name eq 'admin') {
%$actionModify = qq{ %$actionModify = qq{
%<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name"> %<a href="useraccountsd?CsrfDef=$csrf_token&trt=UPS&user=$useraccounts_user_name">
@ -92,6 +95,8 @@
%</a> %</a>
%}; %};
% } % }
% if ($password_set ne 'yes') { % if ($password_set ne 'yes') {
%$actionLock = l('ACCOUNT_LOCKED'); %$actionLock = l('ACCOUNT_LOCKED');
%$actionResetPw = qq{ %$actionResetPw = qq{
@ -102,7 +107,7 @@
%</a> %</a>
%}; %};
% } elsif ($useraccounts_user_name ne 'admin') { % } elsif ($useraccounts_user_name ne 'admin') {
% my $lock_text = l('ACCOUNT LOCKED'); # Localized text % my $lock_text = l('usr_LOCK'); # Localized text
% my $csrf_token = "TOKEN"; # CSRF token for security % my $csrf_token = "TOKEN"; # CSRF token for security
% my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure % my $useraccounts_user_name = $user->key; # useraccountss_entry name extracted from the data structure
%$actionLock = qq{ %$actionLock = qq{
@ -120,6 +125,7 @@
%</a> %</a>
%}; %};
% } % }
% if ( $removable eq 'yes' ) { % if ( $removable eq 'yes' ) {
% my $remove_text = l('REMOVE'); # Localized text % my $remove_text = l('REMOVE'); # Localized text
% my $csrf_token = "TOKEN"; # CSRF token for security % my $csrf_token = "TOKEN"; # CSRF token for security

View File

@ -3,21 +3,46 @@
% my $btn = l('usr_LOCK'); % my $btn = l('usr_LOCK');
%= form_for '/useraccountsd' => (method => 'POST') => begin %= form_for '/useraccountsd' => (method => 'POST') => begin
<p> <div>
<h2> <h2><%= l 'usr_LOCK_ACCOUNT_TITLE' %></h2>
%=l 'usr_LOCK_ACCOUNT_TITLE' </div>
</h2>
<br> <br>
%= $c->l('usr_LOCK_DESC', $usr_datas->{user}, $usr_datas->{name} ); <div>
Needs a text change in the Lex files
<br>
<%= $c->l('usr_LOCK_DESC', $usr_datas->{user}, $usr_datas->{name} ) %>
</div>
<br><br>
<table class="table table-bordered user-table-max-wdith">
<thead>
<tr>
<th class="col-sm">
%=l 'ACCOUNT'
</th>
<th class="col-sm">
%=l 'USER_NAME'
</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= $usr_datas->{user} %></td>
<td><%= $usr_datas->{name} %></td>
</tr>
</tbody>
</table>
<br> <br>
%= $c->render_to_string(inline => $c->l('usr_LOCK_DESC2')) %= $c->render_to_string(inline => $c->l('usr_LOCK_DESC2'))
</p>
<p> <div class="row g-3 align-items-center">
<br> <div class="col-md-2">
%= submit_button "$btn", class => "" <button type="submit" class="btn btn-primary"><%= $btn %></button>
</p> </div>
</div>
%= hidden_field 'trt' => $usr_datas->{trt} %= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}

View File

@ -1,40 +1,81 @@
<div> <div>
% my $btn = l('SAVE'); % my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin %= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2> <div>
%=l 'RESET_PASSWORD_TITLE' <h2><%= l 'RESET_PASSWORD_TITLE' %></h2>
</h2> </div>
<br> <br>
<div>
%= $c->l('usr_RESET_DESC', $usr_datas->{user}, $usr_datas->{name} ); %= $c->l('usr_RESET_DESC', $usr_datas->{user}, $usr_datas->{name} );
</div>
<br> <br>
%= l 'usr_RESET_DESC2'
</p>
<p> <table class="table table-bordered user-table-max-wdith">
<span class=""> <thead>
%=l 'PASSWORD_NEW', class => "" <tr>
</span><span class=""> <th class="col-sm">
%= password_field 'newPass', class => "", class=> 'sme-password' %=l 'ACCOUNT'
</span> </th>
</p> <th class="col-sm">
%=l 'USER_NAME'
</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= $usr_datas->{user} %></td>
<td><%= $usr_datas->{name} %></td>
</tr>
</tbody>
</table>
<p> <br>
<span class="">
%=l 'PASSWORD_VERIFY_NEW', class => ""
</span>
<span class="">
%= password_field 'newPassVerify', class => "", class=> 'sme-password'
</span>
</p>
<p> <div>
<br><br> <%= l 'usr_RESET_DESC2' %>
%= submit_button "$btn", class => "" </div>
</p>
<br>
<div>
<%= l 'PASSWORD_NEW' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="newPass" id="newPass" type="password" class="form-control sme-password" placeholder="Password">
</div>
</div>
<br>
<div>
<%= l 'PASSWORD_VERIFY_NEW' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="newPassVerify" id="newPassVerify" type="password" class="form-control sme-password" placeholder="Password">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
%= hidden_field 'trt' => $usr_datas->{trt} %= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}

View File

@ -3,41 +3,70 @@
% my $btn = l('SAVE'); % my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin %= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
%= l 'usr_SYSTEM_PASSWORD_DESCRIPTION'
</p>
<p> <div>
<span class=""> <h2><%= l 'PASSWORD_RESET' %></h2>
%=l 'usr_CURRENT_SYSTEM_PASSWORD', class => "" </div>
</span>
<span class="">
%= password_field 'CurPass', class => "", class=> 'sme-password'
</span>
</p>
<p> <br>
<span class="">
%=l 'usr_NEW_SYSTEM_PASSWORD', class => ""
</span>
<span class="">
%= password_field 'Pass', class => "", class=> 'sme-password'
</span>
</p>
<p> <div>
<span class=""> <%= l 'usr_SYSTEM_PASSWORD_DESCRIPTION' %>
%=l 'usr_NEW_SYSTEM_PASSWORD_VERIFY', class => "" </div>
</span>
<span class="">
%= password_field 'PassVerify', class => "", class=> 'sme-password'
</span>
</p>
<p> <br>
<br><br>
%= submit_button "$btn", class => "" <div>
</p> <%=l 'usr_CURRENT_SYSTEM_PASSWORD' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="CurPass" id="Pass" type="password" class="form-control sme-password" placeholder="Current Password">
</div>
</div>
<br>
<div>
<%= l 'usr_NEW_SYSTEM_PASSWORD' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="Pass" id="Pass" type="password" class="form-control sme-password" placeholder="New Password">
</div>
</div>
<br>
<div>
<%= l 'usr_NEW_SYSTEM_PASSWORD_VERIFY' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="PassVerify" id="PassVerify" type="password" class="form-control sme-password" placeholder="New Password verify">
</div>
</div>
<br>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
%= hidden_field 'trt' => $usr_datas->{trt} %= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}

View File

@ -7,12 +7,6 @@
<%= $c->render_to_string(inline => l ('usr_CREATE_MODIFY_DESC')) %> <%= $c->render_to_string(inline => l ('usr_CREATE_MODIFY_DESC')) %>
<br><br> <br><br>
<!-- Are we add or modify ? -->
<!-- Add -->
<!-- No trt -->
<!-- Modify -->
<!-- trt =UPD user=XX -->
% my $btn = l('ADD'); % my $btn = l('ADD');
<form action="/smanager/useraccountsd" method="POST"> <form action="/smanager/useraccountsd" method="POST">
@ -41,6 +35,7 @@
% } else { % } else {
<!-- If not user set Button Save not Add --> <!-- If not user set Button Save not Add -->
% $btn = l('SAVE'); % $btn = l('SAVE');
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<label for="inputLastNAme" class="col-form-label"><%= l 'usr_ACCOUNT_NAME' %></label> <label for="inputLastNAme" class="col-form-label"><%= l 'usr_ACCOUNT_NAME' %></label>
@ -222,98 +217,81 @@
<!-- fix from here --> <!-- fix from here -->
<!-- Begin if ipsec --> <!-- Begin if ipsec needs fixing -->
% if ( $usr_datas->{trt} eq 'UPD' and $c->ipsec_for_acct eq 'OK' ) { % if ( $usr_datas->{trt} eq 'UPD' and $c->ipsec_for_acct eq 'OK' ) {
% my $btn2 = $c->l('DOWNLOAD'); % my $btn2 = $c->l('DOWNLOAD');
%= form_for '/useraccountso' => (method => 'POST') => begin %= form_for '/useraccountso' => (method => 'POST') => begin
<p> %= l 'usr_LABEL_IPSECRW_DOWNLOAD'
<span class=""> %= submit_button $btn2, class => ""
%=l 'usr_LABEL_IPSECRW_DOWNLOAD' %= hidden_field 'trt' => 'CRT'
</span>
<span class="">
%= submit_button $btn2, class => ""
</span>
</p>
%= hidden_field 'trt' => 'CRT'
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}
%end % end
% } % }
<!-- End if ipsec --> <!-- End if ipsec -->
<!-- Groups begin --> <!-- Groups begin -->
<div> <div>
% my @groups = @{$c->get_groups()}; % my @groups = @{$c->get_groups()};
%#= dumper @groups %#= dumper @groups
% if ( @groups ) { % if ( @groups ) {
<br><br> <br><br>
%=l 'usr_GROUP_MEMBERSHIPS' %=l 'usr_GROUP_MEMBERSHIPS'
<br><br> <br><br>
<table class="table table-bordered"> <table class="table table-bordered user-table-max-wdith">
<thead> <thead>
<tr> <tr>
<th> <th class="col-sm-1"><%= l 'usr_MEMBER' %></th>
%=l 'usr_MEMBER' <th class="col-sm-1"><%=l 'GROUP' %></th>
</th><th class=""> <th class="col-sm-1"><%=l 'DESCRIPTION' %></th>
%=l 'GROUP'
</th><th class="">
%=l 'DESCRIPTION'
</th>
</tr>
</thead>
<tbody>
% foreach my $g ( @groups) { </tr>
% my $user = $usr_datas->{user}; </thead>
% my $groupname = $g->key(); <tbody>
% my $description = $g->prop('Description');
% my $checked = '';
% if ( $user and $c->is_user_in_group($user, $groupname) ) {
% $checked = 'checked';
% }
<tr>
<td class="col-md-2"> % foreach my $g ( @groups) {
% if ( $checked eq 'checked' ) { % my $user = $usr_datas->{user};
<!-- % = check_box 'groupMemberships', value => $groupname, checked => $checked --> % my $groupname = $g->key();
<input type='checkbox' name='groupMemberships' checked value='<%= $groupname %>'> % my $description = $g->prop('Description');
%} else { % my $checked = '';
%= check_box 'groupMemberships' => $groupname % if ( $user and $c->is_user_in_group($user, $groupname) ) {
%} % $checked = 'checked';
</td> % }
<!-- t td => (class => "") => (check_box ' groupMemberships' => $groupname $checked) -->
%= t td => (class => "") => $groupname
%= t td => (class => "") => "$description"
</tr>
% }
</tbody>
</table>
% } <tr>
<td>
% if ( $checked eq 'checked' ) {
<input type='checkbox' name='groupMemberships' checked value='<%= $groupname %>'>
%} else {
%= check_box 'groupMemberships' => $groupname
%}
</td>
<td><%= $groupname %></td>
<td><%= $description %></td>
</tr>
% }
</tbody>
</table>
% }
<!-- Groups End --> <!-- Groups End -->
</div> </div>
% $btn = l('SAVE');
<div class="row g-3 align-items-center"> <div class="row g-3 align-items-center">
<div class="col-md-2"> <div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= l 'SAVE' %></button> <button type="submit" class="btn btn-primary"><%= $btn %></button>
</div> </div>
</div> </div>
%= hidden_field 'trt' => $usr_datas->{trt} %= hidden_field 'trt' => $usr_datas->{trt}
trt: <%= dumper $usr_datas->{trt} %>
user: <%= dumper $usr_datas->{user} %>
% if ( $usr_datas->{trt} eq 'UPD' ) { % if ( $usr_datas->{trt} eq 'UPD' ) {
%= hidden_field 'user' => $usr_datas->{user} %= hidden_field 'user' => $usr_datas->{user}
% } % }

View File

@ -3,8 +3,8 @@
<div class="container-sm"> <div class="container-sm">
<br> <br>
<h2><%= l 'usr_MODIFY_ADMIN_TITLE' %></h2> <h2><%= l 'usr_MODIFY_ADMIN_TITLE' %></h2>
<br><br>
<br><br>
<form action="/smanager/useraccountsd" method="POST"> <form action="/smanager/useraccountsd" method="POST">
%#= form_for '/useraccountsd' => (method => 'POST') => begin %#= form_for '/useraccountsd' => (method => 'POST') => begin
@ -102,15 +102,15 @@
<button type="submit" class="btn btn-primary"><%= l 'SAVE' %></button> <button type="submit" class="btn btn-primary"><%= l 'SAVE' %></button>
</div> </div>
</div> </div>
trt: <%= dumper $usr_datas->{trt} %>
user: <%= dumper $usr_datas->{user} %>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
% end
</form> </form>
trt: <%= dumper $usr_datas->{trt} %>
user: <%= dumper $usr_datas->{user} %>
%= hidden_field 'trt' => $usr_datas->{trt}
%= hidden_field 'user' => $usr_datas->{user}
% end
</div> </div>

View File

@ -17,6 +17,7 @@
% } % }
<h1><%= $title%></h1>
% if ( $notif ) { % if ( $notif ) {
<br> <br>

View File

@ -11,80 +11,111 @@
</p> </p>
% } % }
<h1> <h2><%= l 'pwd_ACCOUNT_PASSWORD_CHANGE' %></h2>
%= l 'pwd_ACCOUNT_PASSWORD_CHANGE'
</h1>
% if ( stash 'error' ) { % if ( stash 'error' ) {
<br> <br>
<div class=""> <div>
%= $c->render_to_string(inline => stash 'error') %= $c->render_to_string(inline => stash 'error')
</div> </div>
%} %}
<p>
% my $btn = l('pwd_PASSWORD_CHANGE'); % my $btn = l('pwd_PASSWORD_CHANGE');
% my $url = '/userpassword'; % my $url = '/userpassword';
%= $c->render_to_string( inline => l('pwd_DESCRIPTION'));
<div>
%= $c->render_to_string( inline => l('pwd_DESCRIPTION'));
</div>
% if ( $pwd_datas->{trt} eq 'RESET' ) { % if ( $pwd_datas->{trt} eq 'RESET' ) {
% $btn = l('pwd_PASSWORD_RESET'); % my $btn = l('pwd_PASSWORD_RESET');
% $url = '/userpasswordr'; % my $url = '/userpasswordr';
%= $c->render_to_string( inline => l('pwd_DESCRIPTION_RESET')); %= $c->render_to_string( inline => l('pwd_DESCRIPTION_RESET'));
% } % }
</p>
<br>
<!-- Start of Form -->
%= form_for $url => (method => 'POST') => begin %= form_for $url => (method => 'POST') => begin
<p>
<span class=""> <table class="table table-bordered user-table-max-wdith">
%= l 'pwd_YOUR_ACCOUNT' <thead>
</span> <tr>
<span class=""> <th class="col-sm">
%= $pwd_datas->{Account} %= l 'pwd_YOUR_ACCOUNT'
</span> </th>
<th class="col-sm">
%=l 'USER_NAME'
</th>
</tr>
</thead>
<tbody>
<tr>
<td><%= $pwd_datas->{Account} %></td>
<td><%= $pwd_datas->{name} %>Not in pwd_datas-> name ? :-( </td>
</tr>
</tbody>
</table>
<br>
% if ( $pwd_datas->{trt} ne 'RESET' ) {
<div>
<%= l 'pwd_PASSWORD_OLD' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="OldPass" id="OldPass" type="password" class="form-control sme-password" placeholder="Password">
</div>
</div>
% }
<br>
<div>
<%= l 'pwd_PASSWORD_NEW' %>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="Pass" id="Pass" type="password" class="form-control sme-password" placeholder="Password">
</div>
</div>
<br>
<div>
%=l 'pwd_PASSWORD_VERIFY_NEW'
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<input name="Passverify" id="PassVerify" type="password" class="form-control sme-password" placeholder="Password">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary"><%= $btn %></button>
</div>
</div>
%= hidden_field 'User' => $pwd_datas->{Account} %= hidden_field 'User' => $pwd_datas->{Account}
%= hidden_field 'Trt' => $pwd_datas->{trt} %= hidden_field 'Trt' => $pwd_datas->{trt}
%= hidden_field 'jwt' => $pwd_datas->{jwt} %= hidden_field 'jwt' => $pwd_datas->{jwt}
<br><br>
</p>
% if ( $pwd_datas->{trt} ne 'RESET' ) {
<p>
<span class="">
%= l 'pwd_PASSWORD_OLD'
</span>
<span class="">
%= password_field 'Oldpass', class => "", class=> 'sme-password'
</span>
<br><br>
</p>
% }
<p>
<span class="">
%=l 'pwd_PASSWORD_NEW'
</span>
<span class="">
%= password_field 'Pass', class => "", class=> 'sme-password'
</span>
<br><br>
</p>
<p>
<span class="">
%=l 'pwd_PASSWORD_VERIFY_NEW'
</span>
<span class="">
%= password_field 'Passverify', class => "", class=> 'sme-password'
</span>
<br><br>
</p>
<p>
<br>
%= submit_button "$btn", class => ""
</p>
% end % end
<!-- End of Form -->
</div> </div>

View File

@ -1,6 +1,6 @@
%define name smeserver-manager-AdminLTE %define name smeserver-manager-AdminLTE
%define version 11.0.0 %define version 11.0.0
%define release 13 %define release 14
Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2 Summary: AdminLTE is an html framework for admin consoles - this rpm adds it to smeserver manager2
Name: %{name} Name: %{name}
Version: %{version} Version: %{version}
@ -26,6 +26,9 @@ AdminLTE is an html framework for admin consoles
wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
%changelog %changelog
* Fri Apr 25 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-14.sme
- Finish user templates. Saving fixed. Start on groups
* Fri Apr 25 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-13.sme * Fri Apr 25 2025 John Crisp <jcrisp@safeandsoundit.co.uk> 11.0.0-13.sme
- Tidy some useraccounts formatting but admin page will not save - Tidy some useraccounts formatting but admin page will not save