Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37730584
en ru br
ALT Linux repositórios
S:0.8.6-alt2
5.0: 0.5-alt2.1
4.1: 0.2-alt1.M41.4

Group :: Sistema/Configurações/Rede
RPM: alterator-ldap-users

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

alterator-ldap-users-0.2/000075500000000000000000000000001114625221600154235ustar00rootroot00000000000000alterator-ldap-users-0.2/Makefile000064400000000000000000000002101114625221600170540ustar00rootroot00000000000000NAME=ldap-users

INSTALL=/usr/bin/install

all:
clean: clean-po
install: install-module

include /usr/share/alterator/build/module.mak

alterator-ldap-users-0.2/applications/000075500000000000000000000000001114625221600201115ustar00rootroot00000000000000alterator-ldap-users-0.2/applications/ldap-users.desktop000064400000000000000000000002761114625221600235700ustar00rootroot00000000000000[Desktop Entry]
Type=Application
Categories=X-Alterator-Users
Icon=users
Terminal=false
Name=Ldap user accounts
X-Alterator-URI=/ldap-users
X-Alterator-Weight=30
X-Alterator-Help=ldap-users
alterator-ldap-users-0.2/backend3/000075500000000000000000000000001114625221600170755ustar00rootroot00000000000000alterator-ldap-users-0.2/backend3/ldap-users000075500000000000000000000116201114625221600211020ustar00rootroot00000000000000#!/bin/sh

alterator_api_version=1
po_domain="alterator-ldap-users"

#turn off auto expansion
set -f

. alterator-sh-functions
. shell-quote

UID_MIN=$(grep '^UID_MIN' /etc/login.defs 2>/dev/null|sed -r 's,UID_MIN[[:space:]]+,,')
[ -z "$UID_MIN" ] && UID_MIN=500

SLAPD_CONF="/etc/openldap/slapd-generated.conf"

local_getent()
{
local re="${2:-.*}"
grep "^$re:" "/etc/$1"
}

user_list()
{
local IFS=:

getent passwd|
while read name password uid gid gecos home shell; do
[ "$uid" -ge "$UID_MIN" ] || continue
[ "$shell" == "/sbin/nologin" ] || grep -qs "^$shell$" /etc/shells || continue
[ -x "$shell" ] || continue
echo "$name"
done 2>/dev/null
}

is_defined()
{
set |grep -qs "^$1="
}

user_args()
{
is_defined "in_gecos" && echo "cn: $in_gecos"
[ -n "$in_home" ] && echo "homeDirectory: $in_home"
[ -n "$in_shell" ] && echo "loginShell: $in_shell"
}

user_read()
{
local IFS=:
local name="$1";shift

getent passwd "$name"|
(read name password uid gid gecos home shell;
write_string_param gecos "$gecos"
write_string_param home "$home"
write_string_param shell "$shell"

! getent group wheel|cut -d: -f4|fgrep -qws "$name"
write_bool_param allow_su "$?")
}

user_write_error()
{
local msg="$(printf "$@")"
write_error "$msg"
return 1
}

user_write_retcode()
{
case "$1" in
1) write_error "`_ "can't update password file"`" ;; #'
2) write_error "`_ "invalid command syntax"`" ;;
3) write_error "`_ "invalid argument to option"`" ;;
4) write_error "`_ "uid already in use"`" ;;
6) write_error "`_ "specified user doesn't exist"`" ;; #'
8) write_error "`_ "user currently logged in"`" ;;
9) write_error "`_ "username already in use"`" ;;
10) write_error "`_ "can't update group file"`" ;; #'
12) write_error "`_ "can't create or remove home directory"`" ;;#'
13) write_error "`_ "can't create mail spool"`" ;; #'
*) write_error "retcode=$1" ;;
esac
return "$1"
}

user_chpasswd()
{
ldap-passwd "$1" "$2" 1>/dev/null ||
user_write_error "`_ "cannot change password"`"
}

user_new()
{
ldap-useradd "$1" 1>/dev/null ||
user_write "$1" 1>/dev/null ||
user_write_retcode "$?"
}

user_write()
{
user_args|ldap-usermod "$1" 1>/dev/null||
user_write_retcode "$?"
}

user_delete()
{
ldap-userdel "$1" 1>/dev/null||
user_write_retcode "$?"
}

group_write_retcode()
{
case "$1" in
2) write_error "`_ "invalid command syntax"`" ;;
3) write_error "`_ "invalid group name"`" ;;
4) write_error "`_ "gid not unique"`" ;;
6) write_error "`_ "specified group doesn't exist"`" ;;
8) write_error "`_ "can't remove user's primary group"`" ;; #'
9) write_error "`_ "group name not unique"`" ;;
10) write_error "`_ "can't update group file"`" ;; #'
*) write_error "retcode=$1" ;;
esac
return "$1"
}


group_include()
{
group_new "$1" || return 1

/usr/bin/gpasswd -a "$2" "$1" >/dev/null ||
user_write_error "`_ "unable to add user %s to group %s"`" "$2" "$1"
}

group_exclude()
{
/usr/bin/gpasswd -d "$2" "$1" >/dev/null
}

on_message()
{
case "$in_action" in
type)
write_type_item name system-account-name
;;
#object manipulations
list)
case "$in__objects" in
avail_shell)
while read sh; do
[ -x "$sh" ] || continue
write_enum_item "$sh"
done </etc/shells
write_enum_item "/sbin/nologin"
;;
*)
user_list|write_enum
;;
esac
;;
read)
[ -n "$in_name" ] || in_name="$(user_list|head -n1)"

write_string_param passwd_auto "$(pwqgen)"
! test_bool "$in_auto"
write_bool_param auto "$?"

[ -n "$in_name" ] || in_name="$(user_list|head -n1)"

[ -n "$in_name" ] && user_read "$in_name"
;;
write)
[ -n "$in_name" ] || in_name="$(user_list|head -n1)"

#main settings
eval user_write "$in_name" || return

#password
if test_bool "$in_auto" && [ -n "$in_passwd_auto" ]; then
user_chpasswd "$in_name" "$in_passwd_auto"
elif ! test_bool "$in_auto" && [ -n "$in_passwd_1" -o -n "$in_passwd_2" ] ; then
if [ "$in_passwd_1" != "$in_passwd_2" ]; then
write_error "`_ "Passwords mismatch"`"
return
else
user_chpasswd "$in_name" "$in_passwd_1"
fi
fi

write_nop
;;
new)
if [ -z "$in_name" ];then
write_nop
return
fi

#prepare password
local password=
if test_bool "$in_auto" && [ -n "$in_passwd_auto" ]; then
password="$in_passwd_auto"
elif ! test_bool "$in_auto" && [ -n "$in_passwd_1" -o -n "$in_passwd_2" ] ; then
if [ "$in_passwd_1" != "$in_passwd_2" ]; then
write_error "`_ "Passwords mismatch"`"
return
else
password="$in_passwd_1"
fi
fi

#new
eval user_new "$in_name" || return


#password
[ -n "$password" ] &&
user_chpasswd "$in_name" "$password"

write_nop
;;
delete)
if [ -n "$in_name" ] ;then
user_delete "$in_name" || return
fi
write_nop
;;
esac
}

message_loop
alterator-ldap-users-0.2/help/000075500000000000000000000000001114625221600163535ustar00rootroot00000000000000alterator-ldap-users-0.2/help/ru_RU/000075500000000000000000000000001114625221600174075ustar00rootroot00000000000000alterator-ldap-users-0.2/help/ru_RU/ldap-users.html000064400000000000000000000077601114625221600223660ustar00rootroot00000000000000<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<h2>Учётные записи LDAP</h2>

<p>Linux&nbsp;&mdash; многопользовательская система.
Зарегистрировавшись&nbsp;&mdash; введя имя (login) и пароль&nbsp;&mdash;
каждый пользователь, во-первых, приобретает возможность работать в удобном
ему окружении, во-вторых, получает доступ к своим файлам, закрытым для
других пользователей и просто посторонних.</p>

<p>В процессе установки предлагается создать только одну учётную запись
обычного пользователя, чтобы от его имени администратор мог выполнять
задачи, которые не требуют привилегий суперпользователя. Учётные записи для
всех прочих пользователей можно будет создать в любой момент после установки
системы.</p>

<h3>Создание новой учётной записи</h3>

<dl>
<dt>Новая учётная запись</dt>
<dd>После ввода допустимого имени необходимо нажать <em>Создать</em>,
после чего имя отобразится в списке слева. Для дополнительных настроек
необходимо выделить добавленное имя либо, если необходимо изменить
существующую учётную запись, выбрать её их списка.</dd>
<dt>Комментарий</dt>
<dd>Произвольный комментарий к учётной записи. Часто здесь указывается
реальные имя и фамилия пользователя.</dd>
<dt>Домашний каталог</dt>
<dd>Каталог пользователя, в котором он будет иметь полные права. В случае
регистрации в консоли работа начинается именно в этом каталоге. Обычно
домашний каталог пользователя располагается в /home/имя_пользователя, где
имя_пользователя&nbsp;&mdash; это имя учётной записи.</dd>
<dt>Интерпретатор команд</dt>
<dd>Это командная оболочка, запускаемая по умолчанию при регистрации
пользователя в текстовой консоли. По умолчанию используется
/bin/bash.</dd>
<dt>Входит в группу администраторов</dt>
<dd>При установленной отметке пользователь имеет возможность получить
права администратора (root). Например, при помощи команды <em>su</em>.
Естественно, для этого необходимо знать пароль администратора.</dd>
<dt>Пароль</dt>
<dd>Пароль учётной записи может быть сгенерирован автоматически
(<em>Создать автоматически</em>) либо создан самостоятельно. Во втором
случае необходимо ввести его подтверждение.</dd>
</dl>

</body>
</html>
alterator-ldap-users-0.2/po/000075500000000000000000000000001114625221600160415ustar00rootroot00000000000000alterator-ldap-users-0.2/po/alterator-ldap-users.pot000064400000000000000000000064471114625221600226520ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-03 17:04+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: standard input:1
msgid "Ldap user accounts"
msgstr ""

#: ui/ldap-users/index.scm:28
msgid "Do you really want to delete user "
msgstr ""

#: ui/ldap-users/index.scm:65
msgid "New account:"
msgstr ""

#: ui/ldap-users/index.scm:67
msgid "Create"
msgstr ""

#.
#: ui/ldap-users/index.scm:81
msgid "Comment:"
msgstr ""

#.
#: ui/ldap-users/index.scm:84
msgid "Home directory:"
msgstr ""

#.
#: ui/ldap-users/index.scm:87
msgid "Shell:"
msgstr ""

#: ui/ldap-users/index.scm:91
msgid "Member of administrators group"
msgstr ""

#.
#: ui/ldap-users/index.scm:97 ui/ldap-users/add/index.scm:60
msgid "Password:"
msgstr ""

#: ui/ldap-users/index.scm:100 ui/ldap-users/add/index.scm:63
msgid "Generate automatically"
msgstr ""

#: ui/ldap-users/index.scm:103 ui/ldap-users/add/index.scm:66
msgid "(enter passphrase)"
msgstr ""

#: ui/ldap-users/index.scm:105 ui/ldap-users/add/index.scm:68
msgid "(repeat passphrase)"
msgstr ""

#: ui/ldap-users/index.scm:107 ui/ldap-users/add/index.scm:70
msgid "Generate"
msgstr ""

#: ui/ldap-users/index.scm:116
msgid "Apply"
msgstr ""

#: ui/ldap-users/index.scm:118
msgid "Delete user"
msgstr ""

#: ui/ldap-users/add/index.scm:17
msgid "You should define a system user"
msgstr ""

#: ui/ldap-users/add/index.scm:20
msgid "You should define a password"
msgstr ""

#: ui/ldap-users/add/index.scm:46
msgid "New user account"
msgstr ""

#: ui/ldap-users/add/index.scm:51
msgid "Name:"
msgstr ""

#: backend3/ldap-users:73
msgid "can't update password file"
msgstr ""

#. '
#: backend3/ldap-users:74 backend3/ldap-users:117
msgid "invalid command syntax"
msgstr ""

#: backend3/ldap-users:75
msgid "invalid argument to option"
msgstr ""

#: backend3/ldap-users:76
msgid "uid already in use"
msgstr ""

#: backend3/ldap-users:77
msgid "specified user doesn't exist"
msgstr ""

#. '
#: backend3/ldap-users:78
msgid "user currently logged in"
msgstr ""

#: backend3/ldap-users:79
msgid "username already in use"
msgstr ""

#: backend3/ldap-users:80 backend3/ldap-users:123
msgid "can't update group file"
msgstr ""

#. '
#: backend3/ldap-users:81
msgid "can't create or remove home directory"
msgstr ""

#. '
#: backend3/ldap-users:82
msgid "can't create mail spool"
msgstr ""

#: backend3/ldap-users:92
msgid "cannot change password"
msgstr ""

#: backend3/ldap-users:118
msgid "invalid group name"
msgstr ""

#: backend3/ldap-users:119
msgid "gid not unique"
msgstr ""

#: backend3/ldap-users:120
msgid "specified group doesn't exist"
msgstr ""

#: backend3/ldap-users:121
msgid "can't remove user's primary group"
msgstr ""

#. '
#: backend3/ldap-users:122
msgid "group name not unique"
msgstr ""

#: backend3/ldap-users:135
msgid "unable to add user %s to group %s"
msgstr ""

#: backend3/ldap-users:186 backend3/ldap-users:214
msgid "Passwords mismatch"
msgstr ""
alterator-ldap-users-0.2/po/ru.po000064400000000000000000000117371114625221600170400ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-03 17:04+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#: standard input:1
msgid "Ldap user accounts"
msgstr "Учетные записи LDAP"

#: ui/ldap-users/index.scm:28
msgid "Do you really want to delete user "
msgstr "Вы действительно хотите удалить пользователя "

#: ui/ldap-users/index.scm:65
msgid "New account:"
msgstr "Новая учётная запись:"

#: ui/ldap-users/index.scm:67
msgid "Create"
msgstr "Создать"

#.
#: ui/ldap-users/index.scm:81
msgid "Comment:"
msgstr "Комментарий:"

#.
#: ui/ldap-users/index.scm:84
msgid "Home directory:"
msgstr "Домашний каталог:"

#.
#: ui/ldap-users/index.scm:87
msgid "Shell:"
msgstr "Интерпретатор команд:"

#: ui/ldap-users/index.scm:91
msgid "Member of administrators group"
msgstr "Входит в группу администраторов"

#.
#: ui/ldap-users/index.scm:97 ui/ldap-users/add/index.scm:60
msgid "Password:"
msgstr "Пароль:"

#: ui/ldap-users/index.scm:100 ui/ldap-users/add/index.scm:63
msgid "Generate automatically"
msgstr "Создать автоматически"

#: ui/ldap-users/index.scm:103 ui/ldap-users/add/index.scm:66
msgid "(enter passphrase)"
msgstr "(введите фразу)"

#: ui/ldap-users/index.scm:105 ui/ldap-users/add/index.scm:68
msgid "(repeat passphrase)"
msgstr "(повторите фразу)"

#: ui/ldap-users/index.scm:107 ui/ldap-users/add/index.scm:70
msgid "Generate"
msgstr "Сгенерировать"

#: ui/ldap-users/index.scm:116
msgid "Apply"
msgstr "Применить"

#: ui/ldap-users/index.scm:118
msgid "Delete user"
msgstr "Удалить пользователя"

#: ui/ldap-users/add/index.scm:17
msgid "You should define a system user"
msgstr "Вы должны указать системного пользователя"

#: ui/ldap-users/add/index.scm:20
msgid "You should define a password"
msgstr "Вы должны указать пароль"

#: ui/ldap-users/add/index.scm:46
msgid "New user account"
msgstr "Новая учётная запись пользователя"

#: ui/ldap-users/add/index.scm:51
msgid "Name:"
msgstr "Имя:"

#: backend3/ldap-users:73
msgid "can't update password file"
msgstr "невозможно обновить базу паролей"

#. '
#: backend3/ldap-users:74 backend3/ldap-users:117
msgid "invalid command syntax"
msgstr "неверный синтаксис команды"

#: backend3/ldap-users:75
msgid "invalid argument to option"
msgstr "неверный параметр к аргументу"

#: backend3/ldap-users:76
msgid "uid already in use"
msgstr "uid уже используется"

#: backend3/ldap-users:77
msgid "specified user doesn't exist"
msgstr "пользователь не существует"

#. '
#: backend3/ldap-users:78
msgid "user currently logged in"
msgstr "пользователь сейчас в системе"

#: backend3/ldap-users:79
msgid "username already in use"
msgstr "имя пользователя уже занято"

#: backend3/ldap-users:80 backend3/ldap-users:123
msgid "can't update group file"
msgstr "невозможно обновить базу групп"

#. '
#: backend3/ldap-users:81
msgid "can't create or remove home directory"
msgstr "невозможно создать или удалить домашний каталог"

#. '
#: backend3/ldap-users:82
msgid "can't create mail spool"
msgstr "невозможно создать почтовую очередь"

#: backend3/ldap-users:92
msgid "cannot change password"
msgstr "невозможно изменить пароль"

#: backend3/ldap-users:118
msgid "invalid group name"
msgstr "неверное имя группы"

#: backend3/ldap-users:119
msgid "gid not unique"
msgstr "gid не уникален"

#: backend3/ldap-users:120
msgid "specified group doesn't exist"
msgstr "указанная группа не существует"

#: backend3/ldap-users:121
msgid "can't remove user's primary group"
msgstr "невозможно удалить первичную группу пользователя"

#. '
#: backend3/ldap-users:122
msgid "group name not unique"
msgstr "имя группы уже занято"

#: backend3/ldap-users:135
msgid "unable to add user %s to group %s"
msgstr "невозможно добавить пользователя %s в группу %s"

#: backend3/ldap-users:186 backend3/ldap-users:214
msgid "Passwords mismatch"
msgstr "Введённые пароли не совпадают"
alterator-ldap-users-0.2/templates/000075500000000000000000000000001114625221600174215ustar00rootroot00000000000000alterator-ldap-users-0.2/templates/ldap-users/000075500000000000000000000000001114625221600215005ustar00rootroot00000000000000alterator-ldap-users-0.2/templates/ldap-users/index.html000064400000000000000000000060741114625221600235040ustar00rootroot00000000000000<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<!-- ldap user administration module -->
<html wf="card-index">
<head>
<title>User accounts - ALT Linux Console</title>
<script>
effectShow("passwd_1", "auto", false);
effectShow("passwd_2", "auto", false);
effectShow("passwd_auto", "auto", true);
</script>
</head>
<body>
<table>
<tr>
<td colspan="2">
<form method="POST">
<input type="hidden" name="card-index-mode" value="new"/>
<span translate="_" name="name">New account:</span>
<input type="text" class="text" name="name"/>
<input type="submit" name="card-index-apply-main" value="Create" class="btn"/>
</form>
<hr/>
</td>
</tr>
<tr>
<td style="width:30%">
<!-- selector part -->
<form method="POST" class="selector-chooser" id="ajax-selector">
<select name="name" size="20" style="width:90%"/><br/>
<input type="submit" name="card-index-select" value="Select" class="btn"/>
</form>
</td>
<td>
<form method="POST" class="selector-data">
<div class="selector-name"/>
<table class="form-table">
<tbody>
<tr>
<td><span translate="_">Comment:</span></td>
<td><input type="text" class="text" name="gecos"/></td>
</tr>
<tr>
<td><span translate="_">Home directory:</span></td>
<td><input type="text" class="text" name="home"/></td>
</tr>
<tr>
<td><span translate="_">Shell:</span></td>
<td><select name="shell" enumref="/ldap-users/avail_shell"/></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td valign="top"><span translate="_">Password:</span></td>
<td>
<table>
<tr>
<td style="text-align:left;">
<input type="checkbox" name="auto"/>
<span translate="_">Generate automatically</span>
</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="password" name="passwd_1" class="text" style="display:none"/></td>
<td><small><span translate="_" name="passwd_1" style="display:none">(enter passphrase)</span></small></td>
</tr>
<tr>
<td><input type="password" name="passwd_2" class="text" style="display:none"/></td>
<td><small><span translate="_" name="passwd_2" style="display:none">(repeat passphrase)</span></small></td>
</tr>
<tr>
<td><input type="text" name="passwd_auto" class="text" style="display:none"/></td>
<td><input type="submit" name="passwd_auto" value="Generate" class="btn" style="display:none"/></td>
</tr>
<tr>
<td colspan="2"><span name="passwd_auto" style="display:none">&nbsp;</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td nowrap="yes">
<input type="submit" name="card-index-apply" value="Apply" class="btn"/>&nbsp;&nbsp;&nbsp;
<input type="submit" name="card-index-delete" value="Delete user" class="btn"/>
</td>
</tr>
</tbody>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
alterator-ldap-users-0.2/ui/000075500000000000000000000000001114625221600160405ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/000075500000000000000000000000001114625221600201175ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/add/000075500000000000000000000000001114625221600206475ustar00rootroot00000000000000alterator-ldap-users-0.2/ui/ldap-users/add/index.scm000064400000000000000000000043451114625221600224700ustar00rootroot00000000000000(document:surround "/std/frame")
(document:surround "/std/functions")
(document:envelop with-translation _ "alterator-ldap-users")

(define (write-user)
(catch/message
(lambda()
(let ((passwd_1 (passwd_1 value))
(passwd_2 (passwd_2 value))
(passwd_auto (passwd_auto value))
(auto (auto value))
(account (account value)))
(cond
((string-null? account)
(if (pair? (woo-list "/ldap-users"))
'skip-step
(woo-throw (_ "You should define a system user"))))
((or (and (not auto) (string-null? passwd_1))
(and auto (string-null? passwd_auto)))
(woo-throw (_ "You should define a password")))
(else
(woo-new "/ldap-users"
'name account
'allow_su #t
'auto auto
'passwd_auto passwd_auto
'passwd_1 passwd_1
'passwd_2 passwd_2)))))))

(define (read-user)
(catch/message
(lambda()
(let ((data (woo-read-first "/ldap-users")))
(passwd_auto value (woo-get-option data 'passwd_auto))))))

;;;;;;;;;;;;;;;;;;;;;;;;;

(frame:on-next (thunk (or (write-user) 'cancel)))

;;; UI

(gridbox
columns "20;0;60;20"
;;
(spacer)
(label text (_ "New user account") colspan 3)
;;
(label colspan 4)
;;
(spacer)
(label text (_ "Name:") align "right" name "name")
(document:id account (edit focus #t))
(spacer)

;;
(label colspan 4)

;;
(spacer)
(label text (_ "Password:") align "top;right")
(gridbox
columns "100;0"
(document:id auto (checkbox text (_ "Generate automatically") name "auto"))
(spacer)
(document:id passwd_1 (edit name "passwd_1" echo "stars" visibility #f))
(label name "passwd_1" text (small (_ "(enter passphrase)")) visibility #f)
(document:id passwd_2 (edit name "passwd_2" echo "stars" visibility #f))
(label name "passwd_1" text (small (_ "(repeat passphrase)")) visibility #f)
(document:id passwd_auto (edit name "passwd_auto" visibility #f))
(button text (_ "Generate") name "passwd_auto" visibility #f (when clicked (read-user)))
(label colspan 2 name "passwd_auto" visibility #f))
(spacer))

;;; Logic
(effect-show "passwd_1" "auto" #f)
(effect-show "passwd_2" "auto" #f)
(effect-show "passwd_auto" "auto" #t)

(document:root
(when loaded
(read-user)
(init-effect)))
alterator-ldap-users-0.2/ui/ldap-users/index.scm000064400000000000000000000067451114625221600217460ustar00rootroot00000000000000(document:surround "/std/frame")
(document:insert "/std/functions")

(document:envelop with-translation _ "alterator-ldap-users")

;;; Functions

(define (read-user name)
(let ((data (woo-read-first "/ldap-users/" 'name name)))
(passwd_auto value (woo-get-option data 'passwd_auto))
(user-gecos value (woo-get-option data 'gecos))
(user-home value (woo-get-option data 'home))
(user-shell value (woo-get-option data 'shell))
(user-allow-su value (woo-get-option data 'allow_su))))

(define (list-user)
(user-shell enumref "/ldap-users/avail_shell")
(user-list enumref "/ldap-users")

(and (positive? (user-list count)) (user-list current 0))
(read-user ""))

(define (delete-user)
(and-let* ((name (user-list value)))
(catch/message
(lambda()
(if (eq? 'yes (document:popup-warning
(string-append (_ "Do you really want to delete user ")
name
" ?")
'no
'yes))
(begin
(woo-delete "/ldap-users/" 'name name)
(list-user)))))))

(define (new-user)
(catch/message
(lambda()
(woo-new "/ldap-users" 'name (new_name value))
(list-user))))

(define (write-user)
(catch/message
(lambda()
(woo-write "/ldap-users/"
'name (user-list value)
'home (user-home value)
'gecos (user-gecos value)
'shell (user-shell value)
'allow_su (user-allow-su value)
'passwd_1 (passwd_1 value)
'passwd_2 (passwd_2 value)
'passwd_auto (passwd_auto value)
'auto (auto value)))))

;;; UI
(gridbox
columns "100"
align "top"
margin 10

(label)
(hbox align "left"
(label text (_ "New account:") name "name")
(document:id new_name (edit))
(button text (_ "Create") (when clicked (new-user))))

(separator)
(splitbox
columns "30;70"
(document:id user-list
(listbox ;;header (vector (_ "Accounts"))
align "top"
(when selected
(catch/message
(lambda() (read-user (user-list value)))))))
(gridbox
columns "0;100"
;;
(label text (_ "Comment:") align "right")
(document:id user-gecos (edit))
;;
(label text (_ "Home directory:") align "right")
(document:id user-home (edit))
;;
(label text (_ "Shell:") align "right")
(document:id user-shell (combobox))
;;
(spacer)

;;
(label colspan 2)

;;
(label text (_ "Password:") align "top;right")
(gridbox
columns "100;0"
(document:id auto (checkbox text (_ "Generate automatically") name "auto"))
(spacer)
(document:id passwd_1 (edit name "passwd_1" echo "stars" visibility #f))
(label name "passwd_1" text (small (_ "(enter passphrase)")) visibility #f)
(document:id passwd_2 (edit name "passwd_2" echo "stars" visibility #f))
(label name "passwd_1" text (small (_ "(repeat passphrase)")) visibility #f)
(document:id passwd_auto (edit name "passwd_auto" visibility #f))
(button text (_ "Generate") name "passwd_auto" visibility #f (when clicked (read-user (user-list value))))
(label colspan 2 name "passwd_auto" visibility #f))

;;
(label colspan 2)

;;
(spacer)
(hbox align "left"
(button text (_ "Apply") (when clicked (write-user)))
(label)
(button text (_ "Delete user") (when clicked (delete-user)))))))

;;; Logic
(effect-show "passwd_1" "auto" #f)
(effect-show "passwd_2" "auto" #f)
(effect-show "passwd_auto" "auto" #t)

(document:root
(when loaded
(catch/message
(lambda()
(init-effect)
(list-user)))))
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009