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

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

View File

@ -1,23 +1,47 @@
<div id="">
<div>
% my $btn = l('REMOVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_REMOVE_ACCOUNT_TITLE'
</h2>
<div>
<h2><%= l 'usr_REMOVE_ACCOUNT_TITLE' %></h2>
</div>
<br>
<div>
Needs a text change in the Lex files
<br>
%= $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>
%= $c->render_to_string(inline => $c->l('usr_REMOVE_DESC2'))
</p>
<p>
<br>
%= submit_button "$btn", class => ""
</p>
<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 'user' => $usr_datas->{user}

View File

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

View File

@ -3,21 +3,46 @@
% my $btn = l('usr_LOCK');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'usr_LOCK_ACCOUNT_TITLE'
</h2>
<div>
<h2><%= l 'usr_LOCK_ACCOUNT_TITLE' %></h2>
</div>
<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>
%= $c->render_to_string(inline => $c->l('usr_LOCK_DESC2'))
</p>
<p>
<br>
%= submit_button "$btn", class => ""
</p>
<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 'user' => $usr_datas->{user}

View File

@ -3,38 +3,79 @@
% my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
<h2>
%=l 'RESET_PASSWORD_TITLE'
</h2>
<div>
<h2><%= l 'RESET_PASSWORD_TITLE' %></h2>
</div>
<br>
<div>
%= $c->l('usr_RESET_DESC', $usr_datas->{user}, $usr_datas->{name} );
</div>
<br>
%= l 'usr_RESET_DESC2'
</p>
<p>
<span class="">
%=l 'PASSWORD_NEW', class => ""
</span><span class="">
%= password_field 'newPass', class => "", class=> 'sme-password'
</span>
</p>
<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>
<p>
<span class="">
%=l 'PASSWORD_VERIFY_NEW', class => ""
</span>
<span class="">
%= password_field 'newPassVerify', class => "", class=> 'sme-password'
</span>
</p>
<br>
<p>
<br><br>
%= submit_button "$btn", class => ""
</p>
<div>
<%= l 'usr_RESET_DESC2' %>
</div>
<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 'user' => $usr_datas->{user}

View File

@ -3,41 +3,70 @@
% my $btn = l('SAVE');
%= form_for '/useraccountsd' => (method => 'POST') => begin
<p>
%= l 'usr_SYSTEM_PASSWORD_DESCRIPTION'
</p>
<p>
<span class="">
%=l 'usr_CURRENT_SYSTEM_PASSWORD', class => ""
</span>
<span class="">
%= password_field 'CurPass', class => "", class=> 'sme-password'
</span>
</p>
<div>
<h2><%= l 'PASSWORD_RESET' %></h2>
</div>
<p>
<span class="">
%=l 'usr_NEW_SYSTEM_PASSWORD', class => ""
</span>
<span class="">
%= password_field 'Pass', class => "", class=> 'sme-password'
</span>
</p>
<br>
<p>
<span class="">
%=l 'usr_NEW_SYSTEM_PASSWORD_VERIFY', class => ""
</span>
<span class="">
%= password_field 'PassVerify', class => "", class=> 'sme-password'
</span>
</p>
<div>
<%= l 'usr_SYSTEM_PASSWORD_DESCRIPTION' %>
</div>
<p>
<br><br>
%= submit_button "$btn", class => ""
</p>
<br>
<div>
<%=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 'user' => $usr_datas->{user}

View File

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

View File

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

View File

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

View File

@ -11,80 +11,111 @@
</p>
% }
<h1>
%= l 'pwd_ACCOUNT_PASSWORD_CHANGE'
</h1>
<h2><%= l 'pwd_ACCOUNT_PASSWORD_CHANGE' %></h2>
% if ( stash 'error' ) {
<br>
<div class="">
<div>
%= $c->render_to_string(inline => stash 'error')
</div>
%}
<p>
% my $btn = l('pwd_PASSWORD_CHANGE');
% my $url = '/userpassword';
<div>
%= $c->render_to_string( inline => l('pwd_DESCRIPTION'));
</div>
% if ( $pwd_datas->{trt} eq 'RESET' ) {
% $btn = l('pwd_PASSWORD_RESET');
% $url = '/userpasswordr';
% my $btn = l('pwd_PASSWORD_RESET');
% my $url = '/userpasswordr';
%= $c->render_to_string( inline => l('pwd_DESCRIPTION_RESET'));
% }
</p>
<br>
<!-- Start of Form -->
%= form_for $url => (method => 'POST') => begin
<p>
<span class="">
<table class="table table-bordered user-table-max-wdith">
<thead>
<tr>
<th class="col-sm">
%= l 'pwd_YOUR_ACCOUNT'
</span>
<span class="">
%= $pwd_datas->{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 'Trt' => $pwd_datas->{trt}
%= 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 of Form -->
</div>

View File

@ -1,6 +1,6 @@
%define name smeserver-manager-AdminLTE
%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
Name: %{name}
Version: %{version}
@ -26,6 +26,9 @@ AdminLTE is an html framework for admin consoles
wget https://github.com/ColorlibHQ/AdminLTE/archive/master.zip
%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
- Tidy some useraccounts formatting but admin page will not save