[vhffs-dev] [561] Putting 4.1 branche into trunk to have a coherent layout ( I guess there are about 100 errors) |
[ Thread Index |
Date Index
| More vhffs.org/vhffs-dev Archives
]
- To: vhffs-dev@xxxxxxxxx
- Subject: [vhffs-dev] [561] Putting 4.1 branche into trunk to have a coherent layout ( I guess there are about 100 errors)
- From: subversion@xxxxxxxxx
- Date: Sun, 15 Apr 2007 23:17:51 +0200
Revision: 561
Author: beuss
Date: 2007-04-15 21:17:33 +0000 (Sun, 15 Apr 2007)
Log Message:
-----------
Putting 4.1 branche into trunk to have a coherent layout (I guess there are about 100 errors)
Modified Paths:
--------------
trunk/Makefile
trunk/vhffs-api/src/Vhffs/Acl.pm
trunk/vhffs-api/src/Vhffs/Conf.pm
trunk/vhffs-api/src/Vhffs/Constants.pm
trunk/vhffs-api/src/Vhffs/DB.pm
trunk/vhffs-api/src/Vhffs/Functions.pm
trunk/vhffs-api/src/Vhffs/Group.pm
trunk/vhffs-api/src/Vhffs/Listengine/Intl.pm
trunk/vhffs-api/src/Vhffs/Main.pm
trunk/vhffs-api/src/Vhffs/Misc/Mailings.pm
trunk/vhffs-api/src/Vhffs/Note.pm
trunk/vhffs-api/src/Vhffs/Object.pm
trunk/vhffs-api/src/Vhffs/Panel/Admin.pm
trunk/vhffs-api/src/Vhffs/Panel/Avatar.pm
trunk/vhffs-api/src/Vhffs/Panel/Confirmation.pm
trunk/vhffs-api/src/Vhffs/Panel/Cvs.pm
trunk/vhffs-api/src/Vhffs/Panel/DNS.pm
trunk/vhffs-api/src/Vhffs/Panel/Group.pm
trunk/vhffs-api/src/Vhffs/Panel/Mail.pm
trunk/vhffs-api/src/Vhffs/Panel/Mailinglist.pm
trunk/vhffs-api/src/Vhffs/Panel/Main.pm
trunk/vhffs-api/src/Vhffs/Panel/Menu.pm
trunk/vhffs-api/src/Vhffs/Panel/Mysql.pm
trunk/vhffs-api/src/Vhffs/Panel/Pgsql.pm
trunk/vhffs-api/src/Vhffs/Panel/Repository.pm
trunk/vhffs-api/src/Vhffs/Panel/Svn.pm
trunk/vhffs-api/src/Vhffs/Panel/User.pm
trunk/vhffs-api/src/Vhffs/Panel/Web.pm
trunk/vhffs-api/src/Vhffs/Robots/Cvs.pm
trunk/vhffs-api/src/Vhffs/Robots/Group.pm
trunk/vhffs-api/src/Vhffs/Robots/Mailing.pm
trunk/vhffs-api/src/Vhffs/Robots/Mysql.pm
trunk/vhffs-api/src/Vhffs/Robots/Postgres.pm
trunk/vhffs-api/src/Vhffs/Robots/Repository.pm
trunk/vhffs-api/src/Vhffs/Robots/Svn.pm
trunk/vhffs-api/src/Vhffs/Robots/User.pm
trunk/vhffs-api/src/Vhffs/Robots/Web.pm
trunk/vhffs-api/src/Vhffs/Robots.pm
trunk/vhffs-api/src/Vhffs/Services/Cvs.pm
trunk/vhffs-api/src/Vhffs/Services/DNS.pm
trunk/vhffs-api/src/Vhffs/Services/Httpd.pm
trunk/vhffs-api/src/Vhffs/Services/Mail.pm
trunk/vhffs-api/src/Vhffs/Services/MailUser.pm
trunk/vhffs-api/src/Vhffs/Services/Mailing.pm
trunk/vhffs-api/src/Vhffs/Services/Mysql.pm
trunk/vhffs-api/src/Vhffs/Services/Postgres.pm
trunk/vhffs-api/src/Vhffs/Services/Repository.pm
trunk/vhffs-api/src/Vhffs/Services/Svn.pm
trunk/vhffs-api/src/Vhffs/Stats.pm
trunk/vhffs-api/src/Vhffs/User.pm
trunk/vhffs-api/src/examples/add_acl.pl
trunk/vhffs-api/src/examples/add_acl_dns.pl
trunk/vhffs-api/src/examples/create_box.pl
trunk/vhffs-api/src/examples/create_cvs.pl
trunk/vhffs-api/src/examples/create_cvs_panel.pl
trunk/vhffs-api/src/examples/create_dir.pl
trunk/vhffs-api/src/examples/create_dns.pl
trunk/vhffs-api/src/examples/create_forward.pl
trunk/vhffs-api/src/examples/create_group.pl
trunk/vhffs-api/src/examples/create_group_by_panel.pl
trunk/vhffs-api/src/examples/create_list.pl
trunk/vhffs-api/src/examples/create_mail.pl
trunk/vhffs-api/src/examples/create_mysql.pl
trunk/vhffs-api/src/examples/create_mysql_panel.pl
trunk/vhffs-api/src/examples/create_panel_mail.pl
trunk/vhffs-api/src/examples/create_postgres.pl
trunk/vhffs-api/src/examples/create_repository.pl
trunk/vhffs-api/src/examples/create_user.pl
trunk/vhffs-api/src/examples/create_web.pl
trunk/vhffs-api/src/examples/create_web_panel.pl
trunk/vhffs-api/src/examples/delbox.pl
trunk/vhffs-api/src/examples/delete_acl.pl
trunk/vhffs-api/src/examples/generate_password.pl
trunk/vhffs-api/src/examples/get_list.pl
trunk/vhffs-api/src/examples/hash_webdir.pl
trunk/vhffs-api/src/examples/hashdomain.pl
trunk/vhffs-api/src/examples/hashhome_example.pl
trunk/vhffs-api/src/examples/hashpopuser.pl
trunk/vhffs-api/src/examples/join_group.pl
trunk/vhffs-api/src/examples/list_themes.pl
trunk/vhffs-api/src/examples/mailuser.pl
trunk/vhffs-api/src/examples/mailuser_add_box.pl
trunk/vhffs-api/src/examples/modify_acl.pl
trunk/vhffs-api/src/examples/modify_user.pl
trunk/vhffs-api/src/examples/perm_for_user.pl
trunk/vhffs-api/src/examples/print_domain.pl
trunk/vhffs-api/src/examples/show_acl_per_object.pl
trunk/vhffs-api/src/examples/show_dns_per_group.pl
trunk/vhffs-api/src/examples/show_dns_per_user.pl
trunk/vhffs-api/src/examples/show_dumper_cvs.pl
trunk/vhffs-api/src/examples/show_dumper_group.pl
trunk/vhffs-api/src/examples/show_dumper_object.pl
trunk/vhffs-api/src/examples/show_dumper_user.pl
trunk/vhffs-api/src/examples/show_groups_per_user.pl
trunk/vhffs-api/src/examples/show_last_users.pl
trunk/vhffs-api/src/examples/show_mail_conf.pl
trunk/vhffs-api/src/examples/show_mail_per_group.pl
trunk/vhffs-api/src/examples/show_members_from_list.pl
trunk/vhffs-api/src/examples/stats.pl
trunk/vhffs-backend/conf/vhffs.conf
trunk/vhffs-backend/src/pgsql/initdb.sql
trunk/vhffs-doc/config/exim4-mx1/exim4.conf
trunk/vhffs-doc/config/exim4-mx1/exim4.conf.hash
trunk/vhffs-intl/result/es_ES/vhffs.mo
trunk/vhffs-intl/result/fr_FR/vhffs.mo
trunk/vhffs-intl/src/vhffs.pot
trunk/vhffs-irc/modobot.pl
trunk/vhffs-jabber/vhffspipe.pl
trunk/vhffs-listengine/src/archives/archives.pl
trunk/vhffs-listengine/src/archives/show_msg.pl
trunk/vhffs-listengine/src/listengine.pl
trunk/vhffs-panel/acl/add_acl_group.pl
trunk/vhffs-panel/acl/add_acl_user.pl
trunk/vhffs-panel/acl/submit.pl
trunk/vhffs-panel/acl/view.pl
trunk/vhffs-panel/admin/broadcast.pl
trunk/vhffs-panel/admin/broadcast_delete.pl
trunk/vhffs-panel/admin/broadcast_list.pl
trunk/vhffs-panel/admin/broadcast_submit.pl
trunk/vhffs-panel/admin/broadcast_view.pl
trunk/vhffs-panel/admin/cvs/edit.pl
trunk/vhffs-panel/admin/cvs/edit_submit.pl
trunk/vhffs-panel/admin/cvs/list.pl
trunk/vhffs-panel/admin/cvs/search.pl
trunk/vhffs-panel/admin/cvs/show.pl
trunk/vhffs-panel/admin/dns/list.pl
trunk/vhffs-panel/admin/dns/search.pl
trunk/vhffs-panel/admin/group/edit.pl
trunk/vhffs-panel/admin/group/edit_submit.pl
trunk/vhffs-panel/admin/group/list.pl
trunk/vhffs-panel/admin/group/search.pl
trunk/vhffs-panel/admin/group/show.pl
trunk/vhffs-panel/admin/mail/change_forward.pl
trunk/vhffs-panel/admin/mail/delete_box.pl
trunk/vhffs-panel/admin/mail/delete_forward.pl
trunk/vhffs-panel/admin/mail/edit.pl
trunk/vhffs-panel/admin/mail/list.pl
trunk/vhffs-panel/admin/mail/password_box.pl
trunk/vhffs-panel/admin/mail/search.pl
trunk/vhffs-panel/admin/mail/show.pl
trunk/vhffs-panel/admin/mailing/list.pl
trunk/vhffs-panel/admin/mailing/mailing_submit.pl
trunk/vhffs-panel/admin/mailing/search.pl
trunk/vhffs-panel/admin/moderation.pl
trunk/vhffs-panel/admin/moderation_submit.pl
trunk/vhffs-panel/admin/mysql/edit.pl
trunk/vhffs-panel/admin/mysql/edit_submit.pl
trunk/vhffs-panel/admin/mysql/list.pl
trunk/vhffs-panel/admin/mysql/search.pl
trunk/vhffs-panel/admin/mysql/show.pl
trunk/vhffs-panel/admin/object/delete_avatar.pl
trunk/vhffs-panel/admin/object/edit.pl
trunk/vhffs-panel/admin/object/edit_submit.pl
trunk/vhffs-panel/admin/object/list.pl
trunk/vhffs-panel/admin/object/search.pl
trunk/vhffs-panel/admin/pgsql/edit.pl
trunk/vhffs-panel/admin/pgsql/edit_submit.pl
trunk/vhffs-panel/admin/pgsql/list.pl
trunk/vhffs-panel/admin/pgsql/search.pl
trunk/vhffs-panel/admin/pgsql/show.pl
trunk/vhffs-panel/admin/repository/edit.pl
trunk/vhffs-panel/admin/repository/edit_submit.pl
trunk/vhffs-panel/admin/repository/list.pl
trunk/vhffs-panel/admin/repository/search.pl
trunk/vhffs-panel/admin/repository/show.pl
trunk/vhffs-panel/admin/stats.pl
trunk/vhffs-panel/admin/su.pl
trunk/vhffs-panel/admin/svn/list.pl
trunk/vhffs-panel/admin/svn/search.pl
trunk/vhffs-panel/admin/user/edit.pl
trunk/vhffs-panel/admin/user/edit_note.pl
trunk/vhffs-panel/admin/user/edit_submit.pl
trunk/vhffs-panel/admin/user/list.pl
trunk/vhffs-panel/admin/user/search.pl
trunk/vhffs-panel/admin/user/show.pl
trunk/vhffs-panel/admin/web/edit.pl
trunk/vhffs-panel/admin/web/edit_submit.pl
trunk/vhffs-panel/admin/web/list.pl
trunk/vhffs-panel/admin/web/search.pl
trunk/vhffs-panel/admin/web/show.pl
trunk/vhffs-panel/alert.pl
trunk/vhffs-panel/alert_submit.pl
trunk/vhffs-panel/auth.pl
trunk/vhffs-panel/cvs/create.pl
trunk/vhffs-panel/cvs/delete.pl
trunk/vhffs-panel/cvs/prefs.pl
trunk/vhffs-panel/cvs/prefs_save.pl
trunk/vhffs-panel/dns/create.pl
trunk/vhffs-panel/dns/delete.pl
trunk/vhffs-panel/dns/dns_submit.pl
trunk/vhffs-panel/dns/dns_type_submit.pl
trunk/vhffs-panel/dns/prefs.pl
trunk/vhffs-panel/getavatar.pl
trunk/vhffs-panel/group/create.pl
trunk/vhffs-panel/group/delete.pl
trunk/vhffs-panel/group/join_group.pl
trunk/vhffs-panel/group/prefs.pl
trunk/vhffs-panel/group/prefs_save.pl
trunk/vhffs-panel/group/project_submit.pl
trunk/vhffs-panel/group/quota_used.pl
trunk/vhffs-panel/group/remove_user_from_group.pl
trunk/vhffs-panel/history.pl
trunk/vhffs-panel/logout.pl
trunk/vhffs-panel/lost.pl
trunk/vhffs-panel/lost_ack.pl
trunk/vhffs-panel/mail/add_account.pl
trunk/vhffs-panel/mail/add_forward.pl
trunk/vhffs-panel/mail/change_forward.pl
trunk/vhffs-panel/mail/create.pl
trunk/vhffs-panel/mail/delete.pl
trunk/vhffs-panel/mail/delete_box.pl
trunk/vhffs-panel/mail/delete_forward.pl
trunk/vhffs-panel/mail/password_box.pl
trunk/vhffs-panel/mail/prefs.pl
trunk/vhffs-panel/mail/save_catchall.pl
trunk/vhffs-panel/mail/spambox.pl
trunk/vhffs-panel/mail/spamvirus.pl
trunk/vhffs-panel/mail/submit.pl
trunk/vhffs-panel/mailinglist/add_sub.pl
trunk/vhffs-panel/mailinglist/change_right.pl
trunk/vhffs-panel/mailinglist/create.pl
trunk/vhffs-panel/mailinglist/del_member.pl
trunk/vhffs-panel/mailinglist/delete.pl
trunk/vhffs-panel/mailinglist/prefs.pl
trunk/vhffs-panel/mailinglist/save_options.pl
trunk/vhffs-panel/mailinglist/submit.pl
trunk/vhffs-panel/mysql/create.pl
trunk/vhffs-panel/mysql/delete.pl
trunk/vhffs-panel/mysql/prefs.pl
trunk/vhffs-panel/mysql/prefs_save.pl
trunk/vhffs-panel/mysql/submit.pl
trunk/vhffs-panel/object/upavatar.pl
trunk/vhffs-panel/panel.pl
trunk/vhffs-panel/pgsql/create.pl
trunk/vhffs-panel/pgsql/delete.pl
trunk/vhffs-panel/pgsql/pgsql_submit.pl
trunk/vhffs-panel/pgsql/prefs.pl
trunk/vhffs-panel/pgsql/prefs_save.pl
trunk/vhffs-panel/public/allgroups.pl
trunk/vhffs-panel/public/allwebsites.pl
trunk/vhffs-panel/public/group.pl
trunk/vhffs-panel/public/index.pl
trunk/vhffs-panel/public/lastgroups.pl
trunk/vhffs-panel/public/lastusers.pl
trunk/vhffs-panel/public/rss/lastgroups.pl
trunk/vhffs-panel/public/rss/lastusers.pl
trunk/vhffs-panel/public/user.pl
trunk/vhffs-panel/public/websearch.pl
trunk/vhffs-panel/repository/create.pl
trunk/vhffs-panel/repository/delete.pl
trunk/vhffs-panel/repository/prefs.pl
trunk/vhffs-panel/repository/prefs_save.pl
trunk/vhffs-panel/repository/quota_used.pl
trunk/vhffs-panel/repository/repository_submit.pl
trunk/vhffs-panel/show_code.pl
trunk/vhffs-panel/subscribe.pl
trunk/vhffs-panel/svn/create.pl
trunk/vhffs-panel/svn/delete.pl
trunk/vhffs-panel/svn/prefs.pl
trunk/vhffs-panel/svn/prefs_save.pl
trunk/vhffs-panel/svn/svn_submit.pl
trunk/vhffs-panel/templates/admin/cvs/menu.tmpl
trunk/vhffs-panel/templates/admin/cvs/part-modo.tmpl
trunk/vhffs-panel/templates/admin/cvs/part.tmpl
trunk/vhffs-panel/templates/admin/dns/menu.tmpl
trunk/vhffs-panel/templates/admin/dns/part-modo.tmpl
trunk/vhffs-panel/templates/admin/dns/part.tmpl
trunk/vhffs-panel/templates/admin/group/edit.tmpl
trunk/vhffs-panel/templates/admin/group/menu.tmpl
trunk/vhffs-panel/templates/admin/group/part-modo.tmpl
trunk/vhffs-panel/templates/admin/group/part.tmpl
trunk/vhffs-panel/templates/admin/mail/menu.tmpl
trunk/vhffs-panel/templates/admin/mail/part-modo.tmpl
trunk/vhffs-panel/templates/admin/mail/part.tmpl
trunk/vhffs-panel/templates/admin/mailing/menu.tmpl
trunk/vhffs-panel/templates/admin/mailing/part.tmpl
trunk/vhffs-panel/templates/admin/main/general.tmpl
trunk/vhffs-panel/templates/admin/main/main.tmpl
trunk/vhffs-panel/templates/admin/misc/list.tmpl
trunk/vhffs-panel/templates/admin/misc/mailings_part.tmpl
trunk/vhffs-panel/templates/admin/misc/moderation.tmpl
trunk/vhffs-panel/templates/admin/misc/moderation_part.tmpl
trunk/vhffs-panel/templates/admin/misc/stats.tmpl
trunk/vhffs-panel/templates/admin/mysql/menu.tmpl
trunk/vhffs-panel/templates/admin/mysql/part-modo.tmpl
trunk/vhffs-panel/templates/admin/mysql/part.tmpl
trunk/vhffs-panel/templates/admin/object/part.tmpl
trunk/vhffs-panel/templates/admin/pgsql/menu.tmpl
trunk/vhffs-panel/templates/admin/pgsql/part-modo.tmpl
trunk/vhffs-panel/templates/admin/pgsql/part.tmpl
trunk/vhffs-panel/templates/admin/repository/menu.tmpl
trunk/vhffs-panel/templates/admin/repository/part-modo.tmpl
trunk/vhffs-panel/templates/admin/repository/part.tmpl
trunk/vhffs-panel/templates/admin/svn/menu.tmpl
trunk/vhffs-panel/templates/admin/svn/part-modo.tmpl
trunk/vhffs-panel/templates/admin/svn/part.tmpl
trunk/vhffs-panel/templates/admin/user/menu.tmpl
trunk/vhffs-panel/templates/admin/user/part-modo.tmpl
trunk/vhffs-panel/templates/admin/user/part.tmpl
trunk/vhffs-panel/templates/admin/web/edit.tmpl
trunk/vhffs-panel/templates/admin/web/menu.tmpl
trunk/vhffs-panel/templates/admin/web/part-modo.tmpl
trunk/vhffs-panel/templates/admin/web/part.tmpl
trunk/vhffs-panel/templates/cvs/create.tmpl
trunk/vhffs-panel/templates/cvs/menu.tmpl
trunk/vhffs-panel/templates/cvs/menu_sub.tmpl
trunk/vhffs-panel/templates/cvs/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/cvs/prefs.tmpl
trunk/vhffs-panel/templates/dns/list_a_sub.tmpl
trunk/vhffs-panel/templates/dns/list_cname_sub.tmpl
trunk/vhffs-panel/templates/dns/list_mx_sub.tmpl
trunk/vhffs-panel/templates/dns/list_ns_sub.tmpl
trunk/vhffs-panel/templates/dns/menu.tmpl
trunk/vhffs-panel/templates/dns/menu_sub.tmpl
trunk/vhffs-panel/templates/dns/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/dns/prefs.tmpl
trunk/vhffs-panel/templates/group/info.tmpl
trunk/vhffs-panel/templates/group/menu.tmpl
trunk/vhffs-panel/templates/group/menu_sub.tmpl
trunk/vhffs-panel/templates/group/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/mail/menu.tmpl
trunk/vhffs-panel/templates/mail/menu_sub.tmpl
trunk/vhffs-panel/templates/mail/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/mailinglist/list_part.tmpl
trunk/vhffs-panel/templates/mailinglist/menu.tmpl
trunk/vhffs-panel/templates/mailinglist/menu_sub.tmpl
trunk/vhffs-panel/templates/mailinglist/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/mailinglist/prefs.tmpl
trunk/vhffs-panel/templates/main/auth.tmpl
trunk/vhffs-panel/templates/main/panel.tmpl
trunk/vhffs-panel/templates/menu/group.tmpl
trunk/vhffs-panel/templates/menu/main.tmpl
trunk/vhffs-panel/templates/menu/user.tmpl
trunk/vhffs-panel/templates/mysql/menu.tmpl
trunk/vhffs-panel/templates/mysql/menu_sub.tmpl
trunk/vhffs-panel/templates/mysql/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/pgsql/menu.tmpl
trunk/vhffs-panel/templates/pgsql/menu_sub.tmpl
trunk/vhffs-panel/templates/pgsql/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/public/allwebsites.tmpl
trunk/vhffs-panel/templates/public/group.tmpl
trunk/vhffs-panel/templates/repository/menu.tmpl
trunk/vhffs-panel/templates/repository/menu_sub.tmpl
trunk/vhffs-panel/templates/repository/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/svn/menu.tmpl
trunk/vhffs-panel/templates/svn/menu_sub.tmpl
trunk/vhffs-panel/templates/svn/menu_sub_wait.tmpl
trunk/vhffs-panel/templates/user/create.tmpl
trunk/vhffs-panel/templates/user/mailuser.tmpl
trunk/vhffs-panel/templates/user/mailuserspam.tmpl
trunk/vhffs-panel/templates/user/mailuservirus.tmpl
trunk/vhffs-panel/templates/user/prefs.tmpl
trunk/vhffs-panel/templates/user/prefs_avatar.tmpl
trunk/vhffs-panel/templates/web/menu.tmpl
trunk/vhffs-panel/templates/web/menu_sub.tmpl
trunk/vhffs-panel/templates/web/menu_sub_wait.tmpl
trunk/vhffs-panel/themes/vhffs/main.css
trunk/vhffs-panel/user/delete.pl
trunk/vhffs-panel/user/prefs.pl
trunk/vhffs-panel/web/create.pl
trunk/vhffs-panel/web/delete.pl
trunk/vhffs-panel/web/prefs.pl
trunk/vhffs-panel/web/prefs_save.pl
trunk/vhffs-panel/web/web_submit.pl
trunk/vhffs-robots/src/create_cvs.pl
trunk/vhffs-robots/src/create_dns.pl
trunk/vhffs-robots/src/create_groups.pl
trunk/vhffs-robots/src/create_homes.pl
trunk/vhffs-robots/src/create_mail.pl
trunk/vhffs-robots/src/create_ml.pl
trunk/vhffs-robots/src/create_mysql.pl
trunk/vhffs-robots/src/create_pgsql.pl
trunk/vhffs-robots/src/create_repository.pl
trunk/vhffs-robots/src/create_svn.pl
trunk/vhffs-robots/src/create_viewvcconf.pl
trunk/vhffs-robots/src/create_web.pl
trunk/vhffs-robots/src/cvs_fixperms.pl
trunk/vhffs-robots/src/delete_cvs.pl
trunk/vhffs-robots/src/delete_dns.pl
trunk/vhffs-robots/src/delete_group.pl
trunk/vhffs-robots/src/delete_mail.pl
trunk/vhffs-robots/src/delete_ml.pl
trunk/vhffs-robots/src/delete_mysql.pl
trunk/vhffs-robots/src/delete_pgsql.pl
trunk/vhffs-robots/src/delete_repository.pl
trunk/vhffs-robots/src/delete_svn.pl
trunk/vhffs-robots/src/delete_users.pl
trunk/vhffs-robots/src/delete_web.pl
trunk/vhffs-robots/src/dump_mysql.pl
trunk/vhffs-robots/src/fix_quota.pl
trunk/vhffs-robots/src/fix_quota_repository.pl
trunk/vhffs-robots/src/generate_repositorystats.pl
trunk/vhffs-robots/src/generate_webstats.pl
trunk/vhffs-robots/src/listengine_publicarchives.pl
trunk/vhffs-robots/src/mailing.pl
trunk/vhffs-robots/src/modify_mysql.pl
trunk/vhffs-robots/src/modify_pgsql.pl
trunk/vhffs-robots/src/refused_cvs.pl
trunk/vhffs-robots/src/refused_dns.pl
trunk/vhffs-robots/src/refused_groups.pl
trunk/vhffs-robots/src/refused_mail.pl
trunk/vhffs-robots/src/refused_ml.pl
trunk/vhffs-robots/src/refused_mysql.pl
trunk/vhffs-robots/src/refused_postgres.pl
trunk/vhffs-robots/src/refused_repository.pl
trunk/vhffs-robots/src/refused_svn.pl
trunk/vhffs-robots/src/refused_web.pl
trunk/vhffs-robots/src/svn_public.pl
trunk/vhffs-robots/src/svn_websvn.pl
trunk/vhffs-robots/src/update_quota_used.pl
trunk/vhffs-robots/src/update_quota_used_repository.pl
trunk/vhffs-robots/src/user_group.pl
trunk/vhffs-tools/src/vhffs-blankmysql
trunk/vhffs-tools/src/vhffs-checkinstall
trunk/vhffs-tools/src/vhffs-dumpmysql
trunk/vhffs-tools/src/vhffs-groupdel
trunk/vhffs-tools/src/vhffs-groupinfo
trunk/vhffs-tools/src/vhffs-moderate
trunk/vhffs-tools/src/vhffs-passwd
trunk/vhffs-tools/src/vhffs-quota
trunk/vhffs-tools/src/vhffs-userdel
trunk/vhffs-tools/src/vhffs-userinfo
trunk/vhffs-tools/src/vhffs-usermod
trunk/vhffs-tools/src/vhffs-webdir
Added Paths:
-----------
trunk/vhffs-api/src/Vhffs/Panel/Commons.pm
trunk/vhffs-api/src/Vhffs/Panel/Object.pm
trunk/vhffs-compat/
trunk/vhffs-intl/compile_po.sh
trunk/vhffs-intl/src/es.po
trunk/vhffs-intl/src/fr.po
trunk/vhffs-intl/update_po.sh
trunk/vhffs-panel/js/
trunk/vhffs-panel/mailinglist/save_sig.pl
trunk/vhffs-panel/templates/misc/errors.tmpl
trunk/vhffs-panel/templates/misc/infos.tmpl
trunk/vhffs-panel/themes/vhffs/js/
trunk/vhffs-panel/themes/vhffs-ng/
trunk/vhffs-robots/misc/awstats_6.6_vhffs.patch
trunk/vhffs-robots/src/dump_pgsql.pl
trunk/vhffs-tests/
trunk/vhffs-tools/mans/vhffs-makeadmin.1
trunk/vhffs-tools/src/vhffs-makeadmin
Removed Paths:
-------------
trunk/vhffs-api/src/Vhffs/Panel/LargeFile.pm
trunk/vhffs-api/src/Vhffs/Robots/DNS.pm
trunk/vhffs-api/src/Vhffs/Robots/LargeFile.pm
trunk/vhffs-api/src/Vhffs/Robots/Mail.pm
trunk/vhffs-api/src/Vhffs/Robots/Mailinglist.pm
trunk/vhffs-api/src/Vhffs/Robots/Panel.pm
trunk/vhffs-api/src/Vhffs/Services/LargeFile.pm
trunk/vhffs-api/src/examples/test.pl
trunk/vhffs-api/src/examples/test2.pl
trunk/vhffs-api/src/examples/test_conf.pl
trunk/vhffs-api/src/examples/test_constants.pl
trunk/vhffs-api/src/examples/test_delete.pl
trunk/vhffs-api/src/examples/test_dns.pl
trunk/vhffs-api/src/examples/test_fetch_info.pl
trunk/vhffs-api/src/examples/test_httpd.pl
trunk/vhffs-api/src/examples/test_obj.pl
trunk/vhffs-api/src/examples/test_user.pl
trunk/vhffs-backend/src/pgsql/alter_from4.0pre1_tocurrent.sql
trunk/vhffs-intl/src/es/
trunk/vhffs-intl/src/fr/
trunk/vhffs-panel/admin/largefile/
trunk/vhffs-panel/cvs/cvs_submit.pl
trunk/vhffs-panel/dns/add_a.pl
trunk/vhffs-panel/dns/add_cname.pl
trunk/vhffs-panel/dns/add_mx.pl
trunk/vhffs-panel/dns/add_ns.pl
trunk/vhffs-panel/dns/delete_a.pl
trunk/vhffs-panel/dns/delete_cname.pl
trunk/vhffs-panel/dns/delete_mx.pl
trunk/vhffs-panel/dns/delete_ns.pl
trunk/vhffs-panel/dns/modif_a.pl
trunk/vhffs-panel/dns/modif_cname.pl
trunk/vhffs-panel/dns/modif_mx.pl
trunk/vhffs-panel/functions.js
trunk/vhffs-panel/largefile/
trunk/vhffs-panel/login.pl
trunk/vhffs-panel/public/largefile.pl
trunk/vhffs-panel/templates/admin/largefile/
trunk/vhffs-panel/templates/largefile/
trunk/vhffs-panel/templates/public/misc/largefile-part.tmpl
trunk/vhffs-panel/user/prefs_save.pl
trunk/vhffs-rfc/largefile
trunk/vhffs-robots/src/create_largefile.pl
trunk/vhffs-robots/src/delete_largefile.pl
trunk/vhffs-robots/src/move-completed-largefile.pl
trunk/vhffs-robots/src/old/
trunk/vhffs-robots/src/refused_largefile.pl
trunk/vhffs-tools/src/vhffs-firstadmin
Property Changed:
----------------
trunk/vhffs-api/src/Vhffs/Constants.pm
trunk/vhffs-intl/src/
Modified: trunk/Makefile
===================================================================
--- trunk/Makefile 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/Makefile 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,7 +2,7 @@
CONFDIR = $(DESTDIR)/etc/vhffs
DOCDIR = $(DESTDIR)/usr/share/doc/vhffs
-APIDIR = $(DESTDIR)/usr/share/vhffs/api
+APIDIR = $(DESTDIR)/usr/share/vhffs/api/Vhffs
PANELDIR = $(DESTDIR)/usr/share/vhffs/panel
TEMPLATESDIR = $(DESTDIR)/usr/share/vhffs/templates
BACKENDDIR = $(DESTDIR)/usr/share/vhffs/backend
@@ -16,14 +16,13 @@
MAILSDIR = $(DESTDIR)/usr/share/vhffs/mails
PERL_MODULES=HTML::Template Digest::MD5 CGI Locale::gettext Config::General DBI Email::Valid Crypt::PasswdMD5 GD::Text::Wrap GD MIME::Lite XML::RSS CGI::Session Encode utf8 LockFile::Simple Mail::Internet Email::Valid Time::ParseDate Quota
-DEBIAN_PACKAGES=libxml-rss-perl liblocale-gettext-perl libconfig-general-perl libhtml-template-perl libcrypt-passwdmd5-perl libgd-text-perl libmime-lite-perl libcgi-session-perl liblockfile-simple-perl libgd-gd2-perl libclass-dbi-pg-perl libclass-dbi-perl libdbd-pg-perl libemail-valid-perl libc6-dev libtime-modules-perl libquota-perl
+DEBIAN_PACKAGES=gcc libxml-rss-perl liblocale-gettext-perl libconfig-general-perl libhtml-template-perl libcrypt-passwdmd5-perl libgd-text-perl libmime-lite-perl libcgi-session-perl liblockfile-simple-perl libgd-gd2-perl libclass-dbi-pg-perl libclass-dbi-perl libdbd-pg-perl libemail-valid-perl libc6-dev libtime-modules-perl libquota-perl
all: help
-install: install-api install-panel install-listengine install-tools install-intl install-conf install-backend install-doc install-bots install-shell install-jabber link-api
+install: update-version install-api install-panel install-listengine install-tools install-intl install-conf install-backend install-doc install-bots install-shell install-jabber
-install-debian: debian-deps install-api install-panel install-listengine install-tools install-intl install-conf install-backend install-doc install-bots install-shell install-jabber
- if [ ! -L "/usr/lib/perl5/Vhffs" ]; then ln -s "$(DESTDIR)/usr/share/vhffs/api" "/usr/lib/perl5/Vhffs" ; fi
+install-debian: update-version debian-deps install-api install-panel install-listengine install-tools install-intl install-conf install-backend install-doc install-bots install-shell install-jabber
check: test-deps
@@ -38,6 +37,18 @@
debian-deps:
/usr/bin/apt-get install $(DEBIAN_PACKAGES)
+
+update-version:
+ @svnversion . | perl -e " \
+ \$$_ = <STDIN>; \
+ /^(?:.*?:)?(\d+)\w*\$$/; \
+ my \$$version = \$$1; \
+ \$$^I = \"\"; \
+ while(<>) { \
+ s/(VHFFS_VERSION.*\d+\.\d+.*?)(?:\d+)(.*)/\$$1\$$version\$$2/; \
+ print; \
+ }" vhffs-api/src/Vhffs/Constants.pm
+
test-deps:
@perl -e " \
foreach ( qw( $(PERL_MODULES) ) ) { \
@@ -50,18 +61,6 @@
install-shell: build-shell add-shell
-link-api:
- @perl -e " \
- foreach \$$inc ( @INC ) { \
- unlink ( \$$inc . \"/Vhffs\" ) if ( -l \$$inc . \"/Vhffs\" ); \
- if ( -d \$$inc && \$$inc =~ /site_perl\$$/ ) { \
- \$$link = \$$inc . \"/Vhffs\"; \
- } \
- } \
- unlink( \$$link ) if( -f \$$link ); \
- (symlink( \"$(DESTDIR)/usr/share/vhffs/api\" , \$$link ) && print \"Link API with \$$link\n\") || \
- print \"\n\n** WARNING **\n\nUnable to create symlink for Perl modules, please link /usr/share/vhffs/api with Vhffs in a perl include directory, please contact Vhffs team if you need help\n\n\";"
-
build-shell:
install -d -m 755 $(SHELLDIR)
gcc -Wall -pedantic -o $(SHELLDIR)/tuxshell vhffs-shells/tuxshell.c
@@ -89,7 +88,7 @@
install-conf:
install -d -m 755 $(CONFDIR)
- if [ ! -f $(CONFDIR)/vhffs.conf ]; then echo "INSTALL ORIGINAL CONFIG FILE" ; install -m 600 vhffs-backend/conf/vhffs.conf $(CONFDIR)/ ; else echo "CONFIG FILE ALREADY EXISTS" ; fi
+ @if [ ! -f $(CONFDIR)/vhffs.conf ]; then echo "INSTALL ORIGINAL CONFIG FILE" ; install -m 600 vhffs-backend/conf/vhffs.conf $(CONFDIR)/ ; else echo "CONFIG FILE ALREADY EXISTS" ; fi
install-backend:
install -d -m 755 $(BACKENDDIR)
@@ -122,7 +121,7 @@
install -m 755 vhffs-tools/src/vhffs-userinfo $(TOOLSDIR)/
install -m 755 vhffs-tools/src/vhffs-usermod $(TOOLSDIR)/
install -m 755 vhffs-tools/src/vhffs-webdir $(TOOLSDIR)/
- install -m 755 vhffs-tools/src/vhffs-firstadmin $(TOOLSDIR)/
+ install -m 755 vhffs-tools/src/vhffs-makeadmin $(TOOLSDIR)/
install-listengine-web:
@@ -163,7 +162,6 @@
install -d -m 755 $(TEMPLATESDIR)/admin/cvs
install -d -m 755 $(TEMPLATESDIR)/admin/dns
install -d -m 755 $(TEMPLATESDIR)/admin/group
- install -d -m 755 $(TEMPLATESDIR)/admin/largefile
install -d -m 755 $(TEMPLATESDIR)/admin/repository
install -d -m 755 $(TEMPLATESDIR)/admin/mail
install -d -m 755 $(TEMPLATESDIR)/admin/mailing
@@ -178,7 +176,6 @@
install -d -m 755 $(TEMPLATESDIR)/cvs
install -d -m 755 $(TEMPLATESDIR)/dns
install -d -m 755 $(TEMPLATESDIR)/group
- install -d -m 755 $(TEMPLATESDIR)/largefile
install -d -m 755 $(TEMPLATESDIR)/repository
install -d -m 755 $(TEMPLATESDIR)/mail
install -d -m 755 $(TEMPLATESDIR)/mailinglist
@@ -197,7 +194,6 @@
install -m 755 vhffs-panel/templates/admin/cvs/*.tmpl $(TEMPLATESDIR)/admin/cvs/
install -m 755 vhffs-panel/templates/admin/dns/*.tmpl $(TEMPLATESDIR)/admin/dns/
install -m 755 vhffs-panel/templates/admin/group/*.tmpl $(TEMPLATESDIR)/admin/group/
- install -m 755 vhffs-panel/templates/admin/largefile/*.tmpl $(TEMPLATESDIR)/admin/largefile/
install -m 755 vhffs-panel/templates/admin/repository/*.tmpl $(TEMPLATESDIR)/admin/repository/
install -m 755 vhffs-panel/templates/admin/mail/*.tmpl $(TEMPLATESDIR)/admin/mail/
install -m 755 vhffs-panel/templates/admin/mailing/*.tmpl $(TEMPLATESDIR)/admin/mailing/
@@ -212,7 +208,6 @@
install -m 755 vhffs-panel/templates/cvs/*.tmpl $(TEMPLATESDIR)/cvs/
install -m 755 vhffs-panel/templates/dns/*.tmpl $(TEMPLATESDIR)/dns/
install -m 755 vhffs-panel/templates/group/*.tmpl $(TEMPLATESDIR)/group/
- install -m 755 vhffs-panel/templates/largefile/*.tmpl $(TEMPLATESDIR)/largefile/
install -m 755 vhffs-panel/templates/repository/*.tmpl $(TEMPLATESDIR)/repository/
install -m 755 vhffs-panel/templates/mail/*.tmpl $(TEMPLATESDIR)/mail/
install -m 755 vhffs-panel/templates/mailinglist/*.tmpl $(TEMPLATESDIR)/mailinglist/
@@ -230,12 +225,11 @@
install-panel: install-templates
install -d -m 755 $(PANELDIR)
install -d -m 755 $(PANELDIR)/acl
- install -d -m 755 $(PANELDIR)/admin $(PANELDIR)/admin/cvs $(PANELDIR)/admin/dns $(PANELDIR)/admin/group $(PANELDIR)/admin/largefile $(PANELDIR)/admin/repository $(PANELDIR)/admin/mail $(PANELDIR)/admin/mailing $(PANELDIR)/admin/mysql $(PANELDIR)/admin/object $(PANELDIR)/admin/pgsql $(PANELDIR)/admin/svn $(PANELDIR)/admin/user $(PANELDIR)/admin/web
+ install -d -m 755 $(PANELDIR)/admin $(PANELDIR)/admin/cvs $(PANELDIR)/admin/dns $(PANELDIR)/admin/group $(PANELDIR)/admin/repository $(PANELDIR)/admin/mail $(PANELDIR)/admin/mailing $(PANELDIR)/admin/mysql $(PANELDIR)/admin/object $(PANELDIR)/admin/pgsql $(PANELDIR)/admin/svn $(PANELDIR)/admin/user $(PANELDIR)/admin/web
install -d -m 755 $(PANELDIR)/cvs
install -d -m 755 $(PANELDIR)/dns
install -d -m 755 $(PANELDIR)/group
install -d -m 755 $(PANELDIR)/help
- install -d -m 755 $(PANELDIR)/largefile
install -d -m 755 $(PANELDIR)/repository
install -d -m 755 $(PANELDIR)/mail
install -d -m 755 $(PANELDIR)/mailinglist
@@ -248,7 +242,6 @@
install -d -m 755 $(PANELDIR)/user
install -d -m 755 $(PANELDIR)/web
#install files
- install -m 644 vhffs-panel/*.js $(PANELDIR)/
install -m 644 vhffs-panel/*.ico $(PANELDIR)/
install -m 755 vhffs-panel/*.pl $(PANELDIR)/
install -m 755 vhffs-panel/acl/*.pl $(PANELDIR)/acl/
@@ -256,7 +249,6 @@
install -m 755 vhffs-panel/admin/cvs/*.pl $(PANELDIR)/admin/cvs/
install -m 755 vhffs-panel/admin/dns/*.pl $(PANELDIR)/admin/dns/
install -m 755 vhffs-panel/admin/group/*.pl $(PANELDIR)/admin/group/
- install -m 755 vhffs-panel/admin/largefile/*.pl $(PANELDIR)/admin/largefile/
install -m 755 vhffs-panel/admin/repository/*.pl $(PANELDIR)/admin/repository/
install -m 755 vhffs-panel/admin/mail/*.pl $(PANELDIR)/admin/mail/
install -m 755 vhffs-panel/admin/mailing/*.pl $(PANELDIR)/admin/mailing/
@@ -270,7 +262,6 @@
install -m 755 vhffs-panel/dns/*.pl $(PANELDIR)/dns/
install -m 755 vhffs-panel/group/*.pl $(PANELDIR)/group/
install -m 755 vhffs-panel/help/*.html $(PANELDIR)/help/
- install -m 755 vhffs-panel/largefile/*.pl $(PANELDIR)/largefile/
install -m 755 vhffs-panel/repository/*.pl $(PANELDIR)/repository/
install -m 755 vhffs-panel/mail/*.pl $(PANELDIR)/mail/
install -m 755 vhffs-panel/mailinglist/*.pl $(PANELDIR)/mailinglist/
@@ -283,8 +274,50 @@
install -m 755 vhffs-panel/user/*.pl $(PANELDIR)/user/
install -m 755 vhffs-panel/web/*.pl $(PANELDIR)/web/
#install themes now
+ install -d -m 755 $(PANELDIR)/js
+ install -m 644 vhffs-panel/js/*.js $(PANELDIR)/js/
#default theme
install -d -m 755 $(PANELDIR)/themes/vhffs
install -d -m 755 $(PANELDIR)/themes/vhffs/images
+ install -d -m 755 $(PANELDIR)/themes/vhffs/js
install -m 644 vhffs-panel/themes/vhffs/*.css $(PANELDIR)/themes/vhffs/
install -m 644 vhffs-panel/themes/vhffs/images/*.png $(PANELDIR)/themes/vhffs/images/
+ install -m 644 vhffs-panel/themes/vhffs/js/*.js $(PANELDIR)/themes/vhffs/js/
+ #next gen theme
+ install -d -m 755 $(PANELDIR)/themes/vhffs-ng
+ install -d -m 755 $(PANELDIR)/themes/vhffs-ng/images
+ install -d -m 755 $(PANELDIR)/themes/vhffs-ng/js
+ install -m 644 vhffs-panel/themes/vhffs-ng/*.css $(PANELDIR)/themes/vhffs-ng/
+ install -m 644 vhffs-panel/themes/vhffs-ng/images/*.png $(PANELDIR)/themes/vhffs-ng/images/
+ install -m 644 vhffs-panel/themes/vhffs-ng/js/*.js $(PANELDIR)/themes/vhffs-ng/js/
+
+
+test: test-object test-group test-user test-stats test-svn test-cvs test-web test-dns test-mail test-ml test-mysql test-pgsql test-functions test-repos
+test-object:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Object.pl");'
+test-group:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Group.pl");'
+test-user:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/User.pl");'
+test-stats:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Stats.pl");'
+test-svn:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Svn.pl");'
+test-cvs:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Cvs.pl");'
+test-web:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Httpd.pl");'
+test-dns:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/DNS.pl");'
+test-mail:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Mail.pl");'
+test-ml:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Mailing.pl");'
+test-mysql:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Mysql.pl");'
+test-pgsql:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Postgres.pl");'
+test-functions:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Functions.pl");'
+test-repos:
+ @perl -I vhffs-tests/src/ -I vhffs-api/src/ -e 'use Test::Harness; Test::Harness::runtests("vhffs-tests/src/Services/Repository.pl");'
Modified: trunk/vhffs-api/src/Vhffs/Acl.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Acl.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Acl.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -42,7 +42,7 @@
sub what_perm_for_user
{
- my $entity;
+ my $user;
my $object;
my $main;
my $perm;
@@ -51,34 +51,36 @@
my $request;
my $rows;
- $entity = shift;
+ $user = shift;
$object = shift;
$main = shift;
- return -1 if( ( $entity->fetch < 0 ) || ( $object->fetch < 0 ) );
+ return -1 unless( defined $user && defined $object );
$perm = Vhffs::Constants::ACL_DENIED;
- $query = "SELECT perm FROM vhffs_acl WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query = 'SELECT perm FROM vhffs_acl WHERE oid_src=? AND oid_dst=?';
+ $request = $main->{'db'}->prepare( $query );
+ $rows = $request->execute($user->{'object_id'}, $object->{'object_id'});
if( $rows != 0 )
{
- $result = $main->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $perm = $result->[0][0];
+ ($perm) = $request->fetchrow();
}
else
{
- $query = "SELECT acl.perm FROM vhffs_acl acl, vhffs_groups groups, vhffs_user_group ug WHERE acl.oid_dst='".$object->{'object_id'} ."' AND ug.uid='".$entity->get_uid."' AND ug.gid=groups.gid AND groups.object_id=acl.oid_src";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query = 'SELECT acl.perm FROM vhffs_acl acl
+ INNER JOIN vhffs_groups g ON g.object_id = acl.oid_src
+ INNER JOIN vhffs_user_group ug ON ug.gid = g.gid
+ WHERE acl.oid_dst = ? AND ug.uid = ?';
+ $request = $main->{'db'}->prepare( $query );
+ $rows = $request->execute( $object->{'object_id'}, $user->get_uid );
if( $rows != 0 )
{
- while( my @lol = $request->fetchrow_array )
+ while( my ($lol) = $request->fetchrow_array )
{
- $perm = $lol[0] if( $perm < $lol[0] );
+ $perm = $lol if( $perm < $lol );
}
}
}
@@ -87,7 +89,7 @@
sub what_perm_for_group
{
- my $entity;
+ my $group;
my $object;
my $main;
my $query;
@@ -95,21 +97,21 @@
my $result;
my $rows;
- $entity = shift;
+ $group = shift;
$object = shift;
$main = shift;
- return -1 if( ( $entity->fetch < 0 ) || ( $object->fetch < 0 ) );
+ return -1 unless(defined $group && defined $object);
- $query = "SELECT perm FROM vhffs_acl WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
+ $query = 'SELECT perm FROM vhffs_acl WHERE oid_src = ? AND oid_dst = ?';
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $request = $main->{'db'}->prepare( $query );
+ $rows = $request->execute( $group->{'object_id'}, $object->{'object_id'} );
if ( $rows != 0 )
{
- $result = $main->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- return $result->[0][0];
+ ($result) = $request->fetchrow();
+ return $result;
}
else
{
@@ -123,33 +125,22 @@
{
my ( $entity , $object , $perm , $main ) = @_;
- return -1 if( ( $entity->fetch < 0 ) || ( $object->fetch < 0 ) );
+ return -1 unless(defined $entity && defined $object );
- my $query = "SELECT perm FROM vhffs_acl WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- #If the ACL already exists, we just update it
- if ( $rows > 0 )
- {
- $query = "UPDATE vhffs_acl SET perm='".$perm."' WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
- }
- else
- {
- #If not, we create a new ACL in the database
- my $acl_id = 1;
- $query = "SELECT MAX(acl_id) FROM vhffs_acl";
- my $result = $main->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $acl_id = $result->[0][0] if ( defined $result->[0][0] );
- $acl_id++;
-
- $query = "INSERT INTO vhffs_acl VALUES('$acl_id' ,'".$entity->{'object_id'}."','$perm','".$object->{'object_id'}."')";
- }
- $request = $main->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
-
- return 1;
+ my $query = 'UPDATE vhffs_acl SET perm = ? WHERE oid_src = ? AND oid_dst = ?';
+ my $request = $main->{'db'}->prepare( $query );
+ my $result = $request->execute($perm, $entity->{'object_id'}, $object->{'object_id'}) or return -1;
+ if($result && $result == 0) {
+ # If update fails for a connection error, $result would be false
+ # If no line are updated, $result is true but $result == 0 is true
+ # too ($result contains "0E0")
+ # No line updated, INSERT ACL
+ $query = 'INSERT INTO vhffs_acl(oid_src, perm, oid_dst) VALUES(?, ?, ?)';
+ $request = $main->{'db'}->prepare($query);
+ $request->execute($entity->{'object_id'}, $perm, $object->{'object_id'}) or return -1;
+
+ }
+ return 1;
}
@@ -158,28 +149,24 @@
{
my ( $entity , $object , $main ) = @_;
- return -1 if( ( $entity->fetch < 0 ) || ( $object->fetch < 0 ) );
+ return -1 unless(defined $entity && defined $object );
my $query;
my $request;
- my $result;
my $rows;
- $query = "SELECT COUNT(*) FROM vhffs_acl WHERE perm IN ( '".Vhffs::Constants::ACL_MANAGEACL."', '".Vhffs::Constants::ACL_DELETE."') AND oid_dst='".$object->{'object_id'} ."'";
- $result = $main->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- return -1 if( ( ! defined $result ) || ( ! defined $result->[0][0] ) || ( $result->[0][0] <= 1 ) );
+ $query = 'SELECT COUNT(*) FROM vhffs_acl WHERE perm IN (?, ?) AND oid_dst=?';
+ $request = $main->{'db'}->prepare( $query );
+ $request->execute(Vhffs::Constants::ACL_MANAGEACL, Vhffs::Constants::ACL_DELETE, $object->{'object_id'}) or return -1;
+ ($rows) = $request->fetchrow();
+ # We want to have at least one person who can handle ACLs
+ return -1 if( $rows <= 1 );
- $query = "SELECT perm FROM vhffs_acl WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ # OK, there is someone to handle ACL after we delete this one => let's go
+ $query = 'DELETE FROM vhffs_acl WHERE oid_src = ? AND oid_dst = ?';
+ $request = $main->{'db'}->prepare( $query );
+ $request->execute( $entity->{'object_id'}, $object->{'object_id'});
-
- if ( $rows != 0 )
- {
- my $query = "DELETE FROM vhffs_acl WHERE oid_src='".$entity->{'object_id'}."' AND oid_dst='".$object->{'object_id'} ."'";
- $request = $main->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
- }
return 1;
}
@@ -187,11 +174,11 @@
sub getall_acl_for_user_per_object
{
my ( $obj , $main ) = @_;
- return -1 if( $obj->fetch < 0 );
+ return -1 unless( defined $obj );
- my $query = "SELECT users.username, perm FROM vhffs_acl acl, vhffs_users users WHERE oid_src=users.object_id AND oid_dst='".$obj->{'object_id'} ."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- return undef if( $request->execute <= 0 );
+ my $query = 'SELECT u.username, acl.perm FROM vhffs_acl acl INNER JOIN vhffs_users u ON u.object_id = acl.oid_src WHERE oid_dst=?';
+ my $request = $main->{'db'}->prepare( $query );
+ return undef if( !$request->execute( $obj->{'object_id'} ) );
return ( $request->fetchall_hashref('username') );
}
@@ -206,11 +193,11 @@
$obj = shift;
$main = shift;
- return -1 if( $obj->fetch < 0 );
+ return -1 unless( defined $obj );
- $query = "SELECT groups.groupname, perm FROM vhffs_acl acl, vhffs_groups groups WHERE oid_src=groups.object_id AND oid_dst='".$obj->{'object_id'} ."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
- return undef if( $request->execute <= 0 );
+ $query = 'SELECT g.groupname, perm FROM vhffs_acl acl INNER JOIN vhffs_groups g ON acl.oid_src = g.object_id WHERE acl.oid_dst = ?';
+ $request = $main->{'db'}->prepare( $query );
+ return undef if( !$request->execute($obj->{'object_id'}) );
return ( $request->fetchall_hashref('groupname') );
}
Modified: trunk/vhffs-api/src/Vhffs/Conf.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Conf.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Conf.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -95,9 +95,9 @@
}
-sub get_databases
+sub get_database
{
- return $Config{"databases"};
+ return $Config{"database"};
}
@@ -233,14 +233,6 @@
}
-sub use_largefile
-{
- return -1 if( ! defined $Config{"global"}{"modules"}{'use_largefile'} );
- return 1 if( $Config{"global"}{"modules"}{'use_largefile'} eq "yes");
- return 0;
-}
-
-
sub use_repository
{
return -1 if( ! defined $Config{"global"}{"modules"}{'use_repository'} );
@@ -266,13 +258,6 @@
-sub use_mailling
-{
- return -1 if( ! defined $Config{"global"}{"modules"}{'use_mailling'} );
- return 1 if( $Config{"global"}{"modules"}{'use_mailling'} eq "yes");
- return 0;
-}
-
sub use_mailing
{
return -1 if( ! defined $Config{"global"}{"modules"}{'use_mailing'} );
@@ -429,7 +414,12 @@
return $Config{"services"}{"mysql"}{"username"};
}
+sub get_mysql_mysqldump_path
+{
+ return $Config{"services"}{"mysql"}{"mysqldump_path"};
+}
+
sub get_pgsql_admin_pass
{
return $Config{"services"}{"postgresql"}{"password"};
@@ -445,7 +435,12 @@
return $Config{"services"}{"postgresql"}{"username"};
}
+sub get_pgsql_pgdump_path
+{
+ return $Config{"services"}{"postgresql"}{"pgdump_path"};
+}
+
sub get_svn_repodir
{
if( defined $Config{"services"}{"subversion"}{"repo_dir"} )
@@ -548,6 +543,13 @@
return 0;
}
+sub get_panel_subscribe_code_encrypt_key
+{
+ my $key = $Config{"global"}{"panel"}{"subscribe_code_encrypt_key"};
+ return "" unless( $key =~ /\w{8}/ );
+ return $key;
+}
+
sub get_panel_avatar
{
if( $Config{"global"}{"panel"}{"use_avatar"} )
@@ -892,22 +894,6 @@
return undef;
}
-sub largefile_mirrors
-{
- if( defined $Config{"services"}{"largefile"}{"mirrors"}{"server"} )
- {
- return( $Config{"services"}{"largefile"}{"mirrors"}{"server"} );
- }
-}
-
-sub largefile_upload_host
-{
- if( defined $Config{"services"}{"largefile"}{"upload-host"} )
- {
- return( $Config{"services"}{"largefile"}{"upload-host"} );
- }
-}
-
sub get_www_archives
{
if( defined $Config{"services"}{"listengine"}{"www-archives"} )
Modified: trunk/vhffs-api/src/Vhffs/Constants.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Constants.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Constants.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -7,8 +7,8 @@
use constant
{
- VHFFS_VERSION => "4.0.0",
- VHFFS_RELEASE_NAME => "koala",
+ VHFFS_VERSION => '4.1-alpha (Revision: 547)',
+ VHFFS_RELEASE_NAME => "hippocampus",
WAITING_FOR_VALIDATION => 1,
VALIDATION_REFUSED => 2,
@@ -37,7 +37,6 @@
HOMEDIR => "web/",
WEBDIR => "web/",
CVSDIR => "cvs/",
- LARGEFILEDIR => "largefile/",
REPOSITORYDIR => "repository/",
WEB_SUFFIX => "-web",
@@ -47,11 +46,35 @@
DEFAULT_LANG => "en_US",
ML_RIGHT_SUB_WAITING_FOR_REPLY => 2,
+ ML_RIGHT_SUB_WAITING_FOR_VALIDATION => 3,
ML_RIGHT_SUB => 4,
ML_RIGHT_ADMIN => 10,
ML_RIGHT_SUB_WAITING_FOR_DEL => 12,
+ ML_SUBSCRIBE_NO_APPROVAL_REQUIRED => 0,
+ ML_SUBSCRIBE_APPROVAL_REQUIRED => 1,
+ ML_SUBSCRIBE_CLOSED => 2,
+ ML_POSTING_OPEN_ALL => 0,
+ ML_POSTING_MODERATED_ALL => 1,
+ ML_POSTING_OPEN_MEMBERS_MODERATED_OTHERS => 2,
+ ML_POSTING_MEMBERS_ONLY => 3,
+ ML_POSTING_MEMBERS_ONLY_MODERATED => 4,
+ ML_POSTING_ADMINS_ONLY => 5,
+
MAILS_DIR => "/usr/share/vhffs/mails/",
+
+# Objects' types
+ TYPE_USER => 10,
+ TYPE_GROUP => 11,
+ TYPE_HTTPD => 20,
+ TYPE_REPOSITORY => 21,
+ TYPE_MYSQL => 30,
+ TYPE_PGSQL => 31,
+ TYPE_CVS => 40,
+ TYPE_SVN => 41,
+ TYPE_DNS => 50,
+ TYPE_MAIL => 60,
+ TYPE_ML => 61,
};
1;
@@ -107,8 +130,6 @@
=head2 CVSDIR
-=head2 LARGEFILEDIR
-
=head2 USER_NORMAL
=head2 USER_ADMIN
Property changes on: trunk/vhffs-api/src/Vhffs/Constants.pm
___________________________________________________________________
Name: svn:keywords
+ Revision
Modified: trunk/vhffs-api/src/Vhffs/DB.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/DB.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/DB.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -62,18 +62,18 @@
$tmp = Vhffs::Functions::db_connect $config->{'dbread'};
return( undef ) if( ! ( defined( $tmp ) ) );
- $self->{'DB_READ'} = $tmp;
+ $self = $tmp;
#If the database to write is not defined, we use the database to read
if( ! defined $config->{'dbwrite'} )
{
- $self->{'DB_WRITE'} = $self->{'DB_READ'};
+ $self = $self;
}
else
{
$tmp = Vhffs::Functions::db_connect $config->{'dbwrite'};
return( undef ) if( ! ( defined( $tmp ) ) );
- $self->{'DB_WRITE'} = $tmp;
+ $self = $tmp;
}
return $self;
@@ -95,9 +95,9 @@
now:
- * $db->{'DB_READ'} is a DBI object for read database
+ * $db is a DBI object for read database
- * $db->{'DB_WRITE'} is a DBI object for write database
+ * $db is a DBI object for write database
Typical use :
use Vhffs::Main;
Modified: trunk/vhffs-api/src/Vhffs/Functions.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Functions.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Functions.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -44,6 +44,34 @@
my $password;
srand(time ^ $$);
+my @STATUS_STRINGS;
+$STATUS_STRINGS[Vhffs::Constants::WAITING_FOR_VALIDATION] = 'Waiting for validation';
+$STATUS_STRINGS[Vhffs::Constants::VALIDATION_REFUSED] = 'Validation refused';
+$STATUS_STRINGS[Vhffs::Constants::WAITING_FOR_CREATION] = 'Waiting for creation';
+$STATUS_STRINGS[Vhffs::Constants::CREATING_ERROR] = 'Creation error';
+$STATUS_STRINGS[Vhffs::Constants::CREATED] = 'Created';
+$STATUS_STRINGS[Vhffs::Constants::ACTIVATED] = 'Activated';
+$STATUS_STRINGS[Vhffs::Constants::SUSPENDED] = 'Suspended';
+$STATUS_STRINGS[Vhffs::Constants::SUSPENDED_BEFORE_DELETED] = 'Suspended before deletion';
+$STATUS_STRINGS[Vhffs::Constants::WAITING_FOR_MODIFICATION] = 'Waiting for modification';
+$STATUS_STRINGS[Vhffs::Constants::MODIFICATION_ERROR] = 'Modification error';
+$STATUS_STRINGS[Vhffs::Constants::MODIFICATION_APPLIED] = 'Modification applied';
+$STATUS_STRINGS[Vhffs::Constants::TO_DELETE] = 'Will be deleted';
+
+
+my @TYPES_STRINGS;
+$TYPES_STRINGS[Vhffs::Constants::TYPE_USER] = 'User';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_GROUP] = 'Group';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_HTTPD] = 'Webarea';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_REPOSITORY] = 'Download Repository';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_MYSQL] = 'MySQL DB';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_PGSQL] = 'PgSQL DB';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_CVS] = 'CVS Repository';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_SVN] = 'SVN Repository';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_DNS] = 'Domain Name';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_MAIL] = 'Mail Domain';
+$TYPES_STRINGS[Vhffs::Constants::TYPE_ML] = 'Mailing List';
+
sub hash_mxdomain
{
my $domain = shift;
@@ -243,6 +271,11 @@
($backend_config) = @_;
+ if( ! defined $backend_config )
+ {
+ print "Oops!: I wonder if I am blind but I cannot find the backend area in the vhffs configuration file :/, could you help me ?\n";
+ exit -1;
+ }
#Default port;
@@ -255,14 +288,14 @@
$host = $backend_config->{'db_host'} if( defined( $backend_config->{'db_host'} ) );
$dbparams = "dbname=$backend_config->{'db_name'};host=$host;port=$port";
- $dbh = DBI->connect("DBI:$driver:$dbparams",$backend_config->{'db_username'}, $backend_config->{'db_password'}) || (print STDERR "Cant connect: $DBI::errstr\n" and return undef);
+ $dbh = DBI->connect("DBI:$driver:$dbparams",$backend_config->{'db_username'}, $backend_config->{'db_password'}) || (warn "Cant connect: $DBI::errstr\n" and return undef);
return( $dbh );
}
else
{
- print "the backend you specify in your config file is not supported in Vhffs";
+ print "Oops!: The backend you specify in your config file is not supported in Vhffs\n";
exit -1;
}
}
@@ -353,58 +386,14 @@
-sub status_string_from_status_id
-{
- my $status = shift;
+sub status_string_from_status_id($) {
+ my $status = shift;
+ return gettext($STATUS_STRINGS[$status] or 'Unknown');
+}
- if( $status == Vhffs::Constants::WAITING_FOR_VALIDATION )
- {
- return gettext("Waiting for validation");
- }
- elsif( $status == Vhffs::Constants::VALIDATION_REFUSED )
- {
- return gettext("Validation refused");
- }
- elsif( $status == Vhffs::Constants::WAITING_FOR_CREATION )
- {
- return gettext("Waiting for creation");
- }
- elsif( $status == Vhffs::Constants::CREATING_ERROR )
- {
- return gettext("Creating error");
- }
- elsif( $status == Vhffs::Constants::CREATED )
- {
- return gettext("Created");
- }
- elsif( $status == Vhffs::Constants::ACTIVATED )
- {
- return gettext("Activated");
- }
- elsif( $status == Vhffs::Constants::SUSPENDED )
- {
- return gettext("Suspended");
- }
- elsif( $status == Vhffs::Constants::SUSPENDED_BEFORE_DELETED )
- {
- return gettext("Suspended before deletion");
- }
- elsif( $status == Vhffs::Constants::WAITING_FOR_MODIFICATION )
- {
- return gettext("Waiting for modification");
- }
- elsif( $status == Vhffs::Constants::MODIFICATION_ERROR )
- {
- return gettext("Modification error");
- }
- elsif( $status == Vhffs::Constants::MODIFICATION_APPLIED )
- {
- return gettext("Modification applied");
- }
- elsif( $status == Vhffs::Constants::TO_DELETE )
- {
- return gettext("Will be deleted");
- }
+sub type_string_from_type_id($) {
+ my $type = shift;
+ return gettext($TYPES_STRINGS[$type] or 'Unknown');
}
sub mail_template
@@ -417,7 +406,7 @@
$file = Vhffs::Constants::MAILS_DIR . "/" . $template;
- return( -1 ) if( $user->fetch != 1 );
+ return( -1 ) if( ! defined $user );
return( -1 ) if( ! -f $file );
return( -1 ) if( ! -r $file );
@@ -447,7 +436,29 @@
return( 1 );
}
+=pod
+=head2 check_domain_name
+
+ die "Domain name is invalid (you can't use FQDN)\n" unless(Vhffs::Function::check_domain_name($name));
+ die "Domain name is invalid (could be FQDN or not)\n" unless(Vhffs::Function::check_domain_name($name, 1));
+
+Checks for domain name validity.
+
+=cut
+
+sub check_domain_name($;$) {
+ my $domain_name = shift;
+ my $fqdn = shift;
+ $domain_name =~ s/\.$// if($fqdn);
+ return (defined $domain_name && length($domain_name) >= 5 && $domain_name =~ /^(?:[a-z0-9\-]{1,63}[.])+([a-z0-9]{2,10})$/);
+}
+
+sub check_ip($) {
+ my $ip = shift;
+ return (defined $ip && $ip =~ /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/);
+}
+
sub rotate_log
{
use File::Basename;
Modified: trunk/vhffs-api/src/Vhffs/Group.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Group.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Group.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,142 +31,27 @@
package Vhffs::Group;
-#Vhffs::Group written by sod` <dieu AT gunnm DOT org>
use base qw(Vhffs::Object);
use strict;
use DBI;
+=head1 NAME
-sub new
-{
- my $groupname;
- my $owner;
- my $this;
- my $class;
- my $self;
- my $princ;
- my $user;
- my $gid;
+Vhffs::Object - Handle a group in VHFFS
- $class = shift;
- $princ = shift;
- $groupname = shift;
- $owner = shift;
- $gid = shift;
-
- $this={};
-
- $groupname = get_name_by_gid( $princ , $gid ) if( ( defined $gid ) && ( $gid =~ /[\d]+/ ) );
-
- return undef if( ! ( defined $groupname ) );
- return undef if( ! ( $groupname =~ /^[a-z0-9]+$/ ) );
- return undef if( length( $groupname ) < 3 );
-
- $this = $class->SUPER::new( $princ , 0 , $owner );
-
-
- $this->{'groupname'} = $groupname if ( defined $groupname );
- $this->{'gid'} = $gid;
-
- bless( $this , $class );
-
-}
+=head1 SYNOPSIS
+TODO
+=head1 DESCRIPTION
+TODO
+=head1 METHODS
+=cut
-# Simply get a unix group. In other words, only the gid and the groupname are fetched
-# fetch_unix is not used any more
-sub fetch_unix
-{
- my $request;
- my $result;
- my $self;
- my $query;
-
- $self = shift;
-
- $request = "SELECT * FROM vhffs_groups where groupname='$self->{'groupname'}'" if ( defined $self->{'groupname'} );
-# $request = "SELECT * FROM vhffs_groups where gid='$self->{'gid'}'" if ( defined $self->{'gid'} );
-
- $result = $self->{'db'}->{'DB_READ'}->prepare($request) or return -1;
- $result->execute() or return -1;
-
- return -1 if ( $result->rows != 1 );
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_};
- }
-
- return 1;
-}
-
-
-
-# Simply get a complete group with intos
-sub fetch
-{
- my $groupname;
- my $request;
- my $result;
- my $request2;
- my $result2;
- my $self;
- my $query;
- my $hash;
-
- $self = shift;
-
-
- $request = "SELECT * FROM vhffs_groups where groupname='$self->{'groupname'}'";
-
- $result = $self->{'db'}->{'DB_READ'}->prepare($request) or return -1;
- my $rows = $result->execute() or return -1;
-
- return -1 if ( $rows == 0 );
-
-
- $hash = $result->fetchrow_hashref();
-
- foreach ( keys %{$hash} )
- {
- $self->{$_} = $hash->{$_};
- }
-
-
- $request2 = "SELECT * FROM vhffs_groups_info where gid='$self->{'gid'}'";
-
-
- $result2 = $self->{'db'}->{'DB_READ'}->prepare($request2) or return -1;
- $result2->execute() or return -1;
- $hash = $result2->fetchrow_hashref();
-
- foreach ( keys %{$hash} )
- {
- #Fix DB bug, quota and quota_used is in vhffs_groups and vhffs_groups_info
- next if( $_ eq "quota");
- next if( $_ eq "quota_used");
- $self->{$_} = $hash->{$_};
- }
-
-
- return -2 if( $self->SUPER::fetch < 0 );
-
- $self->{group} = $self;
-
- return 1;
-}
-
-
-
-
-
-
-
# get all unix groups and return it as an hashref
#THIS IS NOT A METHOD IT'S JUST A FUNCTION
sub get_all_unix
@@ -177,102 +62,86 @@
$dbh = shift;
- $result = $dbh->selectall_hashref("SELECT * FROM vhffs_groups" , "gid" ) || die( "cannot fetch all groups" );
+ $result = $dbh->selectall_hashref('SELECT * FROM vhffs_groups' , "gid" ) || die( "cannot fetch all groups" );
return $result;
}
+sub check_groupname($) {
+ my $groupname = shift;
+ return ( defined $groupname && $groupname =~ /^[a-z0-9]{3,12}$/ );
+}
+
+=pod
-#create a new group with the name given in parameter
-sub create
-{
- my $self;
- my $config;
- my $conf;
- my $result;
- my $request;
- my $gid;
- my $owneruid;
- my $query;
- my $badgroups;
- my $oid;
- my $rows;
- my $quota;
+=head2 create
+ my $group = Vhffs::Group::create($main, $groupname, $owner_uid, $gid, $description)
- $self = shift;
+Create in DB and return a fully functional group.
-
- $conf = $self->{'main'}->get_config->get_users;
+=cut
- return -1 if ( ! defined $self->{'groupname'} );
-
- $self->{'groupname'} =~ tr/A-Z/a-z/;
-
- $badgroups = $self->{'main'}->get_config->get_bad_groupname;
- if( defined $badgroups )
- {
-
- foreach ( @{$badgroups} )
- {
- return -10 if ( $_ eq $self->{"groupname"} );
+sub create {
+ my ($main, $groupname, $owner_uid, $gid, $description) = @_;
+ return undef unless check_groupname($groupname);
+ return undef unless defined($owner_uid);
+ my $badgroups = $main->get_config->get_bad_groupname;
+ if( defined $badgroups ) {
+ foreach ( @{$badgroups} ) {
+ return undef if ( $_ eq $groupname );
}
}
+ my $groupconf = $main->get_config->get_users;
+ my $group;
+ my $dbh = $main->get_db_object;
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
- #default init
- $self->{'gid'} = $conf->{'mingid'};
-
- #first, we check if the group doesn't exists
- $query ="SELECT * FROM vhffs_groups WHERE groupname= '" .$self->{'groupname'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ # Avoid an error if we're already in a transaction
+ # (eg. when creating user).
+ my $transaction_started;
+ if($dbh->{AutoCommit}) {
+ # AutoCommit is on => we're not yet in a
+ # transaction, let's start one
+ $dbh->begin_work;
+ $transaction_started = 1;
+ } else {
+ # We're already in a transaction, ensure that
+ # we don't corrupt it.
+ $transaction_started = 0;
+ }
- return -1 if ( $rows > 0 );
-
- #Create the related object
- $oid = $self->SUPER::create;
+ eval {
+ my $parent = Vhffs::Object::create($main, $owner_uid, $description, undef, Vhffs::Constants::TYPE_GROUP);
+ die('Unable to create parent object') unless(defined $parent);
- return -1 if ( $oid lt 0 );
+ my $quota = $groupconf->{default_quota} || 10;
+ # Special case : sometimes, gid can be passed to create
+ # to avoid updates (cf Vhffs::User::create)
+ ($gid) = $dbh->selectrow_array('SELECT nextval(\'vhffs_groups_gid_seq\')') unless defined $gid;
+
+ my $query = 'INSERT INTO vhffs_groups(gid, groupname, passwd, quota, quota_used, owner_uid, uid_mod, object_id) VALUES(?, ?, NULL, ?, 0, ?, ?, ?)';
+ my $sth = $dbh->prepare( $query );
+ $sth->execute($gid, $groupname, $quota, $owner_uid, $owner_uid, $parent->get_oid);
+ $dbh->commit if($transaction_started);
+ $group = get_by_gid($main, $gid);
+ };
+ if($transaction_started && $@) {
+ warn "Unable to create group $groupname: $@\n";
+ $dbh->rollback;
+ }
- #Quota initialization
- #One day, god decide that : "10Mb ? It will be enough for everyone"
- # "God smoke too much herb"
- $quota = 10;
- $quota = $conf->{'default_quota'} if( ( defined $conf ) && ( defined $conf->{'default_quota'} ) );
- $self->{'quota'} = $quota;
- $self->{'quota_used'} = $quota;
+ return $group;
-
-
- # compute the gid
- $self->{'gid'} = $conf->{'mingid'};
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(gid) FROM vhffs_groups");
- $gid = $result->[0][0] + 1 if( $result->[0][0] );
- $self->{'gid'} = $gid if ( ( $gid ) && ( $gid > $conf->{'mingid'}) );
-
-
- #finally, create the group
- $query = "INSERT INTO vhffs_groups VALUES('" . $self->{'gid'} . "' , '" . $self->{'groupname'} . "' , NULL , '".$quota."' , '".$quota."' , '$oid')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query ) or return -2;
- $request->execute() or return -3;
-
-
- $query = "INSERT INTO vhffs_groups_info VALUES( '" . $self->{'gid'} ."' , '".$self->{'owner_uid'}."' , '".$self->{'owner_uid'}."')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query) or return -2;
- $request->execute() or return -3;
-
- $self->commit;
-
- return $self->{'gid'};
}
-
-sub remove_user_from_group
+sub remove_user
{
use Vhffs::Constants;
@@ -281,17 +150,14 @@
my $query;
my $request;
- my $rows;
+ my $result;
- $query ="SELECT * FROM vhffs_user_group WHERE gid= '" .$self->{'gid'}."' AND uid='".$user->get_uid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
-
- return -1 if ( $rows == 0 );
-
- $query = "UPDATE vhffs_user_group SET state='".Vhffs::Constants::TO_DELETE."' WHERE gid= '" .$self->{'gid'}."' AND uid='".$user->get_uid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $request->execute;
+ $query = 'UPDATE vhffs_user_group SET state=? WHERE gid=? AND uid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $result = $request->execute(Vhffs::Constants::TO_DELETE, $self->{'gid'}, $user->get_uid);
+ # execute return false if an error occurs and '0E0' (which is true but == 0)
+ # if 0 rows are altered
+ return -1 if($result == 0);
return 1;
@@ -307,17 +173,10 @@
# $self->{'quota'} = $self->{'main'}->get_config->get_users->{'default_quota'} if ( ! defined $self->{'quota'} );
# $self->{'quota_used'} = $self->{'quota'} if ( ! defined $self->{'quota_used'} );
- my $request_unix = "UPDATE vhffs_groups SET quota='".$self->{'quota'}."', quota_used='".$self->{'quota_used'}."' WHERE gid=".$self->{'gid'};
+ my $sql = 'UPDATE vhffs_groups SET quota = ?, quota_used = ?, owner_uid = ?, uid_mod = ? WHERE gid = ?';
+ my $sth = $self->{db}->prepare($sql);
+ $sth->execute( $self->{'quota'}, $self->{'quota_used'}, $self->{'owner_uid'}, $self->{'uid_mod'}, $self->{'gid'}) or return -1;
- $self->{'uid_mod'} = $self->{'owner_uid'} if ( !defined $self->{'uid_mod'} );
-
- my $request_info = "UPDATE vhffs_groups_info SET owner_uid = '".$self->{'owner_uid'}."', uid_mod = '".$self->{'uid_mod'}."' WHERE gid=".$self->{'gid'};
- my $result_unix = $self->{'db'}->{'DB_WRITE'}->prepare($request_unix);
- my $result_info = $self->{'db'}->{'DB_WRITE'}->prepare($request_info);
-
- $result_unix->execute or return -1;
- $result_info->execute or return -1;
-
#Exec the super method !
return -2 if( $self->SUPER::commit < 0 );
@@ -338,43 +197,48 @@
if( $config->use_web == 1 )
{
- $query ="SELECT * FROM vhffs_httpd WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_httpd WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
if( $config->use_cvs == 1 )
{
- $query ="SELECT * FROM vhffs_cvs WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_cvs WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
if( $config->use_svn == 1 )
{
- $query ="SELECT * FROM vhffs_svn WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_svn WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
if( $config->use_mail == 1 )
{
- $query ="SELECT * FROM vhffs_mxdomain WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_mxdomain WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
if( $config->use_dns == 1 )
{
- $query ="SELECT * FROM vhffs_dns_global WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_dns WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
@@ -382,9 +246,10 @@
if( $config->use_postgres == 1 )
{
- $query ="SELECT * FROM vhffs_pgsql WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_pgsql WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
@@ -393,9 +258,10 @@
if( $config->use_mysql == 1 )
{
- $query ="SELECT * FROM vhffs_mysql WHERE owner_gid='".$self->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ $query ='SELECT COUNT(*) FROM vhffs_mysql WHERE owner_gid=?';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid );
+ ($rows) = $request->fetchrow();
return 0 if( $rows != 0 );
}
@@ -407,9 +273,10 @@
{
my $self = shift;
my $user = shift;
- my $query ="SELECT * FROM vhffs_user_group WHERE gid='".$self->get_gid."' AND uid='".$user->get_uid."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ my $query ='SELECT COUNT(*) FROM vhffs_user_group WHERE gid=? AND uid=?';
+ my $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->get_gid, $user->get_uid );
+ my ( $rows ) = $request->fetchrow();
return 1 if( $rows == 1 );
return -1;
}
@@ -425,17 +292,9 @@
$self = shift;
- return 2 if ( $self->fetch < 0 );
+ $request = $self->{'db'}->prepare('DELETE FROM vhffs_groups WHERE gid=?');
+ $request->execute($self->{'gid'}) or return -1;
-
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_groups WHERE gid='".$self->{'gid'}."'");
- $request2 = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_user_group WHERE gid='".$self->{'gid'}."'");
- $request3 = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_groups_info WHERE gid='".$self->{'gid'}."'");
-
- $request->execute() or return -1;
- $request2->execute() or return -2;
- $request3->execute() or return -2;
-
$self->SUPER::delete;
return 1;
@@ -454,16 +313,9 @@
$self->{$field} = $value;
- if( $field eq "groupname" )
- {
- # VERIFY IF THE GROUP EXISTS FIX IT NOW
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_groups SET groupname=$value WHERE gid='$self->{'gid'}'");
- }
- else
- {
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_groups SET $field='$value' WHERE gid='$self->{'gid'}'");
- }
- $request->execute() or return -1;
+ # We don't need a special case for groupname, uniqueness is ensured by DB (we return -1 if groupname already exists)
+ $request = $self->{'db'}->prepare("UPDATE vhffs_groups SET $field=? WHERE gid=?");
+ $request->execute( $value, $self->{'gid'} ) or return -1;
return 1;
}
@@ -473,11 +325,11 @@
{
my( $self , $user ) = @_;
- return -1 if( $user->fetch < 0 );
+ return -1 if( ! defined $user );
- my $query = "INSERT INTO vhffs_user_group VALUES('" . $user->{'uid'} . "' , '" . $self->{'gid'} . "' , '".Vhffs::Constants::WAITING_FOR_CREATION."')";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query ) or return -2;
- $request->execute() or return -3;
+ my $query = 'INSERT INTO vhffs_user_group( uid, gid, state) VALUES( ?, ?, ? )';
+ my $request = $self->{'db'}->prepare( $query ) or return -2;
+ $request->execute($user->{'uid'}, $self->{'gid'}, Vhffs::Constants::WAITING_FOR_CREATION) or return -3;
return 1;
@@ -532,8 +384,8 @@
{
my $main = shift;
my $gid = shift;
- my $request = $main->{'db'}->{'DB_READ'}->prepare("SELECT groupname FROM vhffs_groups where gid='".$gid."'") or return -2;
- my $rows = $request->execute();
+ my $request = $main->{'db'}->prepare('SELECT groupname FROM vhffs_groups where gid= ?') or return -2;
+ my $rows = $request->execute($gid);
if( $rows == 0 )
{
@@ -541,8 +393,8 @@
}
else
{
- my $result = $request->fetchrow_hashref();
- return( $result->{groupname} );
+ my ( $result ) = $request->fetchrow();
+ return( $result );
}
}
@@ -551,8 +403,8 @@
sub get_owner_username
{
my $self = shift;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_users where uid='".$self->{'owner_uid'}."'") or return -2;
- my $rows = $request->execute();
+ my $request = $self->{'db'}->prepare('SELECT username FROM vhffs_users where uid=?') or return -2;
+ my $rows = $request->execute($self->{'owner_uid'});
if( $rows == 0 )
{
@@ -560,8 +412,8 @@
}
else
{
- my $result = $request->fetchrow_hashref();
- return( $result->{username} );
+ my ($result) = $request->fetchrow();
+ return( $result );
}
}
@@ -573,8 +425,8 @@
{
my( $self , $username ) = @_;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_users where username='".$username."'") or return -2;
- my $rows = $request->execute;
+ my $request = $self->{'db'}->prepare('SELECT uid FROM vhffs_users where username=?') or return -2;
+ my $rows = $request->execute( $username );
if( $rows == 0 )
{
@@ -607,15 +459,14 @@
my $vhffs = shift;
return if ( !defined $vhffs );
- my @groups;
- my $query = "SELECT groupname FROM vhffs_groups WHERE groupname NOT IN (SELECT username FROM vhffs_users) ORDER BY vhffs_groups.gid DESC LIMIT 10";
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query ); $request->execute;
- while( my $row = $request->fetchrow_arrayref )
+ my @groups;
+ my $query = 'SELECT g.gid FROM vhffs_groups g LEFT OUTER JOIN vhffs_users u ON u.username = g.groupname WHERE u.username IS NULL ORDER BY g.gid DESC LIMIT 10';
+ my $request = $vhffs->{'db'}->prepare( $query );
+ $request->execute;
+ while( my ($gid) = $request->fetchrow_array )
{
- my $group = new Vhffs::Group( $vhffs , $row->[0] , '401' );
- if( $group->fetch > 0 )
- { push @groups , $group;
- }
+ my $group = Vhffs::Group::get_by_gid( $vhffs , $gid );
+ push @groups , $group;
}
return \@groups;
}
@@ -626,16 +477,15 @@
use Vhffs::User;
my $self = shift;
- return undef if( $self->fetch < 0 );
my @users;
my $gid = $self->get_gid;
- my $query = "SELECT u.username FROM vhffs_users u, vhffs_user_group ug WHERE ug.gid='".$gid."' AND u.uid=ug.uid";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $request->execute;
- while( my $row = $request->fetchrow_arrayref )
+ my $query = 'SELECT ug.uid FROM vhffs_user_group ug WHERE ug.gid = ?';
+ my $request = $self->{'db'}->prepare( $query );
+ $request->execute($gid);
+ while( my ($uid) = $request->fetchrow_array )
{
- my $user = new Vhffs::User( $self->{'main'} , $row->[0] , '401' );
- push( @users , $user ) if( $user->fetch );
+ my $user = Vhffs::User::get_by_uid( $self->{'main'} , $uid );
+ push( @users , $user ) if( defined $user );
}
return \@users;
}
@@ -646,8 +496,7 @@
if( ! defined $self->{'user'} )
{
- $self->{'user'} = new Vhffs::User( $self->{'main'} , undef , $self->{'owner_uid'} );
- $self->{'user'}->fetch if( defined $self->{'user'} );
+ $self->{'user'} = Vhffs::User::get_by_uid( $self->{'main'}, $self->{'owner_uid'} );
}
return( $self->{'user'} );
@@ -660,28 +509,29 @@
my $state = shift;
my $user = shift;
my $name;
- return undef if( $user->fetch < 0 );
+ return undef if( ! defined $user );
my $db = $vhffs->get_db_object;
my @result;
- my $query = "SELECT groupname FROM vhffs_groups g, vhffs_object o , vhffs_user_group ug WHERE ug.gid=g.gid AND g.object_id=o.object_id AND g.groupname NOT IN (SELECT username FROM vhffs_users ) AND ug.uid=".$user->get_uid;
+ my $query = 'SELECT g.gid FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id=g.object_id INNER JOIN vhffs_user_group ug ON ug.gid=g.gid LEFT OUTER JOIN vhffs_users u ON u.username = g.groupname WHERE u.username IS NULL AND ug.uid = '.$user->get_uid;
+
$query .= " AND o.state=$state " if( defined $state );
$query .= " ORDER BY g.groupname";
- my $request = $db->{'DB_READ'}->prepare( $query );
+ my $request = $db->prepare( $query );
my $rows = $request->execute;
return undef if( $rows <= 0 );
- my $names = $request->fetchall_arrayref;
+ my $gids = $request->fetchall_arrayref;
my $group;
- foreach $name ( @{$names} )
+ foreach my $gid ( @{$gids} )
{
- $group = new Vhffs::Group( $vhffs , $name->[0] , '401' );
- push( @result , $group) if( $group->fetch > 0 );
+ $group = Vhffs::Group::get_by_gid( $vhffs , $gid->[0] );
+ push( @result , $group) if( defined $group );
}
return \@result;
}
@@ -695,14 +545,14 @@
my $db = $vhffs->get_db_object;
my @result;
- my $query = "SELECT groupname FROM vhffs_groups g, vhffs_object o WHERE g.object_id=o.object_id AND g.groupname NOT IN (SELECT username FROM vhffs_users ) ";
+ my $query = 'SELECT groupname FROM vhffs_groups g INNER JOIN vhffs_object o ON g.object_id=o.object_id LEFT OUTER JOIN vhffs_users u ON u.username = g.groupname WHERE u.username IS NULL ';
$query .= " AND o.state=$state " if( defined $state );
$query .= " AND g.groupname LIKE '%".$name."%' " if( defined $name );
$query .= " ORDER BY g.groupname";
- my $request = $db->{'DB_READ'}->prepare( $query );
+ my $request = $db->prepare( $query );
my $rows = $request->execute;
return undef if( $rows <= 0 );
@@ -712,9 +562,8 @@
my $group;
foreach $name ( @{$names} )
{
-
- $group = new Vhffs::Group( $vhffs , $name->[0] , '401' );
- push( @result , $group) if( $group->fetch > 0 );
+ $group = Vhffs::Group::get_by_groupname( $vhffs , $name->[0] );
+ push( @result , $group) if( defined $group );
}
return \@result;
}
@@ -733,7 +582,7 @@
my $query = 'SELECT groupname FROM vhffs_groups g INNER JOIN vhffs_object o ON g.object_id=o.object_id LEFT OUTER JOIN vhffs_users u ON u.username = g.groupname WHERE u.username IS NULL AND g.groupname LIKE ?';
$query .= "AND o.state=$state " if( defined $state );
- my $request = $db->{'DB_READ'}->prepare( $query );
+ my $request = $db->prepare( $query );
return undef if( ! $request->execute( $letter ) );
my $names = $request->fetchall_arrayref;
@@ -742,11 +591,100 @@
foreach my $name ( @{$names} )
{
- $group = new Vhffs::Group( $vhffs , $name->[0] , '401' );
- push( @result , $group) if( $group->fetch > 0 );
+ $group = Vhffs::Group::get_by_groupname( $vhffs , $name->[0] );
+ push( @result , $group) if( defined $group );
}
return \@result;
}
+sub getall_quotalimit
+{
+ my $vhffs = shift;
+ my $limit = shift;
+ $limit = 10 if(! defined $limit );
+ my $db = $vhffs->get_db_object;
+ my @result;
+ my $query = 'SELECT groupname FROM vhffs_groups g LEFT JOIN vhffs_users u ON g.groupname = u.username WHERE g.quota_used >= 0.9 * g.quota AND u.uid IS NULL LIMIT ?';
+
+ my $request = $db->prepare( $query );
+ my $rows = $request->execute($limit);
+
+ return undef if( $rows <= 0 );
+
+ my $names = $request->fetchall_arrayref;
+
+ my $group;
+ foreach my $name ( @{$names} )
+ {
+ $group = Vhffs::Group::get_by_groupname( $vhffs , $name->[0] );
+ push( @result , $group) if( defined $group );
+ }
+ return \@result;
+}
+
+=pod
+
+=head2 get_by_gid
+
+ my $group = Vhffs::Group::get_by_gid($main, $gid);
+ die('Group not found') unless(defined $group);
+
+Fetches the group whose gid is $gid.
+
+=cut
+
+sub get_by_gid {
+ my ($vhffs, $gid) = @_;
+ my $query = 'SELECT g.gid, o.object_id, o.owner_uid, g.uid_mod, g.groupname, g.passwd, g.quota, g.quota_used, o.date_creation, o.description, o.state FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id = g.object_id WHERE g.gid = ?';
+
+ my $dbh = $vhffs->get_db_object;
+ my @params = $dbh->selectrow_array($query, undef, $gid);
+ return undef unless(@params);
+ my $group = _new Vhffs::Group($vhffs, @params);
+ return $group;
+}
+
+=pod
+
+=head2 get_by_groupname
+
+ my $group = Vhffs::Group::get_by_groupname($main, $groupname);
+ die('Group not found') unless(defined $group);
+
+Fetches the group whose name is $groupname.
+
+=cut
+
+sub get_by_groupname {
+ my ($vhffs, $groupname) = @_;
+ my $query = 'SELECT g.gid, o.object_id, o.owner_uid, g.uid_mod, g.groupname, g.passwd, g.quota, g.quota_used, o.date_creation, o.description, o.state FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id = g.object_id WHERE g.groupname = ?';
+
+ my $dbh = $vhffs->get_db_object;
+ my @params = $dbh->selectrow_array($query, undef, $groupname);
+ return undef unless(@params);
+ my $group = _new Vhffs::Group($vhffs, @params);
+ return $group;
+}
+
+
+sub _new {
+ no strict 'refs';
+ my ($class, $main, $gid, $oid, $owner_uid, $uid_mod, $groupname, $passwd, $quota, $quota_used, $date_creation, $description, $state) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_GROUP);
+ return undef unless(defined $self);
+ foreach (qw (gid uid_mod groupname passwd quota quota_used) ) {
+ eval '$self->{$_} = $'.$_;
+ }
+ return $self;
+}
+
1;
+
+__END__
+
+=head1 AUTHORS
+
+soda <dieu AT gunnm DOT org>
+
+Sebastien Le Ray <beuss at tuxfamily dot org>
Modified: trunk/vhffs-api/src/Vhffs/Listengine/Intl.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Listengine/Intl.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Listengine/Intl.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,16 +29,12 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
-
-
package Vhffs::Listengine::Intl;
-
use locale;
use Locale::gettext;
-
sub generate_help
{
my $list = shift;
@@ -48,8 +44,7 @@
push( @result , "\n" );
push( @result , gettext( "All commands can be sent as mail subject.\n" ) );
push( @result , gettext( "You can also send a command list in the mail body.\n" ) );
- push( @result , gettext( "All mails with commands must be sent on
- YOURLIST-request\@domain.tld list.\n" ) );
+ push( @result , gettext( "All mails with commands must be sent on YOURLIST-request\@domain.tld list.\n" ) );
push( @result , "\n" );
push( @result , gettext("Here are the basic listengine commands:\n") );
push( @result , gettext("help\t\t - show this help\n") );
@@ -68,31 +63,30 @@
push( @result , gettext("\t\t\t\t RIGHT can be subscriber or admin\n") );
push( @result , gettext("user info user\@domain.tld\t\t - show this user's informations\n" ));
-
push( @result , "\n" );
-
return( \@result );
}
+
sub new_sub
{
my $list = shift;
my $from = shift;
- my $hash = shift;
+ my $pass = shift;
my @result;
- push( @result , sprintf( "You send a request to subscribe to the following list: %s\n" , $list->get_listname) );
- push( @result , gettext( "You must confirm your request by sending a confirmation emailn\n") );
- push( @result , sprintf( gettext( "This mail must have the following subject : \"confirm subscribe %s\"\n") , $hash ) );
+ push( @result , sprintf( "You sent a request to subscribe to the following list:\n\n%s\n\n" , $list->get_listname) );
+ push( @result , gettext( "You must confirm your request by sending a confirmation email\n") );
+ push( @result , sprintf( gettext( "This mail must have the following subject : \"confirm subscribe %s\"\n") , $pass ) );
push( @result , "\n" );
- push( @result , gettext( "If this mail is an error and you don't ask to be a subscriber to this list, please do not answer to this mail\n" ) );
+ push( @result , gettext( "If you haven't asked to be subscribed to this list,\nplease don't answer to this mail\n" ) );
push( @result , "\n" );
-
return( \@result );
}
+
sub new_unsub
{
my $list = shift;
@@ -100,14 +94,13 @@
my $hash = shift;
my @result;
- push( @result , sprintf( "You ask to be removed from the list %s\n" , $list->get_listname) );
- push( @result , gettext( "You must confirm this request by seding a email\n") );
+ push( @result , sprintf( "You asked to be removed from the following list:\n\n%s\n\n" , $list->get_listname) );
+ push( @result , gettext( "You must confirm your request by sending a confirmation email\n") );
push( @result , sprintf( gettext( "This mail must contains the following subject : \"confirm unsubscribe %s\"\n") , $hash ) );
- push( @result , gettext( "If this mail is an error and you don't ask to be a subscriber to this list, please do not answer to this mail\n" ) );
push( @result , "\n" );
+ push( @result , gettext( "If you haven't asked to be unsubscribed from this list,\nplease don't answer to this mail\n" ) );
push( @result , "\n" );
-
return( \@result );
}
@@ -118,29 +111,28 @@
my $from = shift;
my @result;
- push( @result , sprintf( gettext( "You ask to be subscribed to the following list: %s\n" ) , $list->get_listname) );
- push( @result , sprintf( gettext( "Adress %s is already a subscriber for this list.\n") , $from ) );
- push( @result , gettext( "The state of you subscription was not changed, you are always a subscriber\n") , $hash );
+ push( @result , sprintf( gettext( "You asked to be subscribed to the following list:\n\n%s\n\n" ) , $list->get_listname) );
+ push( @result , sprintf( gettext( "However you are (%s) already subscribed to this list.\n") , $from ) );
push( @result , "\n" );
+ push( @result , gettext( "The state of you subscription was not changed, you are still subscribed\n") , $hash );
+ push( @result , "\n" );
-
return( \@result );
}
+
sub sub_deny
{
my $list = shift;
my $from = shift;
my @result;
- push( @result , sprintf( gettext( "Subscribe to the list %s is forbidden\n" ) , $list->get_listname) );
- push( @result , gettext( "Your request has been removed.\n") );
- push( @result , "\n" );
+ push( @result , sprintf( gettext( "Subscription to the following list is forbidden:\n\n%s\n\nHave a nice day.\n" ) , $list->get_listname) );
-
return( \@result );
}
+
sub confirm_sub
{
my $list = shift;
@@ -148,42 +140,57 @@
my @result;
push( @result , sprintf( gettext( "You have been successfully subscribed to the list %s\n" ) , $list->get_listname) );
- push( @result , gettext( "------\n") );
- push( @result , gettext( "You can post on the list now.") );
- push( @result , gettext( "------\n") );
- push( @result , gettext( "You can have some help on listengine, sending an email to\n") );
- push( @result , sprintf( gettext( "%s-request\@%s with subject : \"help\"\n") , $list->get_localpart , $list->get_domain ) );
+ push( @result , gettext( "\n") );
+ push( @result , gettext( "You may get some help on listengine by sending an email to\n") );
+ push( @result , sprintf( gettext( "%s-request\@%s with subject \"help\"\n") , $list->get_localpart , $list->get_domain ) );
push( @result , "\n" );
+ return( \@result );
+}
+
+
+sub confirm_sub_approvalneeded
+{
+ my $list = shift;
+ my $from = shift;
+ my @result;
+
+ push( @result , sprintf( gettext( "You have been successfully subscribed to the list %s\n" ) , $list->get_listname) );
+ push( @result , gettext( "\n") );
+ push( @result , gettext( "However this list require approval for new subscribers.\n") );
+ push( @result , gettext( "You will receive an email with the decision of administrators.\n") );
+ push( @result , gettext( "\n") );
+ push( @result , gettext( "You may get some help on listengine by sending an email to\n") );
+ push( @result , sprintf( gettext( "%s-request\@%s with subject \"help\"\n") , $list->get_localpart , $list->get_domain ) );
+ push( @result , "\n" );
return( \@result );
}
+
sub confirm_unsub
{
my $list = shift;
my $from = shift;
my @result;
- push( @result , sprintf( gettext( "You have been successfully removed from the list %s\n" ) , $list->get_listname) );
+ push( @result , sprintf( gettext( "You have been successfully removed from the following list:\n\n%s\n" ) , $list->get_listname) );
return( \@result );
}
-
sub error_sub
{
my $list = shift;
my $from = shift;
my @result;
- push( @result , sprintf( gettext( "An error occurs while you subscribed to the list %s \n" ) , $list->get_listname) );
+ push( @result , sprintf( gettext( "An error occured during your subscription to the following list:\n\n%s\n\n" ) , $list->get_listname) );
push( @result , gettext("The confirmation code was wrong\n" ));
- push( @result , gettext("Please try again\n" ));
+ push( @result , gettext("Please try again !\n" ));
push( @result , "\n" );
-
return( \@result );
}
@@ -200,10 +207,10 @@
push( @result , "\n" );
-
return( \@result );
}
+
sub error_unsub
{
my $list = shift;
@@ -216,7 +223,6 @@
push( @result , "\n" );
-
return( \@result );
}
@@ -232,10 +238,10 @@
push( @result , "\n" );
-
return( \@result );
}
+
sub unsub_success
{
my $list = shift;
@@ -263,6 +269,7 @@
return( \@result );
}
+
sub lang_change_error
{
my $list = shift;
@@ -312,6 +319,7 @@
return( \@result );
}
+
sub refuse_success
{
my $list = shift;
@@ -327,6 +335,7 @@
return( \@result );
}
+
sub moderate_error
{
my $list = shift;
@@ -343,12 +352,12 @@
return( \@result );
}
+
sub moderate_success
{
my $list = shift;
my $hash = shift;
-
push( @result , sprintf( gettext( "Mail with id %s") , $hash ) );
push( @result , sprintf( gettext( "in the moderation queue of the list %s") , $list->get_listname ) );
push( @result , gettext( "was sent on the list.\n" ) );
@@ -374,7 +383,6 @@
}
-
sub moderate_message
{
my $list = shift;
@@ -394,6 +402,28 @@
return( \@result );
}
+
+sub moderate_subscriber
+{
+ my $list = shift;
+ my $from = shift;
+ my @result;
+
+ push( @result , sprintf( gettext( "A new person wants to subscribe to the following mailing list:\n\n%s\n\n" ) , $list->get_listname) );
+ push( @result , sprintf( gettext( "His email address is:\n %s\n" ) , $from) );
+ push( @result , $subject );
+ push( @result , "\n" );
+ push( @result , gettext( "To accept this subscriber, send a message to\n" ) );
+ push( @result , sprintf( gettext( " %s-request\@%s\nwith the following subject :\n \"accept %s\" \n" ) , $list->get_localpart , $list->get_domain , $from) );
+ push( @result , "\n" );
+ push( @result , gettext( "To refuse this subscriber, send a message to\n" ) );
+ push( @result , sprintf( gettext( " %s-request\@%s\nwith the following subject :\n \"refuse %s\" \n" ) , $list->get_localpart , $list->get_domain , $from) );
+ push( @result , "\n" );
+
+ return( \@result );
+}
+
+
sub value_month
{
my $value = shift;
@@ -446,15 +476,8 @@
{
return gettext( "December" );
}
-
-
-
- return gettext( "Unknown month" );
-
+ return gettext( "Unknown month" );
}
-
-
-
1;
Modified: trunk/vhffs-api/src/Vhffs/Main.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Main.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Main.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -35,7 +35,6 @@
use strict;
use DBI;
use Vhffs::Functions;
-use Vhffs::DB;
use Vhffs::Conf;
use constant
@@ -69,14 +68,13 @@
#Finally, backend stuff
- $db_config = $config->get_databases();
- $dbh = new Vhffs::DB( $db_config );
- if( defined $dbh )
- {
- $self->{'db'} = $dbh;
- }
- else
- {
+ $db_config = $config->get_database();
+
+ $dbh = Vhffs::Functions::db_connect $db_config;
+ if(defined $dbh) {
+ $self->{'db'} = $dbh;
+ } else {
+ warn "Unable to open database connection\n";
undef $self;
}
@@ -113,10 +111,21 @@
sub is_valid
{
- my $self = shift;
- return 0 if( ! ( defined( $self->get_db_object ) ) );
+ my $self = shift;
+ return (defined $self->{db} && $self->{db}->ping() > 0);
+}
- return 1;
+sub reconnect {
+ my $self = shift;
+
+ my $db_config = $self->{config}->get_database();
+
+ my $dbh = Vhffs::Functions::db_connect $db_config;
+ if(defined $dbh) {
+ $self->{'db'} = $dbh;
+ } else {
+ warn "Unable to open database connection\n";
+ }
}
1;
Modified: trunk/vhffs-api/src/Vhffs/Misc/Mailings.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Misc/Mailings.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Misc/Mailings.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -48,12 +48,8 @@
return -1 if ( ! defined $vhffs );
- my $db = $vhffs->get_db_object;
-
- my $id = 0;
-
$query = 'INSERT INTO vhffs_mailings (subject,message,date,state) VALUES( ? , ? , NOW() , ? )';
- $request = $db->{'DB_WRITE'}->prepare( $query );
+ $request = $vhffs->{'db'}->prepare( $query );
$request->execute($subject, $message, Vhffs::Constants::WAITING_FOR_CREATION) or return -2;
return 1;
@@ -71,7 +67,7 @@
$query = "SELECT * FROM vhffs_mailings ";
$query.= " WHERE state='".$state."'" if( defined $state );
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $vhffs->{'db'}->prepare( $query );
$request->execute or return undef ;
return $request->fetchall_hashref('id_mailing');
@@ -85,7 +81,7 @@
my $id = shift;
my $db = $vhffs->get_db_object;
$query = "DELETE FROM vhffs_mailings WHERE id_mailing='".$id."'";
- $request = $db->{'DB_WRITE'}->prepare( $query );
+ $request = $db->prepare( $query );
$request->execute or return -2;
return 1;
@@ -101,7 +97,7 @@
return undef if( ! defined $id );
$query = "SELECT * FROM vhffs_mailings WHERE id_mailing='".$id."'";
- $request = $db->{'DB_READ'}->prepare( $query );
+ $request = $db->prepare( $query );
$request->execute or return -2;
return $request->fetchrow_hashref() ;
Modified: trunk/vhffs-api/src/Vhffs/Note.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Note.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Note.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -42,12 +42,15 @@
sub set_note
{
my $vhffs = shift;
- my $entity = shift;
+ my $user = shift;
my $value = shift;
- my $oldvalue = get_note( $vhffs , $entity );
- my $newvalue = $value - $oldvalue;
- inc_note( $vhffs , $entity , $newvalue );
+ my $sql = 'UPDATE vhffs_user SET note = ? WHERE uid = ?';
+ my $dbh = $user->get_db_object;
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($value, $user->get_uid());
+
+ return 1;
}
@@ -55,64 +58,31 @@
sub inc_note
{
my $vhffs = shift;
- my $entity = shift;
+ my $user = shift;
my $increase = shift;
- my $note = 0;
- my $already_exists = 0;
- return -1 if( $entity->fetch < 0 );
+ return -1 unless( defined $user );
+ my $sql = 'UPDATE vhffs_users SET note = note + ? WHERE uid = ?';
+ my $sth = $vhffs->{'db'}->prepare( $sql );
+ $sth->execute( $increase, $user->get_uid );
- #Fetch note if already exists
- my $query = "SELECT note FROM vhffs_notes WHERE object_id='".$entity->get_oid."'";
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
- if ( $rows > 0 )
- {
- $already_exists = 1;
- my $result = $vhffs->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $note = $result->[0][0];
- }
-
- #Finally compute new note
- $note += $increase;
-
-
- if( $already_exists == 1 )
- {
- $query = "UPDATE vhffs_notes SET note='".$note."' WHERE object_id='".$entity->get_oid."'";
- }
- else
- {
- $query = "INSERT INTO vhffs_notes VALUES('".$entity->get_oid."' , '".$note."')";
- }
- $request = $vhffs->{'db'}->{'DB_WRITE'}->prepare( $query );
-
- $request->execute;
-
return 1;
}
sub get_note
{
my $vhffs = shift;
- my $entity = shift;
-
- my $query = "SELECT note FROM vhffs_notes WHERE object_id='".$entity->get_oid."'";
+ my $user = shift;
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ return -1 unless(defined $user);
- if ( $rows > 0 )
- {
- my $result = $vhffs->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- return $result->[0][0];
- }
- else
- {
- return 0;
- }
-
+ my $query = 'SELECT note FROM vhffs_users WHERE uid = ?';
+
+ my $request = $vhffs->{'db'}->prepare( $query );
+ $request->execute($user->get_uid);
+ my ($note) = $request->fetchrow();
+ return ($note || 0);
}
1;
@@ -131,28 +101,28 @@
$vhffs = init Vhffs::Main;
...
- (considers that you have a VHFFS object in $object)
+ (considers that you have a VHFFS user in $user)
...
- print "Current note for your object : " . Vhffs::Note::get_note( $vhffs , $object );
+ print "Current note for your user : " . Vhffs::Note::get_note( $vhffs , $user );
#We add 3 to the current note
- Vhffs::Note::inc_note( $vhffs , $object , 3 );
+ Vhffs::Note::inc_note( $vhffs , $user , 3 );
#We set the note to 0
- Vhffs::Note::set_note( $vhffs , $object , 0 );
+ Vhffs::Note::set_note( $vhffs , $user, 0 );
#We decrease the note of 1
- Vhffs::Note::inc_note( $vhffs , $object , -1 );
+ Vhffs::Note::inc_note( $vhffs , $user, -1 );
=head1 METHODS
- get_note( $vhffs , $object ) : return the note for the given object
+ get_note( $vhffs , $user ) : return the note for the given object
- set_note( $vhffs , $object , $value ) : set the note
+ set_note( $vhffs , $user , $value ) : set the note
- inc_note( $vhffs , $object , $inc ) : add $inc to the current not of object $object
+ inc_note( $vhffs , $user , $inc ) : add $inc to the current not of object $object
=head1 AUTHOR
Modified: trunk/vhffs-api/src/Vhffs/Object.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Object.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Object.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,9 +29,28 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+=head1 SYNOPSIS
+Vhffs::Object - The generic object type in VHFFS
+=head1 DESCRIPTION
+The Vhffs::Object type is the base of each Vhffs::Services::*, Vhffs::User
+or Vhffs::Group objects. So, you never have to create an instance of Vhffs::Object,
+this class is only used as a super-class for services (or user or group).
+
+So, the methods of Vhffs::Object can be applied to all classes which inherit of it.
+You can have all the history of an object with a method, get the status
+of a service, ...
+
+This type stored informations about state, history, owner group/user.
+
+=head1 METHODS
+
+=cut
+
+
+
package Vhffs::Object;
use Vhffs::Constants;
@@ -52,9 +71,8 @@
$class = ref($this) || $this;
bless($self , $class );
-
+
return undef if ( ! defined $main );
- return undef if ( ( ! defined $id ) || ( ! defined $owner ) );
$self->{'main'} = $main;
$self->{'db'} = $main->get_db_object;
@@ -74,6 +92,27 @@
return $self;
}
+sub _new {
+ my ($class, $main, $oid, $owner_uid, $date_creation, $description, $state, $type) = @_;
+
+ $self = {};
+
+ bless($self, $class);
+
+ return undef unless(defined $main);
+
+ $self->{main} = $main;
+ $self->{db} = $main->get_db_object;
+ $self->{object_id} = $oid;
+ $self->{owner_uid} = $owner_uid;
+ $self->{date_creation} = $date_creation;
+ $self->{description} = $description;
+ $self->{state} = $state;
+ $self->{type} = $type;
+
+ return $self;
+}
+
sub get_main
{
my $self = shift;
@@ -97,30 +136,12 @@
my $request;
- #First, delete all Notes pointing on this object
- $query = "DELETE FROM vhffs_notes WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -2;
+ # Foreign key constraints are in 'ON DELETE CASCADE' mode
+ # we don't have to bother with foreign tables deletion.
+ $query = 'DELETE FROM vhffs_object WHERE object_id=?';
+ $request = $self->{'db'}->prepare($query);
+ $request->execute( $self->{'object_id'} ) or return -1;
- #Then, delete all ACL referes to this object
- $query = "DELETE FROM vhffs_acl WHERE oid_dst='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -2;
-
- #Delete all ACL from this object
- $query = "DELETE FROM vhffs_acl WHERE oid_src='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -2;
-
- #Delete history from this object
- $query = "DELETE FROM vhffs_history WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -1;
-
- $query = "DELETE FROM vhffs_object WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -1;
-
return 1;
}
@@ -134,76 +155,56 @@
}
}
-sub create
-{
- my $query;
- my $request;
- my $id;
- my ( $self ) = @_;
+=head2 create
+ my $object = Vhffs::Object::create($main, [$owner_uid, $description, $state, $type])
- $self->{'owner_uid'} = $user->get_uid if( defined $user );
- $self->{'owner_gid'} = $group->get_gid if( defined $group );
+Create (in database) and return a new object.
- $self->set_default_state;
+=over 4
- $id = 0;
- $request = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(object_id) FROM vhffs_object") or return -2;
- $id = $request->[0][0] if( defined $request->[0][0] );
- $id++;
- $self->{'object_id'} = $id;
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("INSERT INTO vhffs_object VALUES ( ? , ? , NOW(), ? , ? )");
+=item C<$main>: C<Vhffs::Main> instance
- $request->execute( $self->{'object_id'} , $self->{'owner_uid'} , $self->{'state'} , $self->{'description'} ) or return -2;
+=item C<$owner_uid>: UID of the owner.
- $self->add_history( "Object created" );
+=item C<$description>: Description of the object
- return $self->{'object_id'};
-}
+=item C<$state>: state of the object. Can be undef, if it is, object will be
+waiting for validation or waiting for creation depending on wether
+moderation is active or not.
+=item C<$type>: Object's type (C<Vhffs::Constants::TYPE_*>)
+=back
-sub fetch
-{
- my $self;
- my $request;
- my $result;
+=cut
- $self = shift;
-
- my $query = "SELECT * FROM vhffs_object WHERE object_id ='". $self->{'object_id'}."'" ;
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- return -1 if( $rows != 1);
+sub create {
+ my ($vhffs, $owner_uid, $description, $state, $type) = @_;
+ $description = '' unless (defined $description);
+ $state = ($vhffs->get_config->get_moderation ? Vhffs::Constants::WAITING_FOR_VALIDATION : Vhffs::Constants::WAITING_FOR_CREATION) unless defined $state;
+ my $sth = $vhffs->get_db_object->prepare('INSERT INTO vhffs_object(owner_uid, date_creation, state, description, type) VALUES ( ?, NOW(), ?, ?, ?)');
+ $sth->execute($owner_uid, $state, $description, $type) or return undef;
+ my $oid = $vhffs->get_db_object->last_insert_id(undef, undef, 'vhffs_object', undef);
- $result = $request->fetchrow_hashref;
+ my $res = get_by_oid($vhffs, $oid);
- foreach ( keys %{$result} )
- {
- $self->{"$_"} = $result->{"$_"}
- }
-
- #Fix encofing of description
- $self->{'description'} =~ s/\\//g;
-
-
- return 1;
+ $res->add_history('Object created');
+ return $res;
}
-sub fetch_object
+sub get_owner_uid
{
my $self = shift;
- $self->fetch();
+ return $self->{'owner_uid'};
}
-sub get_owner_uid
+sub get_type
{
- my $self = shift;
- return $self->{'owner_uid'};
+ my $self = shift;
+ return $self->{type};
}
-
#The modify method for Vhffs::Object only tells if the API can modify some values
#It protects some importants fields such as object_id
sub modify
@@ -225,10 +226,8 @@
my $self = shift;
my $request;
- $self->{description} = quotemeta $self->{description};
-
- $request = "UPDATE vhffs_object SET state=?, description=?, owner_uid=? WHERE object_id=?";
- my $result = $self->{'db'}->{'DB_WRITE'}->prepare($request);
+ $request = 'UPDATE vhffs_object SET state=?, description=?, owner_uid=? WHERE object_id=?';
+ my $result = $self->{'db'}->prepare($request);
$result->execute( $self->{'state'} , $self->{'description'} , $self->{'owner_uid'} , $self->{'object_id'} );;
}
@@ -332,7 +331,7 @@
{
my ($self , $value) = @_;
$value =~ s/\?/ \?/g;
- $self->{'description'} = quotemeta( $value );
+ $self->{'description'} = $value ;
}
@@ -346,19 +345,13 @@
{
my $self = shift;
my $message = shift;
- $message = quotemeta( $message );
+ $message = $message;
- my $id = 0;
- my $query = "SELECT MAX(history_id) FROM vhffs_history";
- my $request = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query ) or return -2;
- $id = $request->[0][0] if( defined $request->[0][0] );
- $id++;
+ $query = 'INSERT INTO vhffs_history(object_id, date, message) VALUES(?, NOW(), ?)';
+ $request = $self->{'db'}->prepare( $query );
+ $request->execute( $self->{'object_id'}, $message ) or return -2;
- $query = "INSERT INTO vhffs_history VALUES('".$id."','".$self->{'object_id'}."',NOW(),'".$message."')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
-
- return $id;
+ return $self->{'db'}->last_insert_id(undef, undef, 'vhffs_history', undef);;
}
# Returns a hashref wich contains all the history
@@ -371,16 +364,12 @@
my $key;
my $value;
- my $query = "SELECT * FROM vhffs_history WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
+ my $query = 'SELECT * FROM vhffs_history WHERE object_id=?';
+ my $request = $self->{'db'}->prepare( $query );
- return undef if( $request->execute <= 0 );
+ return undef if( ! $request->execute( $self->{'object_id'} ) );
$temp = $request->fetchall_hashref('history_id');
- foreach $key ( keys ( %{$temp} ))
- {
- $temp->{$key}{'message'} = Vhffs::Functions::stripslashes( $temp->{$key}{'message'} );
- }
return $temp;
}
@@ -395,20 +384,30 @@
my $name = shift;
my $query;
+ my $request;
if( defined $name )
{
- $query = "SELECT o.object_id, o.owner_uid, o.date_creation , o.state , o.description FROM vhffs_object o, vhffs_users u WHERE o.owner_uid=u.uid AND ( ( o.description LIKE '%".$name."%' ) OR ( o.object_id LIKE '%".$name."%' ) OR ( o.owner_uid LIKE '%".$name."%') OR ( state LIKE '%".$name."%' ) OR (u.username LIKE '%".$name."%') )";
+ $name = '%'.$name.'%';
+ $query = 'SELECT o.object_id, o.owner_uid, o.date_creation , o.description, o.state, o.type FROM vhffs_object o INNER JOIN vhffs_users u ON o.owner_uid = u.uid WHERE ( o.description LIKE ? ) OR ( o.object_id LIKE ? ) OR ( o.owner_uid LIKE ? ) OR ( state LIKE ? ) OR ( u.username LIKE ? ) ORDER BY object_id';
+ $request = $vhffs->get_db_object->prepare( $query ) or return -1;
+
+ return undef if ( !$request->execute( $name, $name, $name, $name, $name ));
}
else
{
- $query = "SELECT o.object_id, o.owner_uid, o.date_creation , o.state , o.description FROM vhffs_object o";
- }
- my $request = $vhffs->get_db_object->{'DB_READ'}->prepare( $query ) or return -1;
+ $query = 'SELECT o.object_id, o.owner_uid, o.date_creation , o.description, o.state, o.type FROM vhffs_object o ORDER BY object_id';
+ $request = $vhffs->get_db_object->prepare( $query ) or return -1;
- return undef if ( $request->execute() <= 0);
+ return undef if ( !$request->execute() );
+ }
- return( $request->fetchall_hashref('object_id') );
+ my $result;
+ my $rows = $request->fetchall_arrayref();
+ foreach(@$rows) {
+ push(@$result, _new Vhffs::Object($vhffs, @$_));
+ }
+ return $result;
}
sub get_group
@@ -423,8 +422,8 @@
if( defined $self->{'owner_gid'} )
{
use Vhffs::Group;
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef , $self->{'owner_uid'} , $self->{'owner_gid'} );
- return( $self->{'group'} ) if( defined( $self->{'group'} ) && ( $self->{'group'}->fetch > 0 ) );
+ $self->{'group'} = Vhffs::Group::get_by_gid( $self->{'main'} , $self->{'owner_gid'} );
+ return( $self->{'group'} ) if( defined( $self->{'group'} ) );
}
}
return undef;
@@ -443,42 +442,44 @@
if( defined $self->{'owner_uid'} )
{
use Vhffs::User;
- $self->{'user'} = new Vhffs::User( $self->{'main'} , undef , $self->{'owner_uid'} );
- return( $self->{'user'} ) if( defined ( $self->{'user'} ) && ( $self->{'user'}->fetch > 0 ));
+ $self->{'user'} = Vhffs::User::get_by_uid( $self->{'main'} , $self->{'owner_uid'} );
+ return( $self->{'user'} ) if( defined ( $self->{'user'} ) );
}
}
return undef;
}
+=pod
+=head2 get_by_oid
-1;
-
-__END__
+ my $obj = Vhffs::Object::get_by_oid($main, $oid);
-=head1 SYNOPSIS
+Fetches an object using its object ID. Returned object is
+fully functional.
-Vhffs::Object - The generic object type in VHFFS
+=cut
-=head1 DESCRIPTION
+sub get_by_oid
+{
+ my ($vhffs, $oid) = @_;
+ my $query = 'SELECT owner_uid, date_creation, description, state, type FROM vhffs_object WHERE object_id =?';
+ my $sth = $vhffs->get_db_object->prepare( $query );
+ my $rows = $sth->execute( $oid );
-The Vhffs::Object type is the base of each Vhffs::Services::*, Vhffs::User
-or Vhffs::Group objects. So, you never have to create an instance of Vhffs::Object
-, this class is only use as a super-class for services (or user or group).
+ return undef unless $rows == 1;
-So, the method of Vhffs::Object can be applied to all class which inherit of it.
-Commonly, you can have all the history of an object with a method, get the status
-of a service, ...
+ my @result = $sth->fetchrow_array();
-This type stored informations about state, history, owner group/user.
+ my $object = _new Vhffs::Object($vhffs, $oid, @result);
-=head1 METHODS
+ return $object;
+}
-=head2 new( Vhffs::Main , 1 , '401')
-Create an instance of Vhffs::Object. Typically, this method is onvoked is the new method of inherited class. It creates an object, with a fixed object-id (arg 2) and the owner from uid (arg3).
-The first argument is a Vhffs::Main object.
-Return undef if failed.
+1;
+
+__END__
=head2 get_main( )
Modified: trunk/vhffs-api/src/Vhffs/Panel/Admin.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Admin.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Admin.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -66,7 +66,6 @@
my $template = new HTML::Template( filename => "$templatesdir/admin/main/main.tmpl" );
$template->param( MENU_TITLE => gettext( "Administrator Menu" ) );
- $template->param( SHOW_HIDE => gettext( "Show/Hide" ) );
my $subtemplate;
#Print the General Admin/Modo Panel
@@ -180,7 +179,7 @@
$template->param( ADMIN_MAIL => "" );
}
- if( $vhffs->get_config->use_mailling == 1 )
+ if( $vhffs->get_config->use_mailing == 1 )
{
$subtemplate = new HTML::Template( filename => "$templatesdir/admin/mailing/menu.tmpl" );
$subtemplate->param( TEXT_ADMIN_MAILLING => gettext( "Mailing-lists Admin" ) );
@@ -219,19 +218,6 @@
$template->param( ADMIN_DNS => "" );
}
- if( $vhffs->get_config->use_largefile == 1 )
- {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/largefile/menu.tmpl" );
- $subtemplate->param( TEXT_ADMIN_LARGEFILE => gettext( "Hosted files admin" ) );
- $subtemplate->param( TEXT_LIST_LARGEFILE => gettext( "List all hosted files" ) );
- $subtemplate->param( TEXT_SEARCH_LARGEFILE => gettext( "Search for a file" ) );
- $template->param( ADMIN_LARGEFILE => $subtemplate->output );
- }
- else
- {
- $template->param( ADMIN_LARGEFILE => "" );
- }
-
if( $vhffs->get_config->use_repository == 1 )
{
$subtemplate = new HTML::Template( filename => "$templatesdir/admin/repository/menu.tmpl" );
Modified: trunk/vhffs-api/src/Vhffs/Panel/Avatar.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Avatar.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Avatar.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -87,7 +87,7 @@
my $config = $vhffs->get_config;
my $datadir = $config->get_datadir . "/avatar";
- return undef if( $object->fetch < 0 );
+ return undef unless( defined $object );
$digest = md5_hex( $object->get_oid );
$dir = $datadir . "/" . substr( $digest , 0 , 2 ) . "/" . substr( $digest , 2 , 2 ) . "/" .substr( $digest , 4 , 2 );
Copied: trunk/vhffs-api/src/Vhffs/Panel/Commons.pm (from rev 555, branches/vhffs_4.1/vhffs-api/src/Vhffs/Panel/Commons.pm)
Modified: trunk/vhffs-api/src/Vhffs/Panel/Confirmation.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Confirmation.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Confirmation.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -40,57 +40,48 @@
use strict;
use diagnostics;
+use Vhffs::Main;
+#use Digest::MD5;
+
package Vhffs::Panel::Confirmation;
-#Create a confirmation code. Send an arrayref which contains cid and code
-sub create_code
-{
- my $vhffs;
- my $code;
- my $request;
- my $result;
- my $query;
- my @ret;
- my $cid;
- $vhffs = shift;
- $code = "";
-
+# Create a confirmation code.
+# Returns the clear text confirmation code used for display
+# and an hash used to verify correctness of the user's
+# provided code with check_code
+sub generate_code($) {
+ my $vhffs = shift;
+ my $ret = {};
+
+ my $code = '';
for (0 .. 7) { $code .= ('a'..'z', 'A'..'Z', '0'..'9')[int rand 62] ; }
+ $ret->{clear} = $code;
+# $ret->{hash} = Digest::MD5::md5_hex($code);
- $query = "INSERT INTO vhffs_confirmation (code) VALUES('".$code."')";
- $request = $vhffs->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return undef;
+ my $key = $vhffs->get_config->get_panel_subscribe_code_encrypt_key;
+ $ret->{key} = $key;
- $query = "SELECT max(cid) from vhffs_confirmation";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- #Returns 0 if nothing is found (stupid)
- return undef if( $request->execute == 0 );
- $result = $request->fetchrow_arrayref;
- $cid = $result->[0];
- $ret[0] = $cid;
- $ret[1] = $code;
- return( \@ret );
+ my $crypted = $code ^ $key;
+ $ret->{crypted} = $crypted;
+ $ret->{cryptedhexa} = unpack("H*", $crypted);
+
+ return $ret;
}
-#Get a confirmation code according to the cid
-sub get_code
-{
- my $vhffs;
- my $cid;
- my $query;
- my $request;
- my $result;
+sub decrypt_code($$) {
+ my $vhffs = shift;
+ my $code = shift;
- $vhffs = shift;
- $cid = shift;
- $query = "SELECT code from vhffs_confirmation WHERE cid='".$cid."'";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- return undef if( $request->execute == 0 );
+ $code = pack("H*", $code);
+ $code = $code ^ $vhffs->get_config->get_panel_subscribe_code_encrypt_key;
+ return $code;
+}
- $result = $request->fetchrow_arrayref;
- return $result->[0];
+sub check_code($$$) {
+ my ( $vhffs, $clear1, $crypt) = @_;
+ my $clear2 = decrypt_code( $vhffs, $crypt );
+ return ( $clear1 eq $clear2 );
}
1;
-
Modified: trunk/vhffs-api/src/Vhffs/Panel/Cvs.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Cvs.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Cvs.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -52,52 +52,50 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT c.cvsroot , o.description , u.username , g.groupname , o.object_id FROM vhffs_cvs c, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=c.owner_uid AND g.gid=c.owner_gid AND o.object_id=c.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('cvsroot') );
}
-sub getall_cvs
+sub search
{
- my $main = shift;
- my $name = shift;
+ my ($main, $name) = @_;
+ my $sql;
+ my @params;
+ my $cvs = [];
+
+ if( defined $name ) {
+ $sql = 'SELECT c.cvsroot, g.groupname, c.object_id AS oid, o.state FROM vhffs_cvs c INNER JOIN vhffs_object o ON o.object_id = c.object_id INNER JOIN vhffs_groups g ON g.gid = c.owner_gid WHERE cvsroot LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT c.cvsroot, g.groupname, c.object_id AS oid, o.state FROM vhffs_cvs c INNER JOIN vhffs_object o ON o.object_id = c.object_id INNER JOIN vhffs_groups g ON g.gid = c.owner_gid';
+ }
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
- my $query;
-
- if( defined $name )
- {
- $query = "SELECT c.cvsroot, c.owner_gid, o.state FROM vhffs_cvs c, vhffs_object o WHERE o.object_id=c.object_id AND c.cvsroot LIKE '".$name."'";
- }
- else
- {
- $query = "SELECT c.cvsroot, c.owner_gid, o.state FROM vhffs_cvs c, vhffs_object o WHERE o.object_id=c.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
-
- return undef if ( $request->execute() <= 0);
-
- return( $request->fetchall_hashref('cvsroot') );
+ return undef unless($sth->execute(@params));
+
+ while(my $c = $sth->fetchrow_hashref('NAME_lc')) {
+ $c->{state} = Vhffs::Functions::status_string_from_status_id($c->{state});
+ push(@$cvs, $c);
+ }
+ return $cvs;
}
-
sub create_cvs
{
- my( $main , $cvsroot , $user , $group ) = @_;
+ my( $main, $cvsroot, $description, $user, $group ) = @_;
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return undef if( ! defined $user );
+ return undef if( ! defined $group );
- my $cvs = new Vhffs::Services::Cvs( $main , $cvsroot , $user , $group );
+ my $cvs = Vhffs::Services::Cvs::create($main, $cvsroot, $description, $user, $group);
return undef if( ! defined $cvs);
- $cvs->set_user( $user );
- $cvs->set_group( $group );
- return undef if( $cvs->create < 0 );
-
return undef if ( Vhffs::Acl::add_acl( $user , $cvs , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $cvs , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Panel/DNS.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/DNS.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/DNS.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -51,8 +51,8 @@
{
my( $main , $query , $request);
$main = shift;
- $query = "SELECT n.domain , o.description , u.username , g.groupname , o.object_id FROM vhffs_dns_global n, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=n.owner_uid AND g.gid=n.owner_gid AND n.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $query = "SELECT n.domain , o.description , u.username , g.groupname , o.object_id FROM vhffs_dns n, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=n.owner_uid AND g.gid=n.owner_gid AND n.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('domain') );
@@ -60,43 +60,43 @@
-sub getall_domains
+sub search
{
- my $main = shift;
- my $name = shift;
+ my ($main, $name) = @_;
+ my $sql;
+ my $dns = [];
+ my @params;
- my $query;
+ if( defined $name ) {
+ $sql = 'SELECT ns.domain, ns.object_id AS oid, g.groupname, o.state FROM vhffs_dns ns INNER JOIN vhffs_object o ON o.object_id = ns.object_id INNER JOIN vhffs_groups g ON g.gid = ns.owner_gid WHERE ns.domain LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT ns.domain, ns.object_id AS oid, g.groupname, o.state FROM vhffs_dns ns INNER JOIN vhffs_object o ON o.object_id = ns.object_id INNER JOIN vhffs_groups g ON g.gid = ns.owner_gid';
+ }
- if( defined $name )
- {
- $query = "SELECT ns.domain, ns.object_id, ns.owner_gid, o.state FROM vhffs_dns_global ns, vhffs_object o WHERE o.object_id=ns.object_id AND ns.domain LIKE '".$name."'";
- }
- else
- {
- $query = "SELECT ns.domain, ns.object_id, ns.owner_gid, o.state FROM vhffs_dns_global ns, vhffs_object o WHERE o.object_id=ns.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare( $sql ) or return undef;
- return undef if ( $request->execute() <= 0);
+ return undef unless($sth->execute(@params));
- return( $request->fetchall_hashref('domain') );
+ while(my $d = $sth->fetchrow_hashref('NAME_lc')) {
+ $d->{state} = Vhffs::Functions::status_string_from_status_id($d->{state});
+ push(@$dns, $d);
+ }
+ return $dns;
}
sub create_dns
{
- my ( $main , $dns_name , $user , $group ) = @_;
- return undef if( $user->fetch < 0 );
- return undef if( $group->fetch < 0 );
+ my ( $main , $dns_name, $description , $user , $group ) = @_;
+ return undef if( ! defined $user );
+ return undef if( ! defined $group );
- my $dns = new Vhffs::Services::DNS( $main , $dns_name , $user , $group );
+ my $dns = Vhffs::Services::DNS::create( $main , $dns_name, $description, $user , $group );
return undef if( ! defined $dns );
- $dns->set_user( $user );
- $dns->set_group( $group );
- return undef if( $dns->create < 0 );
-
return undef if ( Vhffs::Acl::add_acl( $user , $dns , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $dns , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
@@ -109,11 +109,11 @@
{
my ( $user , $main ) = @_ ;
- return undef if ( $user->fetch < 0 );
+ return undef if ( ! defined $user );
- my $query = "SELECT ns.domain, ns.object_id FROM vhffs_dns_global ns, vhffs_acl acl ,vhffs_users WHERE vhffs_users.object_id=acl.oid_src AND acl.oid_dst=ns.object_id AND vhffs_users.username='".$user->{'username'}."'";
+ my $query = "SELECT ns.domain, ns.object_id FROM vhffs_dns ns, vhffs_acl acl ,vhffs_users WHERE vhffs_users.object_id=acl.oid_src AND acl.oid_dst=ns.object_id AND vhffs_users.username='".$user->{'username'}."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
return undef if ( $request->execute() <= 0);
@@ -125,10 +125,10 @@
{
my ( $group , $main ) =@_ ;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
- my $query = "SELECT ns.domain, ns.object_id , o.object_id, o.state FROM vhffs_dns_global ns , vhffs_object o WHERE o.object_id=ns.object_id AND ns.owner_gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $query = "SELECT ns.domain, ns.object_id , o.object_id, o.state FROM vhffs_dns ns , vhffs_object o WHERE o.object_id=ns.object_id AND ns.owner_gid='".$group->get_gid."'";
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
return undef if ( $request->execute() <= 0);
@@ -180,4 +180,155 @@
return $template->output;
}
+=pod
+
+=head2 add_a
+
+ eval { Vhffs::Panel::DNS::add_a($dns, $redirect, $name, $ip); };
+ if($@) {
+ print "An error occured: $@\n";
+ } else {
+ print "A Record added\n";
+ }
+
+Add a new A resource record to $dns. If $redirect is true, $name points
+to default address defined in configuration, else, it points on $ip.
+
+=cut
+
+sub add_a {
+ my ($dns, $redirect, $name, $ip) = @_;
+ die() unless(defined $dns && defined $redirect && defined $name && defined $ip);
+ my $rval;
+ if($redirect) {
+ $rval = $dns->add_a($name);
+ } else {
+ $rval = $dns->add_a($name, $ip);
+ }
+ return 1 if($rval > 0);
+ die(gettext('Invalid prefix')."\n") if($rval == -1);
+ die(gettext('Prefix already exists')."\n") if($rval == -2);
+ die(gettext('Unable to find default redirection address, please contact administrators')."\n") if($rval == -3);
+ die(gettext('Invalid IP address')."\n") if($rval == -4);
+ die(gettext('Database error')."\n") if($rval == -5);
+ die(gettext('Unknown error')."\n");
+}
+
+sub update_a {
+ my ($dns, $id, $ip) = @_;
+ die() unless(defined $dns && defined $id && defined $ip);
+ my $rval = $dns->update_a($id, $ip);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Invalid IP address')."\n") if($rval == -3);
+ die(gettext('Database error')."\n") if($rval == -4);
+ die(gettext('Unknown error')."\n");
+}
+
+sub delete_a {
+ my ($dns, $id) = @_;
+ die() unless(defined $dns && defined $id);
+ my $rval = $dns->delete_a($id);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Database error')."\n") if($rval == -3);
+ die(gettext('Unknown error')."\n");
+}
+
+sub add_mx {
+ my ($dns, $host, $priority) = @_;
+ die() unless(defined $dns && defined $host && defined $priority);
+ my $rval = $dns->add_mx($host, $priority);
+ return 1 if($rval > 0);
+ die(gettext('Invalid hostname')."\n") if($rval == -1);
+ die(gettext('Invalid priority')."\n") if($rval == -2);
+ die(gettext('An MX record with the same name already exists for this domain')."\n") if($rval == -3);
+ die(gettext('Database error')."\n") if($rval == -4);
+ die(gettext('Unknown error')."\n");
+}
+
+sub update_mx {
+ my ($dns, $id, $host) = @_;
+ die() unless(defined $dns && defined $id && defined $host);
+ my $rval = $dns->update_mx($id, $host);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Invalid host')."\n") if($rval == -3);
+ die(gettext('Database error')."\n") if($rval == -4);
+ die(gettext('Unknown error')."\n"),;
+}
+
+sub delete_mx {
+ my ($dns, $id) = @_;
+ die() unless(defined $dns && defined $id);
+ my $rval = $dns->delete_mx($id);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Database error')."\n") if($rval == -3);
+ die(gettext('Unknown error')."\n");
+}
+
+sub delete_ns {
+ my ($dns, $id) = @_;
+ die() unless(defined $dns && defined $id);
+ my $rval = $dns->delete_ns($id);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Database error')."\n") if($rval == -3);
+ die(gettext('Unknown error')."\n");
+}
+
+sub add_ns {
+ my ($dns, $host) = @_;
+ die() unless(defined $dns && defined $host);
+ my $rval = $dns->add_ns($host);
+ return 1 if($rval > 0);
+ die(gettext('Invalid hostname')."\n") if($rval == -1);
+ die(gettext('An NS record with the same name already exists for this domain')."\n") if($rval == -2);
+ die(gettext('Database error')."\n") if($rval == -3);
+ die(gettext('Unknown error')."\n");
+}
+
+sub update_cname {
+ my ($dns, $id, $dest) = @_;
+ die() unless(defined $dns && defined $id && defined $dest);
+ my $rval = $dns->update_cname($id, $dest);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Invalid destination')."\n") if($rval == -3);
+ die(gettext('Database error')."\n") if($rval == -4);
+ die(gettext('Unknown error')."\n");
+
+}
+
+sub delete_cname {
+ my ($dns, $id) = @_;
+ die() unless(defined $dns && defined $id);
+ my $rval = $dns->delete_cname($id);
+ return 1 if($rval > 0);
+ die(gettext('Invalid record')."\n") if($rval == -1);
+ die(gettext('Record does not exists')."\n") if($rval == -2);
+ die(gettext('Database error')."\n") if($rval == -3);
+ die(gettext('Unknown error')."\n");
+}
+
+sub add_cname {
+ my ($dns, $name, $dest) = @_;
+ die() unless(defined $dns && defined $name && defined $dest);
+ my $rval = $dns->add_cname($name, $dest);
+ return 1 if($rval > 0);
+ die(gettext('Invalid alias')."\n") if($rval == -1);
+ die(gettext('Invalid destination host')."\n") if($rval == -2);
+ die(gettext('A CNAME or A record with the same name already exists for this domain')."\n") if($rval == -3);
+ die(gettext('Database error')."\n") if($rval == -4);
+ die(gettext('Unknown error')."\n");
+}
+
+
1;
Modified: trunk/vhffs-api/src/Vhffs/Panel/Group.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Group.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Group.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -51,32 +51,36 @@
my $groupname = shift;
my $query = "SELECT u.username, g.groupname from vhffs_users u, vhffs_groups g, vhffs_user_group ug WHERE ug.gid = g.gid AND ug.uid=u.uid AND g.groupname='".$groupname."' AND ug.state='6'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ my $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('username') );
}
-sub getall_groups
+sub search
{
- my $main = shift;
- my $name = shift;
+ my ($main, $name) = @_;
+ my $sql;
+ my @params;
+ my $groups = [];
- my $query;
-
- if( defined $name )
- {
- $query = "SELECT g.groupname, g.object_id, g.quota, g.quota_used, o.state FROM vhffs_groups g, vhffs_object o WHERE g.object_id=o.object_id AND g.groupname LIKE '%".$name."%'";
+ if( defined $name ) {
+ $sql = 'SELECT g.groupname, g.object_id AS OID, o.state, u.username FROM vhffs_groups g INNER JOIN vhffs_object o ON g.object_id = o.object_id INNER JOIN vhffs_users u ON u.uid = g.owner_uid WHERE g.groupname LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT g.groupname, g.object_id AS OID, o.state, u.username FROM vhffs_groups g INNER JOIN vhffs_object o ON g.object_id = o.object_id INNER JOIN vhffs_users u ON u.uid = g.owner_uid WHERE g.groupname NOT IN ( SELECT username FROM vhffs_users )';
}
- else
- {
- $query = "SELECT g.groupname, g.object_id, g.quota, g.quota_used, o.state FROM vhffs_groups g, vhffs_object o WHERE g.object_id=o.object_id AND g.groupname NOT IN ( SELECT username FROM vhffs_users )";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare( $sql ) or return undef;
- return undef if ( $request->execute <= 0 );
- return( $request->fetchall_hashref('groupname') );
+ return undef unless ( $sth->execute(@params) );
+ while(my $g = $sth->fetchrow_hashref('NAME_lc')) {
+ $g->{state} = Vhffs::Functions::status_string_from_status_id($g->{state});
+ push(@$groups, $g);
+ }
+
+ return $groups;
}
@@ -85,8 +89,8 @@
{
my( $main , $query , $request);
$main = shift;
- $query = "SELECT o.description , u.username , g.groupname , o.object_id FROM vhffs_object o , vhffs_users u , vhffs_groups g , vhffs_groups_info gi WHERE u.uid=gi.owner_uid AND gi.gid=g.gid AND u.username!=g.groupname AND g.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $query = "SELECT o.description , u.username , g.groupname , o.object_id FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id = g.object_id INNER JOIN vhffs_users ON u.uid = g.owner_uid WHERE u.username!=g.groupname AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('groupname') );
@@ -97,34 +101,50 @@
{
my ( $user , $main ) = @_;
- return undef if ( $user->fetch < 0 );
+ return undef if ( ! defined $user );
my $query = "SELECT g.groupname , g.object_id, o.state FROM vhffs_groups g, vhffs_user_group ug , vhffs_object o WHERE o.object_id=g.object_id AND ug.gid=g.gid AND ug.uid='".$user->{'uid'}."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
my @retour;
return undef if ( $request->execute() <= 0);
return ( $request->fetchall_hashref( 'groupname' ) );
}
+=head2 create_group($groupname, $user, $main)
+
+Create a new group with specified name and the
+specified user as owner. Owner if affected to
+the group and an ACL is created in order to
+allow him to delete group.
+
+All arguments are mandatory
+
+=over
+
+=item $groupname: Name of the group
+
+=item $user: Vhffs::User owner of the group (must be registered
+in DB).
+
+=item $main: Vhffs::Main instance
+
+=cut
+
sub create_group
{
- my( $groupname , $user , $main ) = @_;
+ my( $groupname , $user , $main, $description ) = @_;
- return undef if( $user->fetch < 0);
+ my $group = Vhffs::Group::create($main, $groupname, $user->get_uid, undef, $description);
- my $group = new Vhffs::Group( $main , $groupname , $user->get_uid) ;
+ return undef unless( defined $group );
- return -1 if( ! defined $group );
+ return undef if ($group->add_user( $user ) < 0 );
- return -2 if ($group->create < 0);
+ return undef if ( Vhffs::Acl::add_acl( $user , $group , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
- return -3 if ($group->add_user( $user ) < 0 );
-
- return -4 if ( Vhffs::Acl::add_acl( $user , $group , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
-
- return 1;
+ return $group;
}
@@ -140,7 +160,6 @@
my $templatedir = $vhffs->get_config->get_templatedir;
my $template = new HTML::Template( filename => $templatedir."/group/menu.tmpl" );
$template->param( TEXT_MYPROJECTS => gettext("My Projects") );
- $template->param( SHOW_HIDE => gettext("Show/Hide") );
$template->param( TEXT_CREATE => gettext("Create") );
# projects
@@ -155,6 +174,8 @@
{
$subtemplate = new HTML::Template( filename => $templatedir."/group/menu_sub.tmpl" );
$subtemplate->param( PROJECTNAME => $obj->get_groupname );
+ $subtemplate->param( OID => $obj->get_oid );
+ $subtemplate->param( HISTORY_TEXT => gettext('History') );
$output .= $subtemplate->output;
}
else
Deleted: trunk/vhffs-api/src/Vhffs/Panel/LargeFile.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/LargeFile.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/LargeFile.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,150 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Panel::LargeFile;
-
-use DBI;
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-use Vhffs::User;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Services::LargeFile;
-
-
-
-sub menu
-{
- my $class = shift;
- my $data = shift;
-
- my $vhffs = $data->{'vhffs'};
- my $session = $data->{'session'};
- my $user = $data->{'user'};
- my $group = $data->{'group'};
- my $cgi = $data->{'cgi'};
-
- my $templatesdir = $vhffs->get_config->get_templatedir;
- my $template = new HTML::Template( filename => "$templatesdir/largefile/menu.tmpl" );
- $template->param( TEXT_CREATE => gettext("Create") );
- $template->param( TEXT_LARGEFILE => gettext("Hosted files") );
-
- my $subtemplate;
-
- my $objs = Vhffs::Services::LargeFile::getall( $vhffs , undef , undef , $group );
- my $obj;
- my $output = "";
- if( defined $objs )
- {
- foreach $obj ( @{$objs} )
- {
- if( ( $obj->get_status == Vhffs::Constants::ACTIVATED ) || ( $obj->get_status == Vhffs::Constants::CREATED ) )
- {
- $subtemplate = new HTML::Template( filename => "$templatesdir/largefile/menu_sub.tmpl" );
- $subtemplate->param( NAME => $obj->get_filename);
- $subtemplate->param( HISTORY => gettext("History"));
- $subtemplate->param( OID => $obj->get_oid );
- }
- else
- {
- $subtemplate = new HTML::Template( filename => "$templatesdir/largefile/menu_sub_wait.tmpl" );
- $subtemplate->param( NAME => $obj->get_filename );
- $subtemplate->param( HISTORY => gettext("History"));
- $subtemplate->param( REASON => Vhffs::Functions::status_string_from_status_id( $obj->get_status ));
- $subtemplate->param( OID => $obj->get_oid );
- }
-
-
- $output .= $subtemplate->output if( defined $subtemplate );
- undef( $subtemplate );
- }
- }
-
- $template->param( SUB_LARGEFILE => $output );
-
- return $template->output;
-}
-
-sub create_largefile
-{
- my $vhffs = shift;
- my $filename = shift;
- my $size = shift;
- my $type = shift;
- my $licence = shift;
- my $hash = shift;
- my $description = shift;
- my $user = shift;
- my $group = shift;
-
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
-
- my $file = new Vhffs::Services::LargeFile( $vhffs , $filename , $user , $group );
-
- return undef if( ! defined $file );
-
- $file->set_user( $user );
- $file->set_group( $group );
- return undef if( $file->fetch > 0 );
- return undef if( $file->set_licence( $licence ) < 0 );
- return undef if ( $file->set_size( $size ) < 0 );
- return undef if ( $file->set_type( $type ) < 0 );
- return undef if ( $file->set_hash( $hash ) < 0 );
-
- $file->set_status( Vhffs::Constants::WAITING_FOR_VALIDATION );
- $file->set_description( $description );
-
- return undef if( $file->create < 0 );
-
- return undef if ( Vhffs::Acl::add_acl( $user , $file , Vhffs::Constants::ACL_DELETE , $vhffs ) < 0 );
- return undef if ( Vhffs::Acl::add_acl( $group , $file , Vhffs::Constants::ACL_VIEW , $vhffs ) < 0 );
-
- return undef if( $file->fetch < 0 );
- return undef if( $file->set_licence( $licence ) < 0 );
- if( defined $hash )
- {
- $file->set_hash( $hash );
- }
- return undef if( $file->commit < 0 );
-
- return $file;
-}
-
-
-
-1;
Modified: trunk/vhffs-api/src/Vhffs/Panel/Mail.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Mail.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Mail.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -45,26 +45,30 @@
use Vhffs::Panel::Main;
use Vhffs::Services::Mail;
-sub getall_mails
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
+ my $sql;
+ my @params;
+ my $mails = [];
- my $query;
+ if( defined $name ) {
+ $sql = 'SELECT m.domain, m.object_id AS oid, o.state, g.groupname FROM vhffs_mxdomain m INNER JOIN vhffs_object o ON o.object_id = m.object_id INNER JOIN vhffs_groups g ON g.gid = m.owner_gid WHERE m.domain LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT m.domain, m.object_id AS oid, o.state, g.groupname FROM vhffs_mxdomain m INNER JOIN vhffs_object o ON o.object_id = m.object_id INNER JOIN vhffs_groups g ON g.gid = m.owner_gid';
+ }
- if( defined $name )
- {
- $query = "SELECT m.domain, m.object_id, o.state, m.owner_gid FROM vhffs_mxdomain m, vhffs_object o WHERE o.object_id=m.object_id AND m.domain LIKE '%".$name."%'";
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
+
+ return undef unless($sth->execute(@params));
+
+ while(my $m = $sth->fetchrow_hashref('NAME_lc')) {
+ $m->{state} = Vhffs::Functions::status_string_from_status_id($m->{state});
+ push(@$mails, $m);
}
- else
- {
- $query = "SELECT m.domain, m.object_id, o.state , m.owner_gid FROM vhffs_mxdomain m, vhffs_object o WHERE o.object_id=m.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
- return undef if ( $request->execute() <= 0);
-
- return( $request->fetchall_hashref('domain') );
+ return $mails
}
@@ -74,7 +78,7 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT m.domain, o.description , u.username , g.groupname , o.object_id FROM vhffs_mxdomain m, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=m.owner_uid AND g.gid=m.owner_gid AND m.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('domain') );
@@ -87,7 +91,7 @@
my $main = shift ;
my $state = shift;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
my $query;
@@ -100,7 +104,7 @@
$query = "SELECT m.domain, m.object_id, o.state FROM vhffs_mxdomain m, vhffs_object o WHERE o.object_id=m.object_id AND m.owner_gid='".$group->get_gid."'";
}
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
return undef if ( $request->execute() <= 0);
@@ -111,16 +115,14 @@
sub create_mail
{
- my( $main , $domain , $user , $group ) = @_;
+ my( $main , $domain , $description, $user , $group ) = @_;
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return undef if( ! defined $user );
+ return undef if( ! defined $group );
- my $mail = new Vhffs::Services::Mail( $main , $domain , $user , $group );
- $mail->set_user( $user );
- $mail->set_group( $group );
+ my $mail = Vhffs::Services::Mail::create($main, $domain, $description, $user, $group);
- return undef if ( $mail->create < 0 );
+ return undef unless ( defined $mail );
return undef if ( Vhffs::Acl::add_acl( $user , $mail , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $mail , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Panel/Mailinglist.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Mailinglist.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Mailinglist.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -52,20 +52,47 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT l.ml_id , l.local_part , l.domain, o.description , u.username , g.groupname , o.object_id FROM vhffs_ml l, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=l.owner_uid AND g.gid=l.owner_gid AND l.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('ml_id') );
}
+sub search
+{
+ my ($main, $name) = @_;
+ my $sql;
+ my @params;
+ my $mls = [];
+ if( defined $name ) {
+ $sql = 'SELECT l.local_part, l.domain, g.groupname, l.object_id AS oid, o.state FROM vhffs_ml l INNER JOIN vhffs_object o ON o.object_id = l.object_id INNER JOIN vhffs_groups g ON g.gid = l.owner_gid WHERE l.local_part LIKE ? OR l.domain LIKE ?';
+ push(@params, '%'.$name.'%');
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT l.local_part, l.domain, g.groupname, l.object_id AS oid, o.state FROM vhffs_ml l INNER JOIN vhffs_object o ON o.object_id = l.object_id INNER JOIN vhffs_groups g ON g.gid = l.owner_gid';
+ }
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
+
+ return undef unless($sth->execute(@params));
+
+ while(my $m = $sth->fetchrow_hashref('NAME_lc')) {
+ $m->{state} = Vhffs::Functions::status_string_from_status_id($m->{state});
+ push(@$mls, $m);
+ }
+ return $mls;
+}
+
+
+
sub getall_list_per_group
{
my $group = shift;
my $main = shift ;
my $state = shift;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
my $query;
@@ -78,7 +105,7 @@
$query = "SELECT l.ml_id, l.local_part , l.domain, l.object_id, o.state FROM vhffs_ml l, vhffs_object o WHERE o.object_id=l.object_id AND l.owner_gid='".$group->get_gid."'";
}
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
return undef if ( $request->execute() <= 0);
@@ -88,27 +115,18 @@
sub create_list
{
- my $main = shift;
- my $lpart = shift;
- my $domain = shift;
- my $user = shift;
- my $group = shift;
+ my ($main, $lpart, $domain, $description, $user, $group) = @_;
- return -5 if( $user->fetch < 0 );
- return -5 if( $group->fetch < 0 );
+ return -5 if( ! defined $user );
+ return -5 if( ! defined $group );
- my $list = new Vhffs::Services::Mailing( $main , $lpart , $domain );
+ my $list = Vhffs::Services::Mailing::create( $main , $lpart , $domain, $user->get_mail, $description, $user, $group );
return -1 if( ! defined $list );
- $list->set_user( $user );
- $list->set_group( $group );
- $list->set_admin( $user->get_mail );
- return -1 if ( $list->create < 0 );
-
return -2 if ( Vhffs::Acl::add_acl( $user , $list , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return -3 if( Vhffs::Acl::add_acl( $group , $list , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
- return 1;
+ return $list;
}
@@ -133,32 +151,26 @@
my $mls = Vhffs::Services::Mailing::getall( $vhffs , undef , undef , $group );
my $ml;
my $output = "";
- if( defined $mls )
- {
- foreach $ml ( @{$mls} )
- {
- if( $ml->get_status == Vhffs::Constants::ACTIVATED )
- {
- $subtemplate = new HTML::Template( filename => "$templatesdir/mailinglist/menu_sub.tmpl" );
- $subtemplate->param( NAME => $ml->get_localpart . "\@" . $ml->get_domain);
- $subtemplate->param( LOCAL => $ml->get_localpart );
- $subtemplate->param( DOMAIN => $ml->get_domain );
- $subtemplate->param( HISTORY => gettext("History"));
- $subtemplate->param( OID => $ml->get_oid );
- }
- else
- {
- $subtemplate = new HTML::Template( filename => "$templatesdir/mailinglist/menu_sub_wait.tmpl" );
- $subtemplate->param( NAME => $ml->get_localpart . "\@" . $ml->get_domain);
- $subtemplate->param( HISTORY => gettext("History"));
- $subtemplate->param( REASON => Vhffs::Functions::status_string_from_status_id( $ml->get_status ));
- $subtemplate->param( OID => $ml->get_oid );
- }
+ foreach $ml ( @{$mls} ) {
+ if( $ml->get_status == Vhffs::Constants::ACTIVATED ) {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/mailinglist/menu_sub.tmpl" );
+ $subtemplate->param( NAME => $ml->get_localpart . "\@" . $ml->get_domain);
+ $subtemplate->param( LOCAL => $ml->get_localpart );
+ $subtemplate->param( DOMAIN => $ml->get_domain );
+ $subtemplate->param( HISTORY => gettext("History"));
+ $subtemplate->param( OID => $ml->get_oid );
+ } else {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/mailinglist/menu_sub_wait.tmpl" );
+ $subtemplate->param( NAME => $ml->get_localpart . "\@" . $ml->get_domain);
+ $subtemplate->param( HISTORY => gettext("History"));
+ $subtemplate->param( REASON => Vhffs::Functions::status_string_from_status_id( $ml->get_status ));
+ $subtemplate->param( OID => $ml->get_oid );
+ }
- $output .= $subtemplate->output if( defined $subtemplate );
- undef( $subtemplate );
- }
+
+ $output .= $subtemplate->output if( defined $subtemplate );
+ undef( $subtemplate );
}
$template->param( SUB_MAILINGLIST => $output );
Modified: trunk/vhffs-api/src/Vhffs/Panel/Main.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Main.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Main.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,7 +3,7 @@
package Vhffs::Panel::Main;
require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw( open_template display display_light );
+@EXPORT = qw( display display_light );
use POSIX qw(locale_h);
use HTML::Template;
@@ -18,15 +18,29 @@
use Vhffs::Group;
use Vhffs::Panel::Menu;
use Vhffs::Panel::User;
+use Vhffs::Panel::Commons;
+=pod
+=head1 NAME
+
+Vhffs::Panel::Main - Provides acces to common VHFFS
+functionnalities from Vhffs Panel.
+
+=head1 SYNOPSIS
+
+TODO
+
+=head1 METHODS
+
+=cut
+
sub check
{
my $vhffs = shift;
my $templatedir = $vhffs->get_config->get_templatedir;
my $template;
-
if( $vhffs->is_valid() == 0 )
{
$template = new HTML::Template( filename => $templatedir."/main/close.tmpl" );
@@ -48,23 +62,94 @@
display_light Vhffs::Panel::Main( $template );
exit( 0 );
}
+
+ return 0;
}
-sub get_theme
+sub list_themes
{
my $vhffs = shift;
- my $theme = CGI->cookie( "theme" );
+ return -1 if( ! defined $vhffs );
+ my @themes;
+
+ my $dir = $vhffs->get_config->get_themesdir;
+
+ return undef if( ! ( defined $dir ) );
+
+ opendir( DIR , $dir) or return -2;
+
+ my @files = readdir( DIR );
+
+ foreach( @files )
+ {
+ next if( /\./);
+ if( -d $dir."/".$_ )
+ {
+ push @themes , $_;
+ }
+ }
+
+ closedir( DIR );
+
+ return @themes;
+}
+
+
+sub cookie_theme
+{
+ my $vhffs;
+ my $cgi;
+ my $cookie;
+ my $theme;
+
+ $vhffs = shift;
+ $cgi = shift;
+
+ $theme = $cgi->param( "theme" ) if ( defined $cgi );
+ $cookie = CGI->cookie( -name=>"theme", -value=>$theme, -expires=>'+10y' ) if ( defined $theme );
+ $theme = CGI->cookie( "theme" ) if ( ! defined $theme );
$theme = $vhffs->get_config->get_default_theme() if ( ! defined $theme );
+ $theme = "vhffs" if ( ! defined $theme || ! -f $vhffs->get_config->get_themesdir . "/" . $theme . "/main.css" );
- my $themetestfile = $vhffs->get_config->get_themesdir . "/" . $theme . "/main.css";
- return $theme if ( -f $themetestfile );
+ return ( $theme, $cookie );
+}
- $themetestfile = $vhffs->get_config->get_themesdir . "/vhffs/main.css";
- return "vhffs" if ( -f $themetestfile );
+
+sub get_theme
+{
+ my $vhffs = shift;
+ my ( $theme, $cookie ) = cookie_theme( $vhffs );
+ return $theme;
+}
+
+
+sub list_languages
+{
+ my $vhffs = shift;
+ return -1 if( ! defined $vhffs );
+
+ my @langs;
- return undef;
+ my $dir = $vhffs->get_config->get_intldir;
+ return undef if( ! ( defined $dir ) );
+
+# push @langs , "en_US";
+
+ opendir( DIR , $dir) or return @langs;
+ my @files = readdir( DIR );
+ foreach( @files )
+ {
+ next if( /\./);
+ if( -d $dir."/".$_ )
+ {
+ push @langs , $_;
+ }
+ }
+ closedir( DIR );
+
+ return @langs;
}
@@ -82,19 +167,19 @@
return $txt;
}
+
sub cookie_lang
{
- use CGI;
my $vhffs;
my $cgi;
my $cookie;
my $lang;
$vhffs = shift;
- $cgi = new CGI;
+ $cgi = shift;
- $lang = $cgi->param( "lang" );
- $cookie = CGI->cookie( "language" => $lang ) if ( defined $lang );
+ $lang = $cgi->param( "lang" ) if ( defined $cgi );
+ $cookie = CGI->cookie( -name=>"language", -value=>$lang, -expires=>'+10y' ) if ( defined $lang );
$lang = CGI->cookie( "language" ) if ( ! defined $lang );
$lang = $vhffs->get_config->get_default_language() if ( ! defined $lang );
$lang = "en_US" if ( ! defined $lang );
@@ -103,72 +188,84 @@
bindtextdomain("vhffs", $vhffs->get_config->get_intldir);
textdomain("vhffs");
- return $cookie;
+ return ( $lang, $cookie );
}
+
+sub get_lang
+{
+ my $vhffs = shift;
+ my ( $lang, $cookie ) = cookie_lang( $vhffs );
+ return $lang;
+}
+
+
sub new
{
+ my $class = ref($_[0]) || $_[0];
my $bad_news;
my $session;
my $user;
my $username;
my $uid;
+ my ( $lang, $langcookie );
+ my ( $theme, $themecookie );
- # get current cgi
my $cgi = new CGI;
+ my $vhffs = init Vhffs::Main;
+ if ( ! defined $vhffs ) {
+ print CGI->header( -type=>"text/html", -charset=>"utf-8" ), "Unable to open database connection\n";
+ exit 1;
+ }
- # Init the Vhffs Main System
- my $vhffs = init Vhffs::Main;
+ ( $lang, $langcookie ) = cookie_lang( $vhffs , $cgi );
+ ( $theme, $themecookie ) = cookie_theme( $vhffs , $cgi );
+
+ Vhffs::Panel::Main::check( $vhffs );
+
my $config = $vhffs->get_config;
my $templatedir = $vhffs->get_config->get_templatedir;
+ # We need to create an object now in order
+ # to be able to call display if something
+ # fails
+ my $this = {};
+ $this->{vhffs} = $vhffs;
+ $this->{templatedir} = $templatedir;
+ $this->{cgi} = $cgi;
+ $this->{config} = $config;
+ $this->{lang} = $lang;
+ $this->{langcookie} = $langcookie;
+ $this->{theme} = $theme;
+ $this->{themecookie} = $themecookie;
+ $this->{errors} = [];
+ $this->{infos} = [];
+ bless($this, $class);
+
+
# fetch the cookie which contain the sessions ID and the session
- my $sid = CGI->cookie("session");
- if( ! defined $sid )
- {
+ my $sid = $cgi->cookie(CGI::Session::name());
+ if( ! defined $sid ) {
$bad_news = gettext("No cookie found, please accept the cookie and then please login again !");
- }
-
- if( ! defined $bad_news )
- {
+ } else {
$session = new CGI::Session(undef, $sid, {Directory=>'/tmp'});
$username = $session->param("username");
$uid = $session->param("uid");
- if(!$username || !$uid || $session->id() ne $sid) {
+ if(!$username || !$uid || $session->is_new()) {
$bad_news = gettext("Expired session ! Please login again");
$session->delete();
- }
- }
-
- if( ! defined $bad_news )
- {
- $user = new Vhffs::User( $vhffs , $username , '401' );
-
- #Try to verify if the user exist and is allowed to browse panel
- #Then, set some preferences
- if( ! defined $user || $user->fetch < 0 )
- {
+ } elsif( ! defined($user = Vhffs::User::get_by_uid($vhffs, $uid)) ) {
$bad_news = gettext("User does not exist");
- }
- elsif( $user->get_status != Vhffs::Constants::ACTIVATED )
- {
+ } elsif( $user->get_status != Vhffs::Constants::ACTIVATED ) {
$bad_news = gettext("You're are not allowed to browse panel");
}
- else
- {
- cookie_lang( $vhffs );
- }
}
- if( defined $bad_news )
- {
- my $template = new HTML::Template( filename => $templatedir."/main/login_failed.tmpl" );
- $template->param( TEXT_LOGINFAILED => $bad_news);
- $template->param( TEXT_LOGIN => gettext("Login") );
- $template->param( THEME => get_theme( $vhffs ) );
- print "Content-type: text/html\n\n" , $template->output;
- return 0;
+ if( defined $bad_news ) {
+ $this->add_error($bad_news);
+ Vhffs::Panel::Commons::display_login($vhffs, $this);
+ exit(0);
}
@@ -178,8 +275,8 @@
my $group;
$projectname = $session->param("project");
if( defined $projectname ) {
- $group = new Vhffs::Group( $vhffs , $projectname , '401' );
- if( $group->fetch < 0 || $group->get_status != Vhffs::Constants::ACTIVATED || $group->is_user_in_group( $user ) != 1 )
+ $group = Vhffs::Group::get_by_groupname($vhffs, $projectname);
+ if( (! defined($group)) || $group->get_status != Vhffs::Constants::ACTIVATED || $group->is_user_in_group( $user ) != 1 )
{
$session->param("project", NULL);
undef $group;
@@ -187,32 +284,64 @@
}
my $maintemplate = new HTML::Template( filename => $templatedir."/main/panel.tmpl" );
- $maintemplate->param( PANEL_TITLE => gettext("VHFFS Panel") );
-
- my $theme = get_theme( $vhffs );
+ $maintemplate->param( PANEL_TITLE => sprintf( gettext( "%s's Panel" ), $config->get_host_name ) );
$maintemplate->param( THEME => $theme );
+ # Allows each theme to have its own Jscripts
+ my $jsglob = $config->get_themesdir()."$theme/js/*.js";
+ my $jswebpath = "/themes/$theme/js/";
+ my @jscripts;
+ push @jscripts, {SCRIPT => '/js/commons.js'};
+ while(glob($jsglob)) {
+ use File::Basename;
+ push @jscripts, {SCRIPT => $jswebpath.basename( $_ )};
+ }
+ $maintemplate->param( JSCRIPTS => \@jscripts );
- my $data = {};
- $data->{'vhffs'} = $vhffs;
- $data->{'session'} = $session;
- $data->{'template'} = $maintemplate;
- $data->{'templatedir'} = $templatedir;
- $data->{'user'} = $user;
- $data->{'cgi'} = $cgi;
- $data->{'config'} = $config;
- $data->{'theme'} = $theme;
+ $this->{session} = $session;
+ $this->{template} = $maintemplate;
+ $this->{user} = $user;
if( defined $group ) {
- $data->{'group'} = $group;
- $data->{'groupname'} = $projectname;
+ $this->{'group'} = $group;
+ $this->{'groupname'} = $projectname;
}
- my $menutemplate = new Vhffs::Panel::Menu($data);
+ my $menutemplate = new Vhffs::Panel::Menu($this);
$maintemplate->param( MENU => $menutemplate->output );
- return $data;
+ return $this;
}
+sub has_errors
+{
+ my $self = shift;
+ return (@{$self->{errors}} > 0);
+}
+
+sub set_title
+{
+ my ($self, $title) = @_;
+ $self->{template}->param( TEXT_TITLE => $title );
+}
+
+sub add_error
+{
+ my ($self, $error) = @_;
+ push(@{$self->{errors}}, {msg => $error});
+}
+
+sub add_info
+{
+ my ($self, $info) = @_;
+ push(@{$self->{infos}}, {msg => $info});
+}
+
+sub clear_infos
+{
+ my $self = shift;
+ $self->{infos} = [];
+}
+
sub right_first
{
my ( $class , $vhffs , $session , $user ) = @_;
@@ -226,23 +355,21 @@
return $template;
}
+
sub project_info
{
- my ( $class , $vhffs , $session , $user ) = @_;
+ my ( $class , $vhffs, $group ) = @_;
- my $projectname = $session->param("project");
my $temp;
my $object;
my $objects;
- my $group;
my $template;
my $templatedir;
my $subtemplate;
$templatedir = $vhffs->get_config->get_templatedir;
- $group = new Vhffs::Group( $vhffs , $projectname , '401' );
- if( ( ! defined( $group ) ) || ( $group->fetch <= 0 ) )
+ if( ! defined( $group ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$template->param( MESSAGE => gettext("Group error" ) );
@@ -250,7 +377,7 @@
else
{
$template = new HTML::Template( filename => $templatedir."/group/info.tmpl" );
- $template->param( TEXT_TITLE => sprintf( gettext("Group %s") , $projectname ));
+ $template->param( TEXT_TITLE => sprintf( gettext("Group %s") , $group->get_groupname ));
$template->param( GROUPNAME => $group->get_groupname );
$template->param( QUOTA_VALUE => sprintf( gettext("Quota (used/total) : %s/%s") , $group->get_quota_used , $group->get_quota ) );
@@ -260,7 +387,7 @@
$temp = "";
$template->param( WEBAREA => gettext("Webarea for this group") );
$objects = Vhffs::Services::Httpd::getall( $vhffs , undef , undef , $group );
- if( defined $objects )
+ if( @$objects != 0 )
{
foreach $object ( @{$objects} )
{
@@ -436,35 +563,9 @@
}
- if( $vhffs->get_config->use_largefile == 1 )
+ if( $vhffs->get_config->use_repository == 1 )
{
- use Vhffs::Services::LargeFile;
$temp = "";
- $template->param( LARGEFILE => gettext("Hosted files for this group") );
- $objects = Vhffs::Services::LargeFile::getall( $vhffs , undef , undef , $group );
- if( defined $objects )
- {
- foreach $object ( @{$objects} )
- {
- $subtemplate = new HTML::Template( filename => $templatedir."/misc/group_service.tmpl" );
- $subtemplate->param( SERVICE => "largefile" );
- $subtemplate->param( VALUE => $object->get_filename );
- $subtemplate->param( TEXT => gettext("Go to admin") );
- $subtemplate->param( HISTORY => gettext("View history") );
- $subtemplate->param( OID => $object->get_oid );
- $temp .= $subtemplate->output;
- }
- }
- else
- {
- $temp = gettext("No hosted files for this group");
- }
- $template->param( LARGEFILE_VALUES => $temp );
- }
-
- if( $vhffs->get_config->use_dns == 1 )
- {
- $temp = "";
$template->param( REPOSITORY => gettext("Download repositories for this group") );
$objects = Vhffs::Services::Repository::getall( $vhffs , undef , undef , $group );
if( defined $objects )
@@ -487,7 +588,7 @@
$template->param( REPOSITORY_VALUES => $temp );
}
- if( $vhffs->get_config->use_repository == 1 )
+ if( $vhffs->get_config->use_dns == 1 )
{
$temp = "";
$template->param( DNS => gettext("Domains for this group") );
@@ -532,11 +633,11 @@
sub display
{
- my ( $class , $panel , $content, $cookie, $cookie2 ) = @_;
+ my ( $class , $panel , $content, $cookie ) = @_;
+ # WTF !?!?
if( ref( $class ) eq 'HASH' )
{
- $cookie2 = $cookie;
$cookie = $content;
$content = $panel;
$panel = $class;
@@ -544,143 +645,130 @@
my $maintemplate = $panel->{'template'};
$maintemplate->param( CENTRE => $content );
+ if(@{$panel->{errors}} > 0) {
+ my $tmplerrors = new HTML::Template( filename => $panel->{templatedir}.'/misc/errors.tmpl' );
+ $tmplerrors->param( ERRORS => $panel->{errors} );
+ $maintemplate->param( ERRORS => $tmplerrors->output );
+ }
- if( defined $panel->{'group'} )
- {
+ if(@{$panel->{infos}} > 0) {
+ my $tmplinfos = new HTML::Template( filename => $panel->{templatedir}.'misc/infos.tmpl' );
+ $tmplinfos->param( INFOS => $panel->{infos} );
+ $maintemplate->param( INFOS => $tmplinfos->output );
+ }
+
+ if( defined $panel->{'group'} ) {
$maintemplate->param( GROUPNAME => sprintf( gettext( "Current group: %s" ) , $panel->{'group'}->get_groupname ) );
}
- if( ! defined $cookie )
- {
- print CGI->header( -type=>"text/html", -charset=>"utf-8" );
- }
- else
- {
- if( ! defined $cookie2)
- {
- print CGI->header( -cookie=>$cookie, -type=>"text/html", -charset=>"utf-8" );
- }
- else
- {
- print CGI->header( -cookie=>[$cookie,$cookie2], -type=>"text/html", -charset=>"utf-8" );
- }
- }
+ my $langcookie = "";
+ $langcookie = $panel->{'langcookie'} if ( defined $panel->{'langcookie'} );
+ my $themecookie = "";
+ $themecookie = $panel->{'themecookie'} if ( defined $panel->{'themecookie'} );
+ $cookie = "" if ( ! defined $cookie );
+ print CGI->header( -cookie=>[$langcookie,$themecookie,$cookie], -type=>"text/html", -charset=>"utf-8" );
+
print $maintemplate->output;
-
return;
}
-sub display_light
+sub new_light
{
- my ( $class , $vhffs, $template, $cookie ) = @_;
-
- if( ! $cookie )
- {
- print CGI->header( -type=>"text/html", -charset=>"utf-8" );
+ my $class = ref($_[0]) || $_[0];
+ my $cgi = new CGI;
+ my $vhffs = init Vhffs::Main;
+ if ( ! defined $vhffs ) {
+ print CGI->header( -type=>"text/html", -charset=>"utf-8" ), "Unable to open database connection\n";
+ exit 1;
}
- else
- {
- print CGI->header( -cookie=>$cookie, -type=>"text/html", -charset=>"utf-8" );
- }
- my $theme = get_theme( $vhffs );
- $template->param( THEME => $theme );
+ my $config = $vhffs->get_config;
+ my $templatedir = $vhffs->get_config->get_templatedir;
+ my ( $lang, $langcookie ) = cookie_lang( $vhffs , $cgi );
+ my ( $theme, $themecookie ) = cookie_theme( $vhffs , $cgi );
- print $template->output;
+ Vhffs::Panel::Main::check( $vhffs );
- return;
+ my $this = {};
+ $this->{vhffs} = $vhffs;
+ $this->{templatedir} = $templatedir;
+ $this->{cgi} = $cgi;
+ $this->{config} = $config;
+ $this->{lang} = $lang;
+ $this->{langcookie} = $langcookie;
+ $this->{theme} = $theme;
+ $this->{themecookie} = $themecookie;
+ $this->{errors} = [];
+ bless($this, $class);
+
+ return $this;
}
-
-sub list_themes
+sub display_light
{
- my $vhffs = shift;
- return -1 if( ! defined $vhffs );
+ my ( $class, $panel, $template, $cookie ) = @_;
- my @themes;
-
- my $dir = $vhffs->get_config->get_themesdir;
+ #FIXME temporary hack
+ if(ref($class)) {
+ $cookie = $template;
+ $template = $panel;
+ $panel = $class;
+ }
- return undef if( ! ( defined $dir ) );
+ my $langcookie = "";
+ $langcookie = $panel->{'langcookie'} if ( defined $panel->{'langcookie'} );
+ my $themecookie = "";
+ $themecookie = $panel->{'themecookie'} if ( defined $panel->{'themecookie'} );
+ $cookie = "" if ( ! defined $cookie );
- opendir( DIR , $dir) or return -2;
-
- my @files = readdir( DIR );
+ print CGI->header( -cookie=>[$langcookie,$themecookie,$cookie], -type=>"text/html", -charset=>"utf-8" );
- foreach( @files )
- {
- next if( /\./);
- if( -d $dir."/".$_ )
- {
- push @themes , $_;
- }
- }
+ my $theme = get_theme( $panel->{'vhffs'} );
+ $template->param( THEME => $theme );
+ if(@{$panel->{errors}} > 0) {
+ my $tmplerrors = new HTML::Template( filename => $panel->{templatedir}."/misc/errors.tmpl" );
+ $tmplerrors->param( ERRORS => $panel->{errors} );
+ $template->param( ERRORS => $tmplerrors->output );
+ }
- closedir( DIR );
- return @themes;
+ print $template->output;
+ return;
}
+=pod
-sub list_languages
-{
- my $vhffs = shift;
- return -1 if( ! defined $vhffs );
+=head2 redirect
- my @langs;
-
- my $dir = $vhffs->get_config->get_intldir;
- return undef if( ! ( defined $dir ) );
+ $panel->redirect($page, $cookies);
-# push @langs , "en_US";
+Issues a redirection header sending to $page
+(you can specify additional cookies to be send).
- opendir( DIR , $dir) or return @langs;
- my @files = readdir( DIR );
- foreach( @files )
- {
- next if( /\./);
- if( -d $dir."/".$_ )
- {
- push @langs , $_;
- }
- }
- closedir( DIR );
+This function never returns.
- return @langs;
-}
+B<C<$page> should be an absolute path>
+B<C<$cookies>> can be a CGI::Cookie or a reference
+to a CGI::Cookie array.
-sub open_template
-{
- my ( $arg1 , $arg2 , $arg3 , $vhffs , $path , $template , $tmp );
- $vhffs = shift;
- $arg1 = shift;
- $arg2 = shift;
- $arg3 = shift;
- $path = $vhffs->get_config->get_templatedir;
-
- $tmp = shift;
-
- if( $arg3 )
- {
- $path .= "/" . $arg1 . "/" . $arg2 . "/" . $arg3 . ".tmpl";
- }
- elsif( $arg2 )
- {
- $path .= "/" . $arg1 . "/" . $arg2 . ".tmpl";
- }
- else
- {
- $path .= "/" . $arg1 . ".tmpl";
- }
-
- $template = new HTML::Template( filename => $path , die_on_bad_params => 0 );
-
- return( $template );
+=cut
+sub redirect {
+ my ($self, $dest, $cookies) = @_;
+ if(defined $cookies) {
+ if(ref($cookies)) {
+ foreach(@$cookies) {
+ print "Set-Cookie: $_\n";
+ }
+ } else {
+ print "Set-Cookie: $cookies\n";
+ }
+ }
+ print CGI::redirect($dest);
+ exit(0);
}
-
1;
Modified: trunk/vhffs-api/src/Vhffs/Panel/Menu.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Menu.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Menu.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -50,7 +50,6 @@
use Vhffs::Panel::DNS;
use Vhffs::Panel::Mail;
use Vhffs::Panel::Mailinglist;
-use Vhffs::Panel::LargeFile;
use Vhffs::Panel::Repository;
sub new
@@ -85,6 +84,7 @@
# add the User account
my $usertemplate = new HTML::Template( filename => $templatedir."/menu/user.tmpl" );
+ $usertemplate->param( MENU_TITLE => gettext("General") );
$usertemplate->param( TEXT_PREFS => gettext("User Preferences") );
$usertemplate->param( TEXT_HELP => gettext("Help") );
$usertemplate->param( TEXT_SUBMITBUG => gettext("Submit a bug") );
@@ -120,7 +120,6 @@
my $projecttemplate = new HTML::Template( filename => $templatedir."/menu/group.tmpl" );
$projecttemplate->param( PROJECTNAME => $projectname );
- $projecttemplate->param( SHOW_HIDE => gettext("Show/Hide") );
$projecttemplate->param( TEXT_PROJECT => gettext("Project : ") );
$projecttemplate->param( TEXT_CONFIG => gettext("Project Configuration") );
@@ -184,13 +183,6 @@
$projecttemplate->param( MAILINGLIST_MENU => $mailingmenu );
}
- # Large files
- if( $vhffs->get_config->use_largefile == 1 )
- {
- $menu = menu Vhffs::Panel::LargeFile($data);
- $projecttemplate->param( LARGEFILE_MENU => $menu );
- }
-
# Download repository
if( $vhffs->get_config->use_repository == 1 )
{
Modified: trunk/vhffs-api/src/Vhffs/Panel/Mysql.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Mysql.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Mysql.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -50,57 +50,57 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT m.dbname , o.description , u.username , g.groupname , o.object_id FROM vhffs_mysql m, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=m.owner_uid AND g.gid=m.owner_gid AND m.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('dbname') );
}
-sub getall_mysql
+sub search
{
- my $main = shift;
- my $name = shift;
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $mys = [];
- if( defined $name )
- {
- $query = "SELECT m.dbname, m.dbuser, m.object_id, m.owner_gid, o.state FROM vhffs_mysql m, vhffs_object o WHERE o.object_id=m.object_id AND ( ( m.dbname LIKE '".$name."' ) OR ( m.dbuser LIKE '".$name."' ) )";
- }
- else
- {
- $query = "SELECT m.dbname, m.dbuser, m.object_id, m.owner_gid, o.state FROM vhffs_mysql m, vhffs_object o WHERE o.object_id=m.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
-
- return undef if ( $request->execute() <= 0);
-
- return( $request->fetchall_hashref('dbname') );
-}
+ if( defined $name ) {
+ $sql = 'SELECT m.dbname, m.object_id AS oid, g.groupname, o.state FROM vhffs_mysql m INNER JOIN vhffs_object o ON o.object_id = m.object_id INNER JOIN vhffs_groups g ON g.gid = m.owner_gid WHERE m.dbname LIKE ? OR m.dbuser LIKE ?';
+ push(@params, '%'.$name.'%');
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT m.dbname, m.object_id AS oid, g.groupname, o.state FROM vhffs_mysql m INNER JOIN vhffs_object o ON o.object_id = m.object_id INNER JOIN vhffs_groups g ON g.gid = m.owner_gid';
+ }
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare( $sql) or return undef;
+ return undef unless($sth->execute(@params));
+ while(my $m = $sth->fetchrow_hashref('NAME_lc')) {
+ $m->{state} = Vhffs::Functions::status_string_from_status_id($m->{state});
+ push(@$mys, $m);
+ }
-sub create_mysql
-{
- my( $main , $dbname , $user , $group , $dbuser, $dbpass ) = @_;
+ return $mys;
+}
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
- my $mysql = new Vhffs::Services::Mysql( $main , $dbname , $user , $group );
- return undef if( ! defined $mysql );
- $mysql->set_user( $user );
- $mysql->set_group( $group );
+sub create_mysql($$$$$$$)
+{
+ my( $main , $dbname , $user , $group , $dbuser, $dbpass, $description ) = @_;
- return undef if ( $mysql->set_dbusername( $dbuser ) < 0 );
- return undef if ( $mysql->set_dbpassword( $dbpass ) < 0 );
+ return undef if( ! defined $user );
+ return undef if( ! defined $group );
- return undef if( $mysql->create < 0 );
+
+ my $mysql = Vhffs::Services::Mysql::create($main, $dbname, $dbuser, $dbpass, $description, $user, $group);
+ return undef unless( defined $mysql );
+
return undef if ( Vhffs::Acl::add_acl( $user , $mysql , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if ( Vhffs::Acl::add_acl( $group , $mysql , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
@@ -112,11 +112,11 @@
{
my ( $group , $main ) = @_;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
my $query = "SELECT m.dbname , m.object_id , o.state FROM vhffs_mysql m, vhffs_object o WHERE m.object_id=o.object_id AND m.owner_gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
my @retour;
return undef if ( $request->execute() <= 0);
Copied: trunk/vhffs-api/src/Vhffs/Panel/Object.pm (from rev 555, branches/vhffs_4.1/vhffs-api/src/Vhffs/Panel/Object.pm)
Modified: trunk/vhffs-api/src/Vhffs/Panel/Pgsql.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Pgsql.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Pgsql.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -47,26 +47,30 @@
use Vhffs::Services::Postgres;
-sub getall_pgsql
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $pgs = [];
- if( defined $name )
- {
- $query = "SELECT p.dbname, p.dbuser, p.object_id, p.owner_gid, o.state FROM vhffs_pgsql p, vhffs_object o WHERE o.object_id=p.object_id AND ( ( p.dbname LIKE '".$name."' ) OR ( p.dbuser LIKE '".$name."' ) )";
- }
- else
- {
- $query = "SELECT p.dbname, p.dbuser, p.object_id, p.owner_gid, o.state FROM vhffs_pgsql p, vhffs_object o WHERE o.object_id=p.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ if( defined $name ) {
+ $sql = 'SELECT p.dbname, p.object_id AS oid, g.groupname, o.state FROM vhffs_pgsql p INNER JOIN vhffs_object o ON o.object_id = p.object_id INNER JOIN vhffs_groups g ON g.gid = p.owner_gid WHERE p.dbname LIKE ? OR p.dbuser LIKE ?';
+ push(@params, '%'.$name.'%', '%'.$name.'%');
+ } else {
+ $sql = 'SELECT p.dbname, p.object_id AS oid, g.groupname, o.state FROM vhffs_pgsql p INNER JOIN vhffs_object o ON o.object_id = p.object_id INNER JOIN vhffs_groups g ON g.gid = p.owner_gid';
+ }
- return undef if ( $request->execute() <= 0);
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
- return( $request->fetchall_hashref('dbname') );
+ return undef unless( $sth->execute(@params) );
+
+ while(my $p = $sth->fetchrow_hashref('NAME_lc')) {
+ $p->{state} = Vhffs::Functions::status_string_from_status_id($p->{state});
+ push(@$pgs, $p);
+ }
+ return $pgs;
}
@@ -75,7 +79,7 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT p.dbname , o.description , u.username , g.groupname , o.object_id FROM vhffs_pgsql p, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=p.owner_uid AND g.gid=p.owner_gid AND p.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('dbname') );
@@ -87,11 +91,11 @@
{
my ( $group , $main ) = @_;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
my $query = "SELECT p.dbname , p.object_id , o.state FROM vhffs_pgsql p, vhffs_object o WHERE p.object_id=o.object_id AND p.owner_gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
my @retour;
return undef if ( $request->execute() <= 0);
@@ -150,22 +154,15 @@
sub create_pgsql
{
- my( $main , $dbname , $user , $group , $dbuser , $dbpass ) = @_;
+ my( $main , $dbname , $user , $group , $dbuser , $dbpass, $description ) = @_;
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return -1 if( ! defined $user );
+ return -2 if( ! defined $group );
- my $pgsql = new Vhffs::Services::Postgres( $main , $dbname , $user , $group );
+ my $pgsql = Vhffs::Services::Postgres::create($main, $dbname, $dbuser, $dbpass, $description, $user, $group);
return undef if( ! defined $pgsql );
- $pgsql->set_user( $user );
- $pgsql->set_group( $group );
- return undef if ( $pgsql->set_dbusername( $dbuser ) < 0 );
- return undef if ( $pgsql->set_dbpassword( $dbpass ) < 0 );
-
- return undef if( $pgsql->create < 0 );
-
return undef if ( Vhffs::Acl::add_acl( $user , $pgsql , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $pgsql , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Panel/Repository.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Repository.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Repository.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -52,52 +52,52 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT r.name , o.description , u.username , g.groupname , o.object_id FROM vhffs_repository r, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=r.owner_uid AND g.gid=r.owner_gid AND o.object_id=r.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('name') );
}
-sub getall_repository
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $reps = [];
- if( defined $name )
- {
- $query = "SELECT r.name, r.owner_gid, o.state FROM vhffs_repository r, vhffs_object o WHERE o.object_id=r.object_id AND r.name LIKE '".$name."'";
- }
- else
- {
- $query = "SELECT r.name, r.owner_gid, o.state FROM vhffs_repository r, vhffs_object o WHERE o.object_id=r.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ if( defined $name ) {
+ $sql = 'SELECT r.name, g.groupname, o.state, r.object_id AS oid FROM vhffs_repository r INNER JOIN vhffs_object o ON o.object_id=r.object_id INNER JOIN vhffs_groups g ON g.gid = r.owner_gid WHERE r.name LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT r.name, g.groupname, o.state, r.object_id AS oid FROM vhffs_repository r INNER JOIN vhffs_object o ON o.object_id=r.object_id INNER JOIN vhffs_groups g ON g.gid = r.owner_gid';
+ }
+
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
- return undef if ( $request->execute() <= 0);
+ return undef unless($sth->execute(@params));
- return( $request->fetchall_hashref('name') );
+ while(my $r = $sth->fetchrow_hashref('NAME_lc')) {
+ $r->{state} = Vhffs::Functions::status_string_from_status_id($r->{state});
+ push(@$reps, $r);
+ }
+
+ return $reps;
}
sub create_repository
{
- my( $main , $name , $user , $group ) = @_;
+ my( $main , $name , $user , $group, $description ) = @_;
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return undef unless(defined $user && defined $group);
- my $repo = new Vhffs::Services::Repository( $main , $name , $user , $group );
+ my $repo = Vhffs::Services::Repository::create( $main , $name , $description, $user , $group );
return undef if( ! defined $repo);
- $repo->set_user( $user );
- $repo->set_group( $group );
- return undef if( $repo->create < 0 );
-
return undef if ( Vhffs::Acl::add_acl( $user , $repo , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $repo , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Panel/Svn.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Svn.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Svn.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -54,7 +54,7 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT s.reponame , o.description , u.username , g.groupname , o.object_id FROM vhffs_svn s, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=s.owner_uid AND g.gid=s.owner_gid AND o.object_id=s.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('reponame') );
@@ -65,11 +65,11 @@
{
my ( $group , $main ) = @_;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined($group) );
my $query = "SELECT s.reponame , s.object_id, o.state FROM vhffs_svn s, vhffs_object o WHERE o.object_id=s.object_id AND s.owner_gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
my @retour;
return undef if ( $request->execute() <= 0);
@@ -80,50 +80,46 @@
-sub getall_svn
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $svns = [];
- if( defined $name )
- {
- $query = "SELECT s.reponame, s.owner_gid, o.state FROM vhffs_svn s, vhffs_object o WHERE o.object_id=s.object_id AND s.reponame LIKE '%".$name."%'";
- }
- else
- {
- $query = "SELECT s.reponame, s.owner_gid, o.state FROM vhffs_svn s, vhffs_object o WHERE o.object_id=s.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ if( defined $name ) {
+ $sql = 'SELECT s.reponame AS svnroot, g.groupname, o.state, s.object_id AS oid FROM vhffs_svn s INNER JOIN vhffs_object o ON o.object_id=s.object_id INNER JOIN vhffs_groups g ON g.gid = s.owner_gid WHERE s.reponame LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT s.reponame AS svnroot, g.groupname, o.state, s.object_id AS oid FROM vhffs_svn s INNER JOIN vhffs_object o ON o.object_id=s.object_id INNER JOIN vhffs_groups g ON g.gid = s.owner_gid';
+ }
- return undef if ( $request->execute() <= 0);
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
- return( $request->fetchall_hashref('reponame') );
+ return undef unless($sth->execute(@params));
+
+ while(my $s = $sth->fetchrow_hashref('NAME_lc')) {
+ $s->{state} = Vhffs::Functions::status_string_from_status_id($s->{state});
+ push(@$svns, $s);
+ }
+
+ return $svns;
}
sub create_svn
{
- my $main = shift;
- my $repo = shift;
- my $user = shift;
- my $group = shift;
+ my ($main, $repo, $description, $user, $group) = @_;
-
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return -1 unless( defined $user );
+ return -2 unless( defined $group );
- my $svn = new Vhffs::Services::Svn( $main , $repo , $user , $group );
+ my $svn = Vhffs::Services::Svn::create( $main, $repo, $description, $user, $group );
- return -1 if( ! defined $svn );
+ return -1 unless( defined $svn );
- $svn->set_user( $user );
- $svn->set_group( $group );
-
- return -2 if( $svn->create < 0 );
-
return ( -3 ) if ( Vhffs::Acl::add_acl( $user , $svn , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return ( -3 ) if( Vhffs::Acl::add_acl( $group , $svn , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Panel/User.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/User.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/User.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -48,13 +48,13 @@
return if ( !defined $vhffs );
- my $query = "SELECT username FROM vhffs_users ORDER BY uid LIMIT 0,10";
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
+ my $query = "SELECT uid FROM vhffs_users ORDER BY uid LIMIT 0,10";
+ my $request = $vhffs->{'db'}->prepare( $query );
- while( my $hash = $request->fetchrow_hashref )
+ while( my ($uid) = $request->fetchrow_array )
{
- my $user = new Vhffs::Users( $vhffs , $hash->{username} , '401' );
- if( $user->fetch > 0 )
+ my $user = Vhffs::User::get_by_uid( $vhffs , $uid );
+ if( defined $user )
{
push @users , $user;
}
@@ -63,28 +63,30 @@
}
-sub getall_users
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $users = [];
- if( ! defined $name )
- {
- $query = "SELECT u.username, ui.firstname, ui.lastname , o.object_id FROM vhffs_users u, vhffs_user_info ui, vhffs_object o WHERE o.object_id=u.object_id AND u.uid=ui.uid";
+ if( defined $name ) {
+ $sql = 'SELECT u.username, u.firstname, u.lastname , o.object_id AS oid, o.state FROM vhffs_users u INNER JOIN vhffs_object o ON o.object_id = u.object_id WHERE u.username LIKE ? OR u.firstname LIKE ? OR u.lastname LIKE ?';
+ my $p = '%'.$name.'%';
+ push(@params, $p, $p, $p);
+ } else {
+ $sql = 'SELECT u.username, u.firstname, u.lastname , o.object_id AS oid, o.state FROM vhffs_users u INNER JOIN vhffs_object o ON o.object_id = u.object_id';
}
- else
- {
- $query = "SELECT u.username, ui.firstname, ui.lastname , o.object_id FROM vhffs_users u, vhffs_user_info ui, vhffs_object o WHERE o.object_id=u.object_id AND u.uid=ui.uid AND ( ( u.username LIKE '%".$name."%' ) OR (ui.firstname LIKE '%".$name."%' ) OR (ui.lastname LIKE '%".$name."%') )";
- }
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql);
+ return undef unless($sth->execute(@params));
- return undef if ( $request->execute <= 0 );
- return( $request->fetchall_hashref('username') );
-
+ while(my $u = $sth->fetchrow_hashref('NAME_lc')) {
+ $u->{state} = Vhffs::Functions::status_string_from_status_id($u->{state});
+ push(@$users, $u);
+ }
+ return $users;
}
sub set_lang
@@ -94,24 +96,9 @@
return -1 if ( ( ! defined $user ) || ( ! defined $lang ) );
- return -2 if( $user->fetch < 0 );
-
- my $uid = $user->get_uid;
-
- my $query = "SELECT * FROM vhffs_panel_user_prefs WHERE uid='".$uid."'";
- my $request = $user->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- if( $rows != 0 )
- {
- $query = "UPDATE vhffs_panel_user_prefs SET language='".$lang."' WHERE uid='".$uid."'";
- }
- else
- {
- $query = "INSERT INTO vhffs_panel_user_prefs VALUES( '".$uid."' , '".$lang."' , '' )";
- }
- $request = $user->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -4;
+ my $sql = 'UPDATE vhffs_users SET language = ? WHERE uid = ?';
+ my $sth = $user->{db}->prepare($sql);
+ $sth->execute($lang, $user->get_uid) or return -1;
}
@@ -122,49 +109,17 @@
return -1 if ( ( ! defined $user ) || ( ! defined $theme ) );
- return -2 if( $user->fetch < 0 );
-
- my $uid = $user->get_uid;
-
- my $query = "SELECT * FROM vhffs_panel_user_prefs WHERE uid='".$uid."'";
- my $request = $user->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- if( $rows != 0 )
- {
- $query = "UPDATE vhffs_panel_user_prefs SET theme='".$theme."' WHERE uid='".$uid."'";
- }
- else
- {
- $query = "INSERT INTO vhffs_panel_user_prefs VALUES( '".$uid."' , '', '".$theme."' )";
- }
- $request = $user->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -4;
+ my $sql = 'UPDATE vhffs_users SET theme = ? WHERE uid = ?';
+ my $dbh = $user->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($theme, $user->get_uid) or return -1;
}
sub get_lang
{
my $user = shift;
return -1 if( ! defined $user );
-
- return -2 if( $user->fetch < 0 );
-
- my $uid = $user->get_uid;
-
- my $query = "SELECT language FROM vhffs_panel_user_prefs WHERE uid='".$uid."'";
- my $request = $user->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- if( $rows == 0 )
- {
- return Vhffs::Constants::DEFAULT_LANG;
- }
- else
- {
- my $value = $request->fetchrow_arrayref;
- return $value->[0];
- }
-
+ return $user->get_lang;
}
@@ -172,25 +127,7 @@
{
my $user = shift;
return -1 if( ! defined $user );
-
- return -2 if( $user->fetch < 0 );
-
- my $uid = $user->get_uid;
-
- my $query = "SELECT theme FROM vhffs_panel_user_prefs WHERE uid='".$uid."'";
- my $request = $user->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- if( $rows == 0 )
- {
- return Vhffs::Constants::DEFAULT_THEME;
- }
- else
- {
- my $value = $request->fetchrow_arrayref;
- return $value->[0];
- }
-
+ return $user->get_theme;
}
1;
Modified: trunk/vhffs-api/src/Vhffs/Panel/Web.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Web.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Panel/Web.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -52,7 +52,7 @@
my( $main , $query , $request);
$main = shift;
$query = "SELECT w.servername , o.description , u.username , g.groupname , o.object_id FROM vhffs_httpd w, vhffs_object o , vhffs_users u , vhffs_groups g WHERE u.uid=w.owner_uid AND g.gid=w.owner_gid AND w.object_id=o.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query );
+ $request = $main->{'db'}->prepare( $query );
return undef if ( $request->execute <= 0 );
return( $request->fetchall_hashref('servername') );
@@ -63,10 +63,10 @@
{
my ( $group , $main ) =@_ ;
- return undef if ( $group->fetch < 0 );
+ return undef unless( defined $group );
my $query = "SELECT w.servername, w.object_id, o.state FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id AND w.owner_gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
return undef if ( $request->execute() <= 0);
@@ -74,43 +74,44 @@
}
-sub getall_webs
-{
- my $main = shift;
- my $name = shift;
+sub search {
+ my ($main, $name) = @_;
- my $query;
+ my $sql;
+ my @params;
+ my $webs = [];
- if( defined $name )
- {
- $query = "SELECT w.servername, w.object_id, o.state FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id AND w.servername LIKE '".$name."'";
- }
- else
- {
- $query = "SELECT w.servername, w.object_id, o.state FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id";
- }
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ if( defined $name ) {
+ $sql = 'SELECT w.servername, w.object_id AS oid, o.state, g.groupname FROM vhffs_httpd w INNER JOIN vhffs_object o ON o.object_id = w.object_id INNER JOIN vhffs_groups g ON g.gid = w.owner_gid WHERE w.servername LIKE ?';
+ push(@params, '%'.$name.'%');
+ } else {
+ $sql = 'SELECT w.servername, w.object_id AS oid, o.state, g.groupname FROM vhffs_httpd w INNER JOIN vhffs_object o ON o.object_id = w.object_id INNER JOIN vhffs_groups g ON g.gid = w.owner_gid';
+ }
- return undef if ( $request->execute() <= 0);
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql) or return undef;
- return( $request->fetchall_hashref('servername') );
+ return undef unless($sth->execute(@params));
+
+ while(my $w = $sth->fetchrow_hashref('NAME_lc')) {
+ $w->{state} = Vhffs::Functions::status_string_from_status_id($w->{state});
+ push(@$webs, $w);
+ }
+
+ return $webs;
}
sub create_web
{
- my( $main , $servername , $user , $group ) = @_;
+ my( $main, $servername, $description, $user, $group ) = @_;
- return -1 if( $user->fetch < 0 );
- return -2 if( $group->fetch < 0 );
+ return undef if( !defined $user );
+ return undef if( !defined $group );
- my $web = new Vhffs::Services::Httpd( $main , $servername , $user , $group );
+ my $web = Vhffs::Services::Httpd::create($main, $servername, $description, $user, $group);
return undef if( ! defined $web );
- $web->set_user( $user );
- $web->set_group( $group );
- return undef if ( $web->create < 0 );
-
return undef if ( Vhffs::Acl::add_acl( $user , $web , Vhffs::Constants::ACL_DELETE , $main ) < 0 );
return undef if( Vhffs::Acl::add_acl( $group , $web , Vhffs::Constants::ACL_VIEW , $main ) < 0 );
Modified: trunk/vhffs-api/src/Vhffs/Robots/Cvs.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Cvs.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Cvs.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,67 +36,36 @@
use Vhffs::Constants;
use Vhffs::Functions;
-
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT c.cvsroot, c.object_id FROM vhffs_cvs c, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND c.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('cvsroot') );
-}
-
-
-
-sub get_all_cvs_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT c.cvsroot, c.object_id FROM vhffs_cvs c, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND c.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('cvsroot') );
-}
-
sub create_cvs
{
my $cvs = shift;
- if( $cvs->fetch > 0 )
+ return unless(defined($cvs));
+
+ if( create_repository( $cvs ) > 0 )
{
- if( create_repository( $cvs ) > 0 )
- {
- $cvs->set_status( Vhffs::Constants::ACTIVATED );
- $cvs->commit;
- $cvs->add_history("Cvsroot now created !" );
- }
- else
- {
- $cvs->add_history("Cvsroot NOT created, bots encounters errors !" );
- }
+ $cvs->set_status( Vhffs::Constants::ACTIVATED );
+ $cvs->commit;
+ $cvs->add_history("Cvsroot now created !" );
}
+ else
+ {
+ $cvs->add_history("Cvsroot NOT created, bots encounters errors !" );
+ }
}
sub delete_cvs
{
my $cvs = shift;
+ return unless(defined ($cvs));
+ my $cvsroot = $cvs->get_cvsroot;
+ my $vhffs = $cvs->{'main'};
- if( $cvs->fetch > 0 )
- {
- my $cvsroot = $cvs->get_cvsroot;
- my $vhffs = $cvs->{'main'};
-
- my $dir = $cvs->get_dir;
- my $cmd = "rm -rf $dir";
- system( $cmd );
- $cvs->delete;
- }
+ my $dir = $cvs->get_dir;
+ my $cmd = "rm -rf $dir";
+ system( $cmd );
+ $cvs->delete;
}
@@ -104,7 +73,7 @@
sub create_repository
{
my $cvs = shift;
- return if( $cvs->fetch < 0 );
+ return unless(defined $cvs);
my $cvsroot = $cvs->get_cvsroot;
my $vhffs = $cvs->{'main'};
@@ -136,17 +105,5 @@
}
}
-sub getall_cvs_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT c.cvsroot, c.object_id FROM vhffs_cvs c, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND c.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('cvsroot') );
-}
-
1;
Deleted: trunk/vhffs-api/src/Vhffs/Robots/DNS.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/DNS.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/DNS.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,70 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Robots::DNS;
-
-use Vhffs::Services::DNS;
-use Vhffs::Constants;
-use Vhffs::Functions;
-
-use strict;
-
-
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT n.domain, n.object_id FROM vhffs_dns_global n, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND n.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('domain') );
-}
-
-
-sub get_all_domains_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT n.domain, n.object_id FROM vhffs_dns_global n, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND n.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('domain') );
-}
-
-
-
-1;
-
Modified: trunk/vhffs-api/src/Vhffs/Robots/Group.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Group.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Group.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,41 +37,17 @@
use Vhffs::Functions;
use Vhffs::Constants;
-sub get_all_groups_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT g.groupname,g.gid FROM vhffs_groups g, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND g.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('groupname') );
-}
-
-sub get_all_groups_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT g.groupname,g.gid FROM vhffs_groups g, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND g.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('groupname') );
-}
-
-
-
sub create_groupdir
{
my $main = shift;
my $group = shift;
my $hash;
- if( ( defined $group ) && ( $group->fetch > 0 ) )
+ # If we have a group object, it has been fetched
+ # and is complete, no need to fetch it again
+ if( defined $group )
{
- my $user = new Vhffs::User( $main , $group->get_owner_username , 401 );
+ my $user = Vhffs::User::get_by_uid( $main , $group->get_owneruid );
my $hash = Vhffs::Functions::hash_groupname( $group->get_groupname , $main );
$group->add_history("Ok, Robots will create the directory");
Vhffs::Functions::create_dir( $hash );
@@ -97,9 +73,10 @@
my $hash;
- if( ( defined $group ) && ( $group->fetch > 0 ) )
+ # If group is defined, it is complete
+ if( defined $group )
{
- my $user = new Vhffs::User( $main , $group->get_owner_username , 401 );
+ my $user = Vhffs::User::get_by_uid( $main , $group->get_owneruid );
my $hash = Vhffs::Functions::hash_groupname( $group->get_groupname , $main );
if( -d $hash )
{
@@ -122,7 +99,7 @@
my $main = shift;
my $query = "SELECT * FROM vhffs_user_group WHERE state='".Vhffs::Constants::TO_DELETE."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
+ $request = $main->{'db'}->prepare( $query ) or return -2;
return undef if ( $request->execute() <= 0 );
return( $request->fetchall_hashref('gid') );
@@ -134,33 +111,20 @@
my $main = shift;
my $query = "SELECT * FROM vhffs_user_group WHERE state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
+ $request = $main->{'db'}->prepare( $query ) or return -2;
return undef if ( $request->execute() <= 0 );
return( $request->fetchall_hashref('gid') );
}
-sub getall_user_group_to_delete
-{
- my $main = shift;
- my $query = "SELECT * FROM vhffs_user_group WHERE state='".Vhffs::Constants::TO_DELETE."'";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('gid') );
-}
-
-
-
sub del_user
{
my $user = shift;
my $group = shift;
my $main = shift;
- return -1 if( $user->fetch < 0);
- return -2 if( $group->fetch < 0);
+ return -1 if( ! defined $user );
+ return -2 if( ! defined $group );
my $path = $user->get_home . "/" . $group->get_groupname;
unlink( $path );
@@ -168,7 +132,7 @@
$user->add_history("The user ".$user->get_username." leave the group");
my $query = "DELETE FROM vhffs_user_group WHERE uid='".$user->get_uid."' AND gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_WRITE'}->prepare( $query ) or return -2;
+ my $request = $main->{'db'}->prepare( $query ) or return -2;
$request->execute;
}
@@ -180,8 +144,8 @@
my $group = shift;
my $main = shift;
- return -1 if( $user->fetch < 0);
- return -1 if( $group->fetch < 0);
+ return -1 if( ! defined $user );
+ return -1 if( ! defined $group );
my $path = $user->get_home . "/" . $group->get_groupname;
@@ -190,7 +154,7 @@
$user->add_history("The user ".$user->get_username." join the group");
my $query = "UPDATE vhffs_user_group SET state='".Vhffs::Constants::ACTIVATED."' WHERE uid='".$user->get_uid."' AND gid='".$group->get_gid."'";
- my $request = $main->{'db'}->{'DB_WRITE'}->prepare( $query ) or return -2;
+ my $request = $main->{'db'}->prepare( $query ) or return -2;
$request->execute;
return 1;
Deleted: trunk/vhffs-api/src/Vhffs/Robots/LargeFile.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/LargeFile.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/LargeFile.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,77 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Robots::LargeFile;
-
-use Vhffs::Services::LargeFile;
-use Vhffs::Constants;
-use Vhffs::Functions;
-
-
-sub find_login
-{
- my $file;
- my $vhffs;
- my $found;
- my $i;
- my $login;
- my $query;
- my $request;
- my $rows;
-
- $vhffs = shift;
- $file = shift;
-
- $found = 0;
- $i = 1;
-
- while( $found == 0 )
- {
- $login = $file->get_group->get_groupname . "-" . $i;
-
- $query = "SELECT * FROM vhffs_largefile WHERE username='$login'";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
-
- $found = 1 if( $rows == 0 );
-
- $i++;
- }
-
- return $login;
-
-}
-
-
-
-1;
-
Deleted: trunk/vhffs-api/src/Vhffs/Robots/Mail.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Mail.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Mail.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,111 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Robots::Mail;
-
-use Vhffs::Services::Mail;
-use Vhffs::Constants;
-use Vhffs::Functions;
-
-
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.domain, m.object_id FROM vhffs_mxdomain m, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('domain') );
-}
-
-
-sub get_all_mail_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.domain, m.object_id FROM vhffs_mxdomain m, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('domain') );
-
-}
-
-
-sub get_all_mail_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.domain, m.object_id FROM vhffs_mxdomain m, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('domain') );
-
-}
-
-
-sub delete_mail
-{
- my ( $main , $domain ) = @_;
-
- my $mail = new Vhffs::Services::Mail( $main , $domain );
- my $retour;
- if( ($retour = $mail->fetch) > 0 )
- {
- $mail->add_history( "Will delete this mail domain" );
- $mail->delete;
- }
-}
-
-
-sub create_mail
-{
- my ( $main , $domain ) = @_;
-
- my $mail = new Vhffs::Services::Mail( $main , $domain );
- my $retour;
- if( ($retour = $mail->fetch) > 0 )
- {
- $mail->add_history( "Robots will activated this mail domain" );
- $mail->set_status( Vhffs::Constants::ACTIVATED );
- $mail->commit;
- }
-}
-
-
-1;
-
Modified: trunk/vhffs-api/src/Vhffs/Robots/Mailing.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Mailing.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Mailing.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -40,60 +40,11 @@
my $query = "SELECT id_mailing , subject , message FROM vhffs_mailings WHERE state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
+ $request = $main->{'db'}->prepare( $query ) or return -2;
return undef if ( $request->execute() <= 0 );
return( $request->fetchall_hashref('id_mailing') );
}
-#sub get_all_home_to_create
-#{
-# my( $main ) = @_;
-#
-# my $query = "SELECT u.username,u.uid,u.homedir FROM vhffs_users u, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND u.object_id = o.object_id";
-#
-# $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
-# return undef if ( $request->execute() <= 0 );
-#
-# return( $request->fetchall_hashref('username') );
-#
-#}
-#
-#sub create_home
-#{
-# my( $main , $username , $user , $homedir , @subdirs , $path , $value );
-#
-# ( $main , $username ) = @_;
-#
-# $user = new Vhffs::User( $main , $username , '401');
-#
-# if( $user->fetch > 0 )
-# {
-# $user->add_history( "Ok, robots take now the creation of the user" );
-# $homedir = $user->get_home;
-#
-# @subdirs = split( /\// , $homedir );
-# @subdirs = reverse @subdirs;
-#
-# $path = "";
-#
-# while( defined ( $value = pop ( @subdirs ) ) )
-# {
-# $path .= "/".$value if( $value ne '' );
-# Vhffs::Functions::create_dir( $path );
-# #return -1 if( mkdir( $path ) == false );
-# }
-# chown $user->get_uid , $user->get_gid , $path ;
-#
-# $user->add_history( "Creation complete for user. Homedir is now created." );
-# $user->set_status( Vhffs::Constants::ACTIVATED );
-# $user->generate_password( 1 );
-# $user->commit;
-# }
-#
-# return 1;
-#}
-
-
1;
Deleted: trunk/vhffs-api/src/Vhffs/Robots/Mailinglist.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Mailinglist.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Mailinglist.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,114 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Robots::Mailinglist;
-
-use Vhffs::Services::Mail;
-use Vhffs::Constants;
-use Vhffs::Functions;
-
-
-
-sub getall_lists
-{
- my $main = shift;
-
- my $query = "SELECT l.ml_id, l.local_part , l.domain, l.object_id FROM vhffs_ml l, vhffs_object o WHERE l.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('ml_id') );
-
-}
-
-
-sub get_all_list_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT l.ml_id, l.domain, l.object_id FROM vhffs_ml l, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND l.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('ml_id') );
-
-}
-
-
-sub get_all_list_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT l.ml_id, l.domain, l.object_id FROM vhffs_ml l, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND l.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('ml_id') );
-
-}
-
-
-sub delete_list
-{
- my ( $main , $lpart , $domain ) = @_;
-
- my $ml = new Vhffs::Services::Mailing( $main , $lpart , $domain );
- my $retour;
- if( ($retour = $ml->fetch) > 0 )
- {
- $ml->add_history( "Will delete this list" );
- $ml->delete;
- }
-}
-
-
-sub create_list
-{
- #my ( $main , $lpart , $domain ) = @_;
- my $ml = shift;
-
- #my $ml = new Vhffs::Services::Mailing( $main , $lpart , $domain );
- my $retour;
- if( ($retour = $ml->fetch) > 0 )
- {
- $ml->add_history( "Robots will activated this list" );
- $ml->set_status( Vhffs::Constants::ACTIVATED );
- $ml->commit;
- }
-}
-
-
-1;
-
Modified: trunk/vhffs-api/src/Vhffs/Robots/Mysql.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Mysql.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Mysql.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -45,47 +45,6 @@
bindtextdomain("panel", "/vhffs/vhffs-panel/intl");
textdomain("panel");
-
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.dbname, m.object_id FROM vhffs_mysql m, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-
-sub get_all_db_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.dbname, m.object_id FROM vhffs_mysql m, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-
-sub get_all_db_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.dbname, m.object_id FROM vhffs_mysql m, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-
-
sub delete_db
{
my $main = shift;
@@ -93,7 +52,7 @@
my $query;
- if( $db->fetch > 0 )
+ if( $defined $db )
{
$db->add_history( "Ok, robots takes the destruction of this database" );
my $dbi = mysql_admin_db_connect( $main );
@@ -126,27 +85,6 @@
-sub fix_password
-{
- my ( $main , $dbname ) = @_;
-
- my $db = new Vhffs::Services::Mysql( $main , $dbname );
- my $query;
-
- if( $db->fetch > 0 )
- {
- my $dbi = mysql_admin_db_connect( $main );
- if( $dbi != 1 )
- {
- $query = "UPDATE user SET PASSWORD=PASSWORD('".$db->get_dbpassword."') WHERE user='".$db->get_dbusername."'";
- $dbi->do( $query ) or $db->add_history("Error while creating the database");
- $dbi->do( "FLUSH PRIVILEGES" );
- $dbi->disconnect;
- }
- }
-}
-
-
sub create_db
{
my $main = shift;
@@ -154,7 +92,7 @@
my $query;
- if( ( defined $db ) && ( $db->fetch > 0 ) )
+ if( defined $db )
{
$db->add_history( "Ok, robots takes the creation of this database" );
my $dbi = mysql_admin_db_connect( $main );
@@ -201,7 +139,7 @@
my $query;
- if( $db->fetch > 0 )
+ if( defined $db )
{
$db->add_history( "Ok, will change password for this database" );
my $dbi = mysql_admin_db_connect( $main );
@@ -220,19 +158,4 @@
}
}
-sub get_all_db_to_update
-{
- my( $main ) = @_;
-
- my $query = "SELECT m.dbname, m.object_id FROM vhffs_mysql m, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_MODIFICATION."' AND m.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-
-
-
1;
Deleted: trunk/vhffs-api/src/Vhffs/Robots/Panel.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Panel.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Panel.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,39 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-package Vhffs::Robots::Panel;
-
-
-
-
-1;
-
Modified: trunk/vhffs-api/src/Vhffs/Robots/Postgres.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Postgres.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Postgres.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,58 +38,6 @@
use strict;
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT p.dbname, p.object_id FROM vhffs_pgsql p, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND p.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-
-sub get_all_db_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT p.dbname, p.object_id FROM vhffs_pgsql p, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND p.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-}
-
-sub get_all_db_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT p.dbname, p.object_id FROM vhffs_pgsql p, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND p.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-
-}
-
-
-sub get_all_db_to_update
-{
- my( $main ) = @_;
-
-my $query = "SELECT p.dbname, p.object_id FROM vhffs_pgsql p, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_MODIFICATION."' AND p.object_id = o.object_id";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('dbname') );
-
-}
-
sub update_db
{
my $main = shift;
@@ -97,7 +45,7 @@
my $db = pgsql_admin_db_connect( $main );
- if( $pg->fetch > 0 )
+ if( defined $pg )
{
$db->do("ALTER USER " . $pg->get_dbusername ." WITH PASSWORD '".$pg->get_dbpassword."'");
$pg->set_status( Vhffs::Constants::ACTIVATED );
@@ -115,7 +63,7 @@
my $db = pgsql_admin_db_connect( $main );
- if( $pg->fetch > 0 )
+ if( defined $pg )
{
$db->do("CREATE DATABASE ".$pg->get_dbname );
$db->do("CREATE USER " . $pg->get_dbusername ." WITH PASSWORD '".$pg->get_dbpassword."'");
@@ -132,7 +80,7 @@
my $db = pgsql_admin_db_connect( $main );
- if( ( $pg->fetch > 0 ) && ( $pg->get_status == Vhffs::Constants::TO_DELETE ) )
+ if( ( defined $pg ) && ( $pg->get_status == Vhffs::Constants::TO_DELETE ) )
{
$pg->add_history("Ok, robots will erased all data");
$db->do("DROP DATABASE ".$pg->get_dbname );
Modified: trunk/vhffs-api/src/Vhffs/Robots/Repository.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Repository.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Repository.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,37 +37,11 @@
use Vhffs::Functions;
-sub getall_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT r.name, c.object_id FROM vhffs_repository r, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND r.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('name') );
-}
-
-
-
-sub get_all_repository_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT r.name, c.object_id FROM vhffs_repository r, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND r.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('name') );
-}
-
sub create_repository
{
my $repo = shift;
- if( $repo->fetch > 0 )
+ if( defined $repo )
{
if( create_repositoryondisk( $repo ) > 0 )
{
@@ -87,7 +61,7 @@
{
my $repo = shift;
- if( $repo->fetch > 0 )
+ if( defined $repo )
{
my $vhffs = $repo->{'main'};
@@ -97,8 +71,7 @@
system( $cmd );
# remove the link in group directory
- my $groupname = Vhffs::Group::get_name_by_gid( $vhffs , $repo->get_ownergid );
- my $group = new Vhffs::Group( $vhffs , $groupname , 401 );
+ my $group = Vhffs::Group::get_by_gid( $vhffs , $repo->get_ownergid );
Vhffs::Robots::unlink_to_group( $group, $repo->get_name.Vhffs::Constants::REPOSITORY_SUFFIX, $vhffs );
$repo->delete;
@@ -110,7 +83,7 @@
sub create_repositoryondisk
{
my $repo = shift;
- return if( $repo->fetch < 0 );
+ return if( ! defined $repo );
my $name = $repo->get_name;
my $vhffs = $repo->{'main'};
@@ -125,8 +98,7 @@
chown( $repo->get_owneruid , $repo->get_ownergid , $repodir );
chmod( 02775 , $repodir );
- my $groupname = Vhffs::Group::get_name_by_gid( $vhffs , $repo->get_ownergid );
- my $group = new Vhffs::Group( $vhffs , $groupname , 401 );
+ my $group = Vhffs::Group::get_by_gid( $vhffs , $repo->get_ownergid );
if(Vhffs::Robots::link_to_group( $repodir, $group, $repo->get_name.Vhffs::Constants::REPOSITORY_SUFFIX, $vhffs ) < 0)
{
@@ -141,17 +113,5 @@
return 1;
}
-sub getall_repository_to_delete
-{
- my( $main ) = @_;
-
- my $query = "SELECT r.name, c.object_id FROM vhffs_repository r, vhffs_object o WHERE o.state='".Vhffs::Constants::TO_DELETE."' AND r.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('name') );
-}
-
1;
Modified: trunk/vhffs-api/src/Vhffs/Robots/Svn.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Svn.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Svn.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,17 +36,6 @@
use Vhffs::Constants;
use Vhffs::Functions;
-sub getall_svn_reponame
-{
- my( $main ) = @_;
-
- my $query = "SELECT s.reponame, s.object_id FROM vhffs_svn s, vhffs_object o WHERE s.object_id = o.object_id";
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('reponame') );
-}
-
sub change_conf
{
my $svn = shift;
@@ -101,56 +90,42 @@
my $apache_file;
my $user_file;
- if( ( defined $svn ) && ( $svn->fetch > 0 ) )
+ if( defined $svn )
{
$dir = $svn->get_dir;
if( $svn->get_status == Vhffs::Constants::WAITING_FOR_CREATION )
{
- my $ok = 1;
+ my $ok = 1;
- if( ! -e $dir )
- {
- Vhffs::Functions::create_dir( $dir ) if( ! -d $dir );
- $svn->add_history("Ok, robots find the empty directory and will create subversion repository");
- system("svnadmin create --fs-type fsfs $dir");
- Vhffs::Functions::chmod_recur( $dir , 0664 , 02775 );
- Vhffs::Functions::change_owner_recur( $dir , $svn->get_owneruid , $svn->get_ownergid );
- change_conf( $svn );
- $svn->add_history("The Robots created the subversion repository");
- }
- else
- {
- $ok = 0;
- #TODO support syslog
- $svn->set_status( Vhffs::Constants::CREATING_ERROR );
- $svn->commit();
- $svn->add_history("Error, directory of this subversion already exists ! Administrators must fix the problem");
- }
-
-
-
- if( $ok == 1 )
- {
- $svn->set_status( Vhffs::Constants::ACTIVATED );
+ if( ! -e $dir ) {
+ Vhffs::Functions::create_dir( $dir ) if( ! -d $dir );
+ $svn->add_history("Ok, robots find the empty directory and will create subversion repository");
+ system("svnadmin create --fs-type fsfs $dir");
+ Vhffs::Functions::chmod_recur( $dir , 0664 , 02775 );
+ Vhffs::Functions::change_owner_recur( $dir , $svn->get_owneruid , $svn->get_ownergid );
+ change_conf( $svn );
+ $svn->add_history("The Robots created the subversion repository");
+ } else {
+ $ok = 0;
+ #TODO support syslog
+ $svn->set_status( Vhffs::Constants::CREATING_ERROR );
+ $svn->commit();
+ $svn->add_history("Error, directory of this subversion already exists ! Administrators must fix the problem");
+ }
+ if( $ok == 1 ) {
+ $svn->set_status( Vhffs::Constants::ACTIVATED );
- if( $svn->commit < 0 )
- {
- $svn->add_history( "Cannot commit changes on the object ! ");
- }
- else
- {
- $svn->add_history( "Subversion repository is now active");
- }
- }
- else
- {
- $svn->add_history("Object is not created, problem while creating it");
- }
- }
+ if( $svn->commit < 0 ) {
+ $svn->add_history( "Cannot commit changes on the object ! ");
+ } else {
+ $svn->add_history( "Subversion repository is now active");
+ }
+ } else {
+ $svn->add_history("Object is not created, problem while creating it");
+ }
+ }
}
-
-
}
@@ -164,14 +139,11 @@
my $dir;
my $dir2;
- if( $svn->fetch > 0 )
- {
+ if( defined $svn ) {
$dir = $svn->get_dir;
system("rm -rf $dir 2>/dev/null");
$svn->delete;
- }
- else
- {
+ } else {
return -1;
}
Modified: trunk/vhffs-api/src/Vhffs/Robots/User.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/User.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/User.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -35,35 +35,10 @@
use Vhffs::User;
use Vhffs::Constants;
-sub getall_active_users
-{
- my $main = shift;
-
- my $query = "SELECT u.username,u.uid FROM vhffs_users u, vhffs_object o WHERE o.state='".Vhffs::Constants::ACTIVATED."' AND u.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('username') );
-}
-
-sub get_all_home_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT u.username,u.uid,u.homedir FROM vhffs_users u, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND u.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('username') );
-
-}
-
sub create
{
my $user = shift;
- return if( $user->fetch < 0);
+ return if( ! defined $user );
create_home( $user->{'main'} , $user->get_username );
}
@@ -72,12 +47,10 @@
{
my $vhffs = shift;
my $user = shift;
- return if( $user->fetch < 0 );
+ return if( ! defined $user );
delete_home( $vhffs , $user );
}
-
-
sub delete_home
{
my( $main , $user , $homedir , $cmd );
@@ -85,7 +58,7 @@
$main = shift;
$user = shift;
- if( $user->fetch > 0 )
+ if( defined $user )
{
$user->add_history( "Ok, robots takes now the destruction of this user" );
$homedir = $user->get_home;
@@ -107,7 +80,7 @@
$main = shift;
$user = shift;
- if( $user->fetch > 0 )
+ if( defined $user )
{
$user->add_history( "Ok, robots take now the creation of the user" );
$homedir = $user->get_home;
Modified: trunk/vhffs-api/src/Vhffs/Robots/Web.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots/Web.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots/Web.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,33 +37,6 @@
use Vhffs::Functions;
use Vhffs::Robots;
-sub get_all_web_refused
-{
- my( $main ) = @_;
-
- my $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE o.state='".Vhffs::Constants::VALIDATION_REFUSED."' AND w.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('servername') );
-
-}
-
-
-
-sub get_all_web_to_create
-{
- my( $main ) = @_;
-
- my $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE o.state='".Vhffs::Constants::WAITING_FOR_CREATION."' AND w.object_id = o.object_id";
-
- $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
- return undef if ( $request->execute() <= 0 );
-
- return( $request->fetchall_hashref('servername') );
-}
-
sub create_web
{
use Vhffs::Group;
@@ -71,7 +44,7 @@
my $main = shift;
my $web = shift;
- if( ( defined $web ) && ( $web->fetch > 0 ) )
+ if( defined $web )
{
$web->add_history( "Ok, the robot take the creation of this object. Web directory will be created");
my $webdir = $main->get_config->get_datadir . "/" . Vhffs::Constants::WEBDIR . "/" . Vhffs::Functions::hash_webdir( $web->get_servername );
@@ -89,8 +62,7 @@
chown( $web->get_owneruid , $web->get_ownergid , $webdir . "/tmp" );
chmod( 02775 , $webdir . "/tmp" );
- my $groupname = Vhffs::Group::get_name_by_gid( $main , $web->get_ownergid );
- my $group = new Vhffs::Group( $main , $groupname , 401 );
+ my $group = Vhffs::Group::get_by_gid( $main , $web->get_ownergid );
if(Vhffs::Robots::link_to_group( $webdir,$group,$web->get_servername.Vhffs::Constants::WEB_SUFFIX,$main) < 0)
{
$web->add_history( "Can't link the webdirectory to the specified group");
@@ -115,7 +87,7 @@
my $dir;
- if( $web->fetch > 0 )
+ if(defined $web)
{
$web->add_history( "Ok, the robot will delete this object. Web directory will be removed");
my $hash = Vhffs::Functions::hash_webdir( $web->get_servername );
@@ -127,21 +99,15 @@
my $group = $web->get_group;
if(Vhffs::Robots::unlink_to_group( $group,$web->get_servername.Vhffs::Constants::WEB_SUFFIX,$main) < 0)
{
- $web->add_history( "Can't unlink the webdirectory to the specified group");
+ $web->add_history( "Can't unlink the webdirectory from the specified group");
}
else
{
- $web->add_history( "Webdir is now unlinked to the group directory");
+ $web->add_history( "Webdir is now unlinked from the group directory");
}
+ system("rm -rf '$webdir' 2> /dev/null");
- $dir = $webdir . "/htdocs";
- system("rm -rf $dir 2>/dev/null");
- $dir = $webdir . "/php-include";
- system("rm -rf $dir 2>/dev/null");
- $dir = $webdir . "/tmp";
- system("rm -rf $dir 2>/dev/null");
-
$web->add_history( "Webdir is now erased.");
$web->delete;
}
Modified: trunk/vhffs-api/src/Vhffs/Robots.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Robots.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Robots.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -120,7 +120,7 @@
my $linkname = shift;
my $main = shift;
- return -1 if( $group->fetch < 0 );
+ return -1 unless( defined $group );
my $path = Vhffs::Functions::hash_groupname( $group->get_groupname , $main )."/".$linkname;
@@ -136,7 +136,7 @@
my $linkname = shift;
my $main = shift;
- return -1 if( $group->fetch < 0 );
+ return -1 unless( defined $group );
my $path = Vhffs::Functions::hash_groupname( $group->get_groupname , $main )."/".$linkname;
Modified: trunk/vhffs-api/src/Vhffs/Services/Cvs.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Cvs.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Cvs.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,13 +29,20 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+=pod
+=head1 NAME
-# This file is a part of VHFFS4 Hosting Platform
-# Please respect the licence of this file and the whole software
+Vhffs::Services::Cvs - Handle CVS service in VHFFS
-# Author: soda < dieu at gunnm dot org>
+=head1 SYNOPSIS
+TODO
+
+=head1 METHODS
+
+=cut
+
package Vhffs::Services::Cvs;
use base qw(Vhffs::Object);
@@ -43,134 +50,84 @@
use strict;
use DBI;
+=pod
+=head2 check_cvsroot
-sub new
-{
- my $main;
- my $cvsroot;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
-
- #( $class , $main , $cvsroot , $user , $group ) = @_;
-
- $class = shift;
- $main = shift;
- $cvsroot = shift;
- $user = shift;
- $group = shift;
-
- $this = {};
-
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- #We return an undefined value if the user or the CVSROOT are not correct
- return undef if( ! defined ( $cvsroot ) );
- return undef if( ! ( $cvsroot =~ /[a-z0-9]+/) );
-
- $this->{'cvsroot'} = $cvsroot;
- $this->{'user'} = $user if( defined $user );
- $this->{'group'} = $group if( defined $group );
-
- bless( $this , $class );
+ die("Invalid CVS root\n") unless(Vhffs::Services::Cvs::check_cvsroot($cvsroot));
- return $this;
+Checks whether a cvsroot is valid or not.
+
+=cut
+
+sub check_cvsroot($) {
+ my $cvsroot = shift;
+ return (defined($cvsroot) && ($cvsroot =~ /^[a-z0-9]+$/));
}
sub delete
{
my $self = shift;
- $self->fetch;
my $query = "DELETE FROM vhffs_cvs WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -1 if( $self->SUPER::delete < 0 );
return 1;
}
-sub create
-{
- my $self = shift;
+=pod
- return -2 if ( $self->{'user'}->fetch < 0 );
- return -3 if ( $self->{'group'}->fetch < 0 );
-
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
- $self->{'owner_gid'} = $self->{'group'}->get_gid;
+=head2 create
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_cvs WHERE cvsroot='" . $self->{'cvsroot'} . "'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+ my $cvs = Vhffs::Services::Cvs::create($main, $cvsroot, $description, $user, $group);
+ die("Unable to create cvs\n") unless($cvs);
- my $oid = $self->SUPER::create();
- if ( $oid lt 0 )
- {
- return( -1 );
- }
- else
- {
- $self->{'object_id'} = $oid;
- }
+Creates a new CVS service in database and returns the corresponding fully functional object.
+=cut
- #Get the max cvs_id and compute the new cvs_id
- my $cvs_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(cvs_id) FROM vhffs_cvs");
- $cvs_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $cvs_id++;
+sub create
+{
+ my ($main, $cvsroot, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(check_cvsroot($cvsroot));
+ my $cvs;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
+ eval {
- #Finally, create the object
- my $text = "INSERT INTO vhffs_cvs VALUES( '".$cvs_id."' , '".$self->{'cvsroot'} . "','".$self->{'user'}->get_uid."','".$self->{'group'}->get_gid."' , 'TRUE' , '".$self->{'object_id'}."' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $text );
- $request->execute or return -2;
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_CVS);
- return $cvs_id;
-}
+ die('Unable to create parent object') unless(defined($parent));
+ my $sql = 'INSERT INTO vhffs_cvs(cvsroot, owner_uid, owner_gid, public, object_id) VALUES (?, ?, ?, TRUE, ?)';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($cvsroot, $user->get_uid, $group->get_gid, $parent->get_oid);
-sub fetch
-{
- my $self = shift;
-
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_cvs where cvsroot='".$self->{'cvsroot'}."'") or return -1;
-
- my $rows = $request->execute() or return -3;
-
- return -1 if( $rows <= 0 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
+ $dbh->commit;
+ $cvs = get_by_cvsroot($main, $cvsroot);
+ };
+
+ if($@) {
+ warn "Error creating cvs service: $@\n";
+ $dbh->rollback;
}
+ return $cvs;
-
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef ,$self->{'owner_uid'} , $self->{'owner_gid'} );
- return -1 if( $self->{'group'}->fetch < 0 );
-
-
- $self->SUPER::fetch;
-
- return 1;
}
-
-
sub commit
{
my $self = shift;
my $query = "UPDATE vhffs_cvs SET cvsroot='".$self->{'cvsroot'}."', public='".$self->{'public'}."' WHERE cvs_id='".$self->{'cvs_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -2 if( $self->SUPER::commit < 0 );
@@ -206,54 +163,16 @@
}
}
-
-sub getall
-{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
-
- my $query;
- my $request;
-
- my $objs;
- my $result;
- my $tmp;
-
- $query = "SELECT c.cvsroot, c.object_id FROM vhffs_cvs c, vhffs_object o WHERE c.object_id = o.object_id";
- $query.= " AND o.state='".$state."'" if( defined $state );
- $query.= " AND c.cvsroot LIKE '%".$name."%'" if( defined $name );
- $query.= " AND c.owner_gid='".$group->get_gid."'" if( defined $group );
- $query .= " ORDER BY c.cvsroot";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- return undef if( $rows == 0);
-
- while( $result = $request->fetchrow_hashref )
- {
-
- $tmp = new Vhffs::Services::Cvs( $vhffs , $result->{'cvsroot'} );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
- }
- return $objs;
-}
-
-
sub set_user
{
my ( $self , $user ) = @_;
- $self->{'user'} = $user;
+ $self->{'owner_uid'} = $user->get_uid() if(defined $user && defined $self);
}
sub set_group
{
my ( $self , $group ) = @_;
- $self->{'group'} = $group;
+ $self->{'owner_gid'} = $group->get_gid() if(defined $group && defined $self);
}
sub get_cvsroot
@@ -296,27 +215,86 @@
return( $self->{'main'}->get_config->get_datadir . "/cvs/cvsroot/" . $self->get_group->get_groupname . "/" . $self->get_cvsroot );
}
+sub get_by_cvsroot {
+ my($main, $cvsroot) = @_;
+ my $sql = 'SELECT c.cvs_id, c.cvsroot, c.owner_uid, c.owner_gid, c.public, c.object_id, o.date_creation, o.description, o.state FROM vhffs_cvs c INNER JOIN vhffs_object o ON c.object_id = o.object_id WHERE c.cvsroot = ?';
+ my $dbh = $main->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $cvsroot));
+ return _new Vhffs::Services::Cvs($main, @params);
+}
+
+sub _new {
+ my ($class, $main, $cvs_id, $cvsroot, $owner_uid, $owner_gid, $public, $oid, $date_creation, $description, $state) = @_;
+
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_CVS);
+ return undef unless(defined $self);
+
+ $self->{cvsroot} = $cvsroot;
+ $self->{cvs_id} = $cvs_id;
+ $self->{owner_gid} = $owner_gid;
+ $self->{public} = $public;
+ return $self;
+}
+
+sub getall
+{
+ my ($vhffs, $state, $name, $group) = @_;
+
+ my $query;
+ my $request;
+ my @params;
+
+ my $objs = [];
+ my $result;
+ my $tmp;
+
+ $query = 'SELECT c.cvs_id, c.cvsroot, c.owner_uid, c.owner_gid, c.public, o.object_id, o.date_creation, o.description, o.state FROM vhffs_cvs c INNER JOIN vhffs_object o ON c.object_id = o.object_id';
+ if(defined $state) {
+ $query .= ' AND o.state=?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $query .= ' AND c.cvsroot LIKE ?';
+ push(@params, '%'.$name.'%');
+ }
+
+ if(defined $group) {
+ $query .= ' AND c.owner_gid=?';
+ push(@params, $group->get_gid);
+ }
+ $query .= " ORDER BY c.cvsroot";
+ $request = $vhffs->{'db'}->prepare( $query );
+ my $rows = $request->execute(@params);
+
+ return undef if( ! $rows );
+
+ while( $result = $request->fetchrow_arrayref )
+ {
+ $tmp = _new Vhffs::Services::Cvs( $vhffs, @{$result} ) ;
+ push @{$objs} , $tmp;
+ }
+ return $objs;
+}
+
sub getall_per_group
{
- my $main = shift;
- my $group = shift;
+ my ($main, $group) = @_;
my @result;
my $cvsroot;
- return undef if ( $group->fetch < 0 );
+ return undef if ( ! defined $group );
- my $query = "SELECT c.cvsroot , c.object_id, o.state FROM vhffs_cvs c, vhffs_object o WHERE o.object_id=c.object_id AND c.owner_gid='".$group->get_gid."'";
-
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $query = 'SELECT c.cvs_id, c.cvsroot, c.owner_uid, c.owner_gid, c.public, o.object_id, o.date_creation, o.description, o.state FROM vhffs_cvs c INNER JOIN vhffs_object o ON c.object_id = o.object_id WHERE c.owner_gid=? ORDER BY c.cvsroot';
+ my $request = $main->{'db'}->prepare( $query ) or return -1;
+
- return undef if ( $request->execute() <= 0);
+ return undef if ( ! $request->execute($group->get_gid) );
- my $repos = $request->fetchall_hashref( 'cvsroot' );
- foreach $cvsroot ( %{$repos} )
+ while( my $repos = $request->fetchrow_arrayref() )
{
- my $cvs = new Vhffs::Services::Cvs( $main , $cvsroot );
- push( @result , $cvs ) if( $cvs->fetch > 0 );
+ push(@result, _new Vhffs::Services::Cvs($main, @{$repos}))
}
@@ -324,7 +302,10 @@
}
+1;
+__END__
+=head1 AUTHORS
+soda < dieu at gunnm dot org>
-
-1;
+Sebastien Le Ray < beuss at tuxfamily dot org >
Modified: trunk/vhffs-api/src/Vhffs/Services/DNS.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/DNS.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/DNS.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,184 +29,147 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+=pod
-# Vhffs::Services::DNS
-# This file is a part of VHFFS4 program. It is used to manage domain name server (DNS)
-# Please respect the licence of this program.
+=head1 NAME
-# Author: soda < dieu at gunnm dot org >
+Vhffs::Services::DNS - Handles domain name related stuff in VHFFS
-package Vhffs::Services::DNS;
+=head1 SYNOPSIS
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
+TODO
+=head1 METHODS
+=cut
-sub new
-{
- my $this;
- my $self;
-
- my $class = shift;
- my $main = shift;
- my $domain = shift;
- my $user = shift;
- my $group = shift;
-
- $this = {};
-
- return undef if( ! ($domain =~ /^([a-z0-9\-]+\.)+[a-z]{2,4}$/ ) );
-
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- $this->{'domain'} = $domain if ( defined $domain );
- $this->{'owner_uid'} = $user->get_uid if ( defined $user );
- $this->{'owner_gid'} = $group->get_gid if ( defined $group );
- $this->{'user'} = $user;
- $this->{'group'} = $group;
-
-
- bless( $this , $class );
-
- return $this;
-}
+package Vhffs::Services::DNS;
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
# Returns an array with ALL the DNS
# If ionly a ref of a Vhffs::Main instance if given, it returns ALL DNS objects
# If a state (of Vhffs::Constants) is given more, it returns all DNS objects which have this state
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $domains = [];
+ my @params;
+ my $sql = 'SELECT d.domain FROM vhffs_dns d, vhffs_object o WHERE o.object_id = d.object_id';
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push @params, $state;
+ }
+ if(defined $name) {
+ $sql .= ' AND d.domain LIKE ?';
+ push @params, '%'.$name.'%';
+ }
+ if(defined $group) {
+ $sql .= ' AND d.owner_gid = ?';
+ push @params, $group->get_gid;
+ }
+ $sql .= ' ORDER BY d.domain';
- my $objs;
- my $result;
- my $tmp;
+ my $dbh = $vhffs->get_db_object();
+ my $sth = $dbh->prepare($sql);
+ $sth->execute(@params);
+ while(my @d = $sth->fetchrow_array) {
+ push @$domains, get_by_domainname($vhffs, $d[0]);
+ }
- $query = "SELECT n.domain, n.object_id FROM vhffs_dns_global n, vhffs_object o WHERE n.object_id = o.object_id";
- $query.= " AND o.state='".$state."'" if( defined $state );
- $query.= " AND n.domain LIKE '%".$name."%'" if( defined $name );
- $query.= " AND n.owner_gid='".$group->get_gid."'" if( defined $group );
+ return $domains;
+}
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+=pod
- return undef if( $rows <= 0);
-
- while( $result = $request->fetchrow_hashref() )
- {
- $tmp = new Vhffs::Services::DNS( $vhffs , $result->{'domain'} );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
- }
- return $objs;
-}
+=head2 create
+ my $dns = Vhffs::Services::DNS::create($main, $domain, $description, $user, $group);
+ die('Unable to create DNS') unless(defined $dns);
+Create a new DNS in database and returns the corresponding object.
+If the init section of the VHFFS config is filled, use it to add initial A, MX and NS records.
+=cut
-#Create the object in VHFFS database
sub create
{
- my $self = shift;
- my $conf = $self->{'main'}->get_config->get_service("dns");
-
- return -1 if ( ! defined $conf );
-
+ my($main, $domain, $description, $user, $group) = @_;
- #Check if the DNS object already exists
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_global WHERE domain='" . $self->{'domain'} . "'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
-
- my $oid = $self->SUPER::create();
- return -1 if ( $oid lt 0 );
-
-
- #Exit is the no user and no group are linked to this object
- return -3 if ( ( $self->{'user'}->fetch < 0 ) || ( $self->{'group'}->fetch < 0 ) );
-
+ my $conf = $main->get_config->get_service("dns");
+ return undef if ( ! defined $conf );
- #Get the max dns_id and compute the new dns_id
- my $dns_id = 1;
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_global where domain='".$self->{'domain'}."'") or return -1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(dns_id) FROM vhffs_dns_global");
- $dns_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $dns_id++;
- $self->{'dns_id'} = $dns_id;
-
-
- #Finally, create the object
- my $text = "INSERT INTO vhffs_dns_global VALUES( '".$dns_id."' , '".$self->{'domain'}."', '".$self->{'group'}->get_gid."' , '".$self->{'user'}->get_uid."' , '".$oid."' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $text );
- $request->execute or return -2;
- $self->{SOA}->{origin} = $self->{domain} . ".";
- $self->commit;
-
-
- # Final, create some defaults values defined in the conf file
- # Those values are defined in the config file in the <services> <dns> .... </dns> </services>
- my $ip;
- my $name;
- my $prio;
-
- if( defined $conf->{init} )
- {
- my $init = $conf->{init};
- if( defined $init->{a} )
- {
- foreach( keys %{$init->{a}} )
- {
- $name = $_;
- $ip = $init->{a}{$_};
- if( $name eq "default" )
- {
- $self->add_a( "" , $ip );
- }
- else
- {
- $self->add_a( $name , $ip );
- }
- }
- }
- if( defined $init->{mx} )
- {
- foreach( keys %{$init->{mx}} )
- {
- $prio = $_;
- $ip = $init->{mx}{$_};
- $self->add_mx( $ip , $prio );
- }
- }
-
- if( defined $init->{ns} )
- {
- foreach( keys %{$init->{ns}} )
- {
- $name = $_;
- $self->add_ns( $name );
- }
- }
-
+ return undef unless(defined($user) && defined($group));
+ return undef unless(Vhffs::Functions::check_domain_name($domain));
+
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
+ my $self;
+
+ eval {
+
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_DNS);
+
+ die('Unable to create parent object') unless(defined $parent);
+
+ my $sql = 'INSERT INTO vhffs_dns (domain, owner_uid, owner_gid, object_id, ns, mbox, serial, refresh, retry, expire, minimum, ttl) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
+ my ($day, $month, $year);
+ (undef,undef,undef,$day,$month,$year) = localtime(time);
+ my $serial = sprintf('%.4u%.2u%.2u01',$year+1900,$month+1,$day);
+
+ my $sth = $dbh->prepare($sql);
+
+ $sth->execute($domain, $user->get_uid, $group->get_gid, $parent->get_oid, $conf->{default_ns1}, $conf->{default_mbox}, $serial,
+ $conf->{default_refresh}, $conf->{default_retry}, $conf->{default_expire}, $conf->{default_minimum}, $conf->{default_minimum});
+
+ $dbh->commit;
+ $self = get_by_domainname($main, $domain);
+ };
+
+ # Something went wrong, let's cancel everything
+ if($@) {
+ warn "Error creating domain $domain: $@\n";
+ $dbh->rollback;
+ return undef;
}
-
- return $dns_id;
-}
+ # Fill in default information defined in configuration.
+ if( defined $conf->{init} ) {
+ my ($ip, $name, $prio);
+ my $init = $conf->{init};
+ if( defined $init->{a} ) {
+ foreach( keys %{$init->{a}} ) {
+ $name = $_;
+ $ip = $init->{a}{$_};
+ $self->add_a( $name , $ip );
+ }
+ }
+ if( defined $init->{mx} ) {
+ foreach( keys %{$init->{mx}} ) {
+ $prio = $_;
+ $ip = $init->{mx}{$_};
+ $self->add_mx( $ip , $prio );
+ }
+ }
+ if( defined $init->{ns} ) {
+ foreach( keys %{$init->{ns}} ) {
+ $name = $_;
+ $self->add_ns( $name );
+ }
+ }
+ }
+ return $self;
+}
+
# Delete this object from VHFFS database
sub delete
{
@@ -214,23 +177,14 @@
my $query;
my $request;
- return -1 if( $self->fetch < 0);
-
- # Destroy the SOA part
- $query = "DELETE FROM vhffs_dns_soa WHERE id='".$self->{'dns_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -1;
-
-
# Destroy the RR part (A, NS, PTR, ...)
$query = "DELETE FROM vhffs_dns_rr WHERE zone='".$self->{'dns_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
-
# Destroy the main part of the DNS
- $query = "DELETE FROM vhffs_dns_global WHERE dns_id='".$self->{'dns_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $query = "DELETE FROM vhffs_dns WHERE dns_id='".$self->{'dns_id'}."'";
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
#Destroy the generic object
@@ -239,280 +193,234 @@
return 1;
}
+=pod
-#Get all data about this httpd object in the databse
-sub fetch
+=head2 get_by_domainname
+
+ my $dns = Vhffs::Services::DNS::get_by_domainname($main, $domainname);
+ die('Domain not found') unless(defined $dns);
+
+Fetches the DNS object whose domainname is $domainname. Returned object is fully
+functionnal. A, NS, CNAME, I<etc.> records are filled and accessible using
+C<$dns->get_xxx_type>.
+
+=cut
+
+sub get_by_domainname($$)
{
- my $self = shift;
- my $name;
- my $key;
+ my ($main, $name) = @_;
-
- #First, get informations in the dns database, in dns_global
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_global where domain='".$self->{'domain'}."'") or return -1;
- my $rows = $request->execute() or return -3;
- return -1 if ( $rows == 0 );
-
-
- my $result = $request->fetchrow_hashref();
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
- #Second, get the SOA part
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_soa where id='".$self->{'dns_id'}."'");
- $request->execute();
- $result = $request->fetchrow_hashref();
-
- foreach ( keys %{$result} )
- {
- $self->{SOA}->{$_} = $result->{$_}
- }
-
-
- #Get the A TYPE
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_rr where zone='".$self->{'dns_id'}."' AND type='A'") or return -1;
- $request->execute() or return -3;
- while( $result = $request->fetchrow_hashref())
- {
- if( $result->{name} eq "" )
- {
- $name = "default";
- }
- else
- {
- $name = $result->{name};
- }
-
- foreach( keys %{$result} )
- {
- $self->{A}->{$name}->{$_} = $result->{$_} if ( $_ ne "name" );
- }
- }
-
-
-
- #Get the NS ZONE
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_rr where zone='".$self->{'dns_id'}."' AND type='NS'") or return -1;
- $request->execute() or return -3;
- while( $result = $request->fetchrow_hashref())
- {
- $key = $result->{data};
-
- foreach( keys %{$result} )
- {
- $self->{NS}->{$key}->{$_} = $result->{$_};
- }
- }
-
-
-
-
- #Get the CNAME TYPE
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_rr where zone='".$self->{'dns_id'}."' AND type='CNAME'") or return -1;
- $request->execute() or return -3;
- while( $result = $request->fetchrow_hashref())
- {
- if( $result->{name} eq "" )
- {
- $name = "default";
- }
- else
- {
- $name = $result->{name};
- }
-
- foreach( keys %{$result} )
- {
- $self->{CNAME}->{$name}->{$_} = $result->{$_} if ( $_ ne "name" );
- }
- }
-
-
-
-
- #Get the MX TYPE
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_rr where zone='".$self->{'dns_id'}."' AND type='MX'") or return -1;
- $self->{MX} = undef if ( $request->execute() <= 0 );
- while( $result = $request->fetchrow_hashref())
- {
- $key = $result->{aux};
-
- foreach( keys %{$result} )
- {
- $self->{MX}->{$key}->{$_} = $result->{$_} if ( $_ ne "aux" );
- }
- }
-
-
- $self->SUPER::fetch;
- $self->SUPER::fetch;
+ my $sql = 'SELECT d.dns_id, d.domain, d.owner_gid, d.ns, d.mbox, d.serial, d.refresh, d.retry, d.expire, d.minimum, d.ttl, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_dns d INNER JOIN vhffs_object o ON o.object_id = d.object_id WHERE d.domain = ?';
+
+ my $dbh = $main->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $name));
+ my $dns_id = $params[0];
+
+ # Fetches A records
+ $sql = 'SELECT id, zone, (CASE WHEN name = \'\' THEN \'default\' ELSE name END) AS name, type, data, aux, ttl FROM vhffs_dns_rr WHERE zone = ? AND type = \'A\'';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($dns_id);
+ my $a = $sth->fetchall_hashref('id');
+ push @params, $a;
+
+ # Fetches NS records
+ $sql = 'SELECT id, zone, name, type, data, aux, ttl FROM vhffs_dns_rr WHERE zone = ? AND type = ?';
+ $sth = $dbh->prepare($sql);
+ $sth->execute($dns_id, 'NS');
+ my $ns = $sth->fetchall_hashref('id');
+ push @params, $ns;
+
+ # Fetches CNAME records
+ $sql = 'SELECT id, zone, (CASE WHEN name = \'\' THEN \'default\' ELSE name END) AS name, type, data, aux, ttl FROM vhffs_dns_rr WHERE zone = ? AND type = ?';
+ $sth = $dbh->prepare($sql);
+ $sth->execute($dns_id, 'CNAME');
+ my $cname = $sth->fetchall_hashref('id');
+ push @params, $cname;
+
+ # Fetches MX records
+ $sql = 'SELECT id, zone, name, type, data, aux, ttl FROM vhffs_dns_rr WHERE zone = ? AND type = ?';
+ $sth = $dbh->prepare($sql);
+ $sth->execute($dns_id, 'MX');
+ my $mx = $sth->fetchall_hashref('id');
+ push @params, $mx;
+
+ return _new Vhffs::Services::DNS($main, @params);
}
-sub get_max_rrid
+sub _new
{
- my ( $self ) = @_;
+ my ($class, $main, $dns_id, $domain, $owner_gid, $ns, $mbox, $serial, $refresh, $retry, $expire, $minimum, $ttl, $oid, $owner_uid, $date_creation, $state, $description, $a, $nsr, $cname, $mx) = @_;
- my $id = 1;
- my $request = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(id) FROM vhffs_dns_rr");
- $id = $request->[0][0] if ( defined $request->[0][0] );
- $id++;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_DNS);
- return $id;
+ $self->{dns_id} = $dns_id;
+ $self->{domain} = $domain;
+ $self->{owner_gid} = $owner_gid;
+ $self->{ns} = $ns;
+ $self->{mbox} = $mbox;
+ $self->{serial} = $serial;
+ $self->{refresh} = $refresh;
+ $self->{retry} = $retry;
+ $self->{expire} = $expire;
+ $self->{minimum} = $minimum;
+ $self->{ttl} = $ttl;
+ $self->{A} = $a;
+ $self->{NS} = $nsr;
+ $self->{CNAME} = $cname;
+ $self->{MX} = $mx;
+
+ return $self;
}
-
# This function returns -1 if a name already exists.
# For example, if soda.gunnm.org already exists in the dns_rr table, we return -1. Otherwise, 0.
sub name_exists
{
my ( $self , $name ) = @_;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_rr WHERE name='".$name."' AND zone='".$self->{'dns_id'}."' AND TYPE IN ( 'A' , 'CNAME')");
- my $rows = $request->execute;
- return 1 if ( $rows != 0 );
-
- return 0;
+ my $dbh = $self->get_main->get_db_object();
+ my $sql = 'SELECT id FROM vhffs_dns_rr WHERE name = ? AND zone = ? AND type IN(\'A\', \'CNAME\') LIMIT 1';
+ return ($dbh->do($sql, undef, $name, $self->{dns_id}) != 0);
}
sub delete_cname
{
- my $self = shift;
- my $name = shift;
+ my ($self, $id) = @_;
- return -1 if( ! ($name =~ /^[a-z0-9\.\-]*$/ ) );
- $name = "" if( $name eq "default" );
+ return -1 unless($id =~ /^\d+$/ );
+ my $rr = $self->{CNAME}{$id};
+ return -2 unless(defined $rr);
- my $query = "DELETE FROM vhffs_dns_rr WHERE type='CNAME' AND zone='".$self->{'dns_id'}."' AND name='".$name."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $dbh = $self->get_main()->get_db_object();
+ my $sql = 'DELETE FROM vhffs_dns_rr WHERE id = ? AND type = \'CNAME\' AND zone = ?';
+ $dbh->do($sql, undef, $id, $self->{dns_id}) or return -3;
+ $self->add_history('Deleted CNAME record '.$rr->{name});
+ delete $self->{CNAME}{$id};
+
#Update SOA
- $self->commit;
- $self->add_history("Delete the $name CNAME");
-
+ $self->update_serial();
return 1;
}
-
sub delete_ns
{
- my $self = shift;
- my $ip = shift;
+ my ($self, $id) = @_;
- return -1 if( ! ($ip =~ /^[a-z0-9\.\-]+$/ ) );
+ return -1 unless( $id =~ /^\d+$/ );
+ my $rr = $self->{NS}{$id};
+ return -2 unless(defined $rr);
- my $query = "DELETE FROM vhffs_dns_rr WHERE type='NS' AND zone='".$self->{'dns_id'}."' AND data='".$ip."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $dbh = $self->get_main->get_db_object();
+ my $sql = 'DELETE FROM vhffs_dns_rr WHERE id = ? AND type = \'NS\' AND zone = ?';
+ $dbh->do($sql, undef, $id, $self->{dns_id}) or return -3;
- $self->add_history("Delete the ns $ip");
+ $self->add_history('Deleted NS record '.$rr->{data});
+
+ delete $self->{NS}{$id};
- #Update SOA
- $self->commit;
+ $self->update_serial();
return 1;
}
-
-
-
sub delete_mx
{
- my $self = shift;
- my $aux = shift;
+ my ($self, $id) = @_;
- return -1 if( ! ($aux =~ /^[a-z0-9\.\-]+$/ ) );
+ return -1 unless( $id =~ /^\d+$/ );
+ my $rr = $self->{MX}{$id};
+ return -2 unless(defined $rr);
- my $query = "DELETE FROM vhffs_dns_rr WHERE type='MX' AND zone='".$self->{'dns_id'}."' AND aux='".$aux."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $dbh = $self->get_main->get_db_object();
+ my $sql = 'DELETE FROM vhffs_dns_rr WHERE id = ? AND type = \'MX\' AND zone = ?';
+ $dbh->do($sql, undef, $id, $self->{dns_id}) or return -3;
- $self->add_history("Delete the mx with priority $aux");
-
- #Update SOA
- $self->commit;
+ $self->add_history('Deleted the MX record '.$rr->{name}.' (priority: '.$rr->{aux}.')');
+
+ delete $self->{MX}{$id};
+
+ $self->update_serial();
return 1;
}
sub delete_a
{
- my $self = shift;
- my $name = shift;
+ my ($self, $id) = @_;
- return -1 if( ! ($name =~ /^(?:[a-z0-9\-]*|\*)$/ ) );
- $name = "" if( $name eq "default" );
+ return -1 unless($id =~ /^\d+$/ );
+ return -2 unless(defined $self->{A}{$id});
- my $query = "DELETE FROM vhffs_dns_rr WHERE type='A' AND zone='".$self->{'dns_id'}."' AND name='".$name."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $dbh = $self->get_main->get_db_object();
+ my $sql = 'DELETE FROM vhffs_dns_rr WHERE type = \'A\' AND zone = ? AND id = ?';
+ $dbh->do($sql, undef, $self->{dns_id}, $id) or return -3;
- $self->add_history("Delete $name FROM domain");
+ $self->add_history('Deleted A record '.$self->{A}{$id}{name});
+ delete $self->{A}{$id};
- #Update SOA
- $self->commit;
+ $self->update_serial();
return 1;
}
sub update_a
{
- my ( $self , $name , $ip ) = @_;
+ my ( $self , $id, $ip ) = @_;
- my $id = $self->get_max_rrid();
- return -1 if( ! ($ip =~ /^[a-z0-9\.\-]+$/ ) );
- return -1 if( ! ($name =~ /^(?:[a-z0-9\-]*|\*)$/ ) );
- $name = "" if( $name eq "default" );
+ return -1 unless($id =~ /^\d+$/ );
+ my $rr = $self->{A}{$id};
+ return -2 unless(defined $rr);
+ return -3 unless( Vhffs::Functions::check_ip($ip) );
- my $query = "UPDATE vhffs_dns_rr SET data='".$ip."' WHERE name='".$name."' AND zone='".$self->{'dns_id'}."' AND TYPE='A'";
- my $request2 = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request2->execute or return -2;
+ my $dbh = $self->get_main()->get_db_object();
+ my $sql = 'UPDATE vhffs_dns_rr SET data = ? WHERE id = ? AND zone = ? AND type = \'A\'';
+ $dbh->do($sql, undef, $ip, $id, $self->{dns_id}) or return -4;
- #Update SOA
- $self->commit;
- $self->add_history("Update A TYPE $name poiting now on $ip");
+ $rr->{data} = $ip;
+
+ $self->add_history('Updated A record '.$rr->{name}." pointing now on $ip");
+
+ $self->update_serial();
return 1;
}
sub add_ns
{
- my $self = shift;
- my $ip = shift;
- my $ttl = shift;
+ my ($self, $host, $ttl) = @_;
$ttl = 900 if ( ! defined $ttl );
- return -1 if( ! ($ip =~ /^[a-z0-9\-\.]+$/ ) );
+ return -1 unless(Vhffs::Functions::check_domain_name($host));
-# return -1 if ( $self->name_exists( $name ) != 0 );
+ $host .= '.' unless($host =~ /\.$/ );
- return -1 if( ! defined $ip);
- $ip .= "." if(! ($ip =~ /.+\.$/ ) );
+ my $sql = 'SELECT * FROM vhffs_dns_rr WHERE type=\'NS\' AND data=? AND zone=?';
+ my $dbh = $self->get_main->get_db_object();
+ return -2 if($dbh->do($sql, undef, $host, $self->{dns_id}) != 0);
- my $query;
- my $request;
- my $rows;
+ $sql = 'INSERT INTO vhffs_dns_rr(zone, name, type, data, aux, ttl) VALUES(?, \'\', \'NS\', ?, 0, ?)';
+ $dbh->do($sql, undef, $self->{dns_id}, $host, $ttl) or return -3;
- $query = "SELECT * FROM vhffs_dns_rr WHERE type='NS' AND data='".$ip."' AND zone='".$self->{'dns_id'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_dns_rr', undef);
- return -1 if( $rows != 0 );
- my $id = $self->get_max_rrid();
+ my $ns = {id => $id,
+ zone => $self->{dns_id},
+ name => '',
+ type => 'NS',
+ data => $host,
+ aux => 0,
+ ttl => $ttl
+ };
+ $self->{NS}{$id} = $ns;
- $query = "INSERT INTO vhffs_dns_rr VALUES( '".$id."' , '".$self->{'dns_id'}."', '' , 'NS' , '".$ip."' , '0' , '$ttl' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
- #Update SOA
- $self->commit;
+ $self->update_serial;
- $self->add_history("Add a NS TYPE with $ip");
- return 1;
+ $self->add_history("Added a NS record ($host)");
+ return $id;
}
@@ -523,164 +431,172 @@
my ( $self , $name , $ip , $ttl ) = @_;
$ttl = 900 if ( ! defined $ttl );
- $name = "" if( $name eq "default" );
- return -1 if ( $self->name_exists( $name ) != 0 );
- return -1 if( ! ($name =~ /^(?:[a-z0-9\-]*|\*)$/ ) );
+ return -1 if( ! ($name =~ /^(?:[a-z0-9\-]+|\*)$/ ) );
+ $name = '' if( $name eq 'default' );
+ return -2 if ( $self->name_exists( $name ) != 0 );
- if( ! defined $ip )
- {
- my $config = $self->{'main'}->get_config;
- if( defined $config->get_default_a )
- {
- $ip = $config->get_default_a;
- }
- else
- {
- return -1;
- }
+ if( ! defined $ip ) {
+ my $config = $self->{'main'}->get_config;
+ if( defined $config->get_default_a ) {
+ $ip = $config->get_default_a;
+ } else {
+ return -3;
+ }
}
- return -1 if( ! ($ip =~ /^[a-z0-9\.\-]+$/ ) );
-
- my $id = $self->get_max_rrid();
+ return -4 unless( Vhffs::Functions::check_ip($ip) );
- my $query;
- my $request;
- my $rows;
+ my $dbh = $self->get_main()->get_db_object();
+ my $sql = 'INSERT INTO vhffs_dns_rr (zone, name, type, data, aux, ttl) VALUES(?, ?, \'A\', ?, 0, ?)';
+ $dbh->do($sql, undef, $self->{dns_id}, $name, $ip, $ttl) or return -5;
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_dns_rr', undef);
+ $name = 'default' if($name eq '');
+ my $a = {id => $id,
+ zone => $self->{dns_id},
+ name => $name,
+ type => 'A',
+ data => $ip,
+ aux => 0,
+ ttl => $ttl
+ };
+ $self->{A}{$id} = $a;
- $query = "INSERT INTO vhffs_dns_rr VALUES( '"."$id"."' , '".$self->{'dns_id'}."', '".$name."' , 'A' , '".$ip."' , '0' , '$ttl' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
- #Update SOA
- $self->commit;
+ $self->update_serial();
- $self->add_history("Add a A TYPE with name $name poiting on $ip");
- return 1;
+ $self->add_history("Added a A TYPE with name $name pointing on $ip");
+ return $id;
}
+=pod
+=head2 update_mx
+ $dns->update_mx($rr_id, $host);
+Replace address for MX record C<$rr_id>.
+
+=cut
+
sub update_mx
{
-# my ( $self , $name , $ip , $aux , $ttl ) = @_;
- my $self = shift;
-# my $name = shift;
- my $data = shift;
- my $aux = shift;
+ my ($self, $id, $host) = @_;
+
+ return -1 unless($id =~ /^\d+$/);
+ my $rr = $self->{MX}{$id};
+ return -2 unless(defined $rr);
+ return -3 unless(Vhffs::Functions::check_domain_name($host, 1));
- my $query = "UPDATE vhffs_dns_rr SET data='".$data."' WHERE zone='".$self->{'dns_id'}."' AND aux='".$aux."' AND type='MX'";
- my $request2 = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $sql = 'UPDATE vhffs_dns_rr SET data = ? WHERE id = ? AND zone = ? AND type=\'MX\'';
+ my $dbh = $self->get_main()->get_db_object();
- $self->add_history("Change the MX for priority $aux : $data");
- #Update SOA
- $self->commit;
-
- $request2->execute or return -2;
+ $host .= '.' unless($host =~ /\.$/);
+
+ $dbh->do($sql, undef, $host, $id, $self->{dns_id}) or return -4;
+
+ $rr->{data} = $host;
+
+ $self->add_history('Changed the MX for priority '.$rr->{aux}.": $host");
+
+ $self->update_serial();
}
sub add_mx
{
- my $self = shift;
- my $ip = shift;
- my $aux = shift;
- my $ttl = shift;
+ my ($self, $host, $aux, $ttl) = @_;
$ttl = 900 if ( ! defined $ttl );
$aux = 10 if ( !defined $aux );
+
+ return -1 unless( Vhffs::Functions::check_domain_name($host, 1) );
+ return -2 unless( $aux =~ /^\d+$/ );
- return -1 if( ! ($ip =~ /^[a-z0-9\.\-]+$/ ) );
+ $host .= '.' unless($host =~ /\.$/);
- my $query;
- my $request;
- my $rows;
+ my $sql = 'SELECT id FROM vhffs_dns_rr WHERE type=\'MX\' AND data=? AND zone=?';
+ my $dbh = $self->get_main()->get_db_object();
+ return -3 if($dbh->do($sql, undef, $host, $self->{dns_id}) != 0);
- $ip .= ".";
- $query = "SELECT * FROM vhffs_dns_rr WHERE type='MX' AND data='".$ip."' AND zone='".$self->{'dns_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $rows = $request->execute;
- return -1 if( $rows != 0 );
+ $sql = 'INSERT INTO vhffs_dns_rr(zone, name, type, data, aux, ttl) VALUES(?, \'\', \'MX\', ?, ?, ?)';
+ $dbh->do($sql, undef, $self->{dns_id}, $host, $aux, $ttl) or return -4;
+
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_dns_rr', undef);
+ my $mx = {id => $id,
+ zone => $self->{dns_id},
+ name => '',
+ type => 'MX',
+ data => $host,
+ aux => $aux,
+ ttl => $ttl
+ };
+ $self->{MX}->{$id} = $mx;
- my $id = $self->get_max_rrid();
-
-
- $query = "INSERT INTO vhffs_dns_rr VALUES( '"."$id"."' , '".$self->{'dns_id'}."', '' , 'MX' , '".$ip."' , '$aux' , '$ttl' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
-
- $self->add_history("Add an MX in the domain with priority $aux on $ip");
- #Update SOA
- $self->commit;
+ $self->add_history("Added an MX record, host : $host - priority : $aux");
- $request->execute or return -2;
+ $self->update_serial();
+ return $id;
}
sub update_cname
{
- my $self = shift;
- my $name = shift;
- my $ip = shift;
+ my ($self, $id, $dest) = @_;
- return -1 if( ! ($name =~ /^[a-z0-9\.\-]*$/ ) );
- return -1 if( ! ($ip =~ /^[a-z0-9\.\-]+$/ ) );
+ return -1 unless($id =~ /^\d+$/ );
+ my $rr = $self->{CNAME}{$id};
+ return -2 unless(defined $rr);
+ return -3 unless(Vhffs::Functions::check_domain_name($dest, 1));
- $ip.=".";
- my $query = "UPDATE vhffs_dns_rr SET data='".$ip."' WHERE TYPE='CNAME' AND zone='".$self->{'dns_id'}."' AND name='".$name."'";
- my $request2 = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ $dest .='.' unless($dest =~ /\.$/);
+ my $dbh = $self->get_main()->get_db_object();
+ my $sql = 'UPDATE vhffs_dns_rr SET data = ? WHERE id = ? AND type = \'CNAME\' AND zone = ?';
+ $dbh->do($sql, undef, $dest, $id, $self->{dns_id})or return -4;
- $self->add_history("Update CNAME $name pointing now on $ip");
- #Update SOA
- $self->commit;
-
- $request2->execute or return -2;
+ $rr->{data} = $dest;
+
+ $self->add_history('Updated CNAME '.$rr->{data}." pointing now on $dest");
+ $self->update_serial();
}
sub add_cname
{
- my $self = shift;
- my $name = shift;
- my $ip = shift;
- my $ttl = shift;
-
+ my ($self, $name, $dest, $ttl) = @_;
+
$ttl = 900 if ( ! defined $ttl );
+ return -1 unless($name =~ /^[a-z0-9\-]+$/ );
+ return -2 unless(Vhffs::Functions::check_domain_name($dest, 1));
+ $name = '' if( $name eq 'default' );
+ return -3 if ( $self->name_exists( $name ) != 0 );
-
- $name = "" if( $name eq "default" );
- return -1 if( ! ($name =~ /^[a-z0-9\-]*$/ ) );
- return -1 if( ! ($ip =~ /[a-z0-9\.\-]+/ ) );
-
- return -1 if ( $self->name_exists( $name ) != 0 );
-
-
# Add a '.' the the submitted name. Otherwise, if the user submit tata.toto.com IN CNAME foo.com
# MyDNS will understand tata.toto.com IN CNAME foo.com.toto.com
- $ip.=".";
+ $dest .= '.' unless($dest =~ /\.$/);
- my $id = $self->get_max_rrid();
+ my $dbh = $self->get_main()->get_db_object();
- my $query = "INSERT INTO vhffs_dns_rr VALUES( '"."$id"."' , '".$self->{'dns_id'}."', '".$name."' , 'CNAME' , '".$ip."' , '0' , '$ttl' )";
- my $request2 = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $sql = 'INSERT INTO vhffs_dns_rr(zone, name, type, data, aux, ttl) VALUES(?, ?, \'CNAME\', ?, 0, ?)';
+ $dbh->do($sql, undef, $self->{dns_id}, $name, $dest, $ttl) or return -4;
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_dns_rr', undef);
- $self->add_history("Add a CNAME $name pointing on $ip");
+ $name = 'default' if($name eq '');
+ my $cname = {id => $id,
+ zone => $self->{dns_id},
+ name => $name,
+ type => 'CNAME',
+ data => $dest,
+ aux => 0,
+ ttl => $ttl};
- #Update SOA
- $self->commit;
-
- $request2->execute or return -2;
-}
+ $self->{CNAME}{$id} = $cname;
-# Simply activate a domain. This is only an option for MyDNS
-sub activate
-{
- my $self = shift;
- $self->{SOA}->{'active'} = 1;
+ $self->add_history("Added a CNAME record ($name -> $dest)");
+
+ $self->update_serial();
+ return $id;
}
-
-
# Submit changes to the backend
sub commit
{
@@ -696,90 +612,62 @@
return -1 if ( ! defined $self->{'dns_id'} );
#Set some defaults values if not defined
- $self->{SOA}->{'origin'} = $self->{'domain'} if( ! defined $self->{SOA}->{'origin'} );
- $self->{SOA}->{'ttl'} = $conf->{default_ttl} if( ! defined $self->{SOA}->{'ttl'} );
- $self->{SOA}->{'ns'} = $conf->{default_ns1} if( ! defined $self->{SOA}->{'ns'} );
- $self->{SOA}->{'mbox'} = $conf->{default_mbox} if( ! defined $self->{SOA}->{'mbox'} );
- $self->{SOA}->{'serial'} = $conf->{default_serial} if( ! defined $self->{SOA}->{'serial'} );
- $self->{SOA}->{'refresh'} = $conf->{default_refresh} if( ! defined $self->{SOA}->{'refresh'} );
- $self->{SOA}->{'retry'} = $conf->{default_retry} if( ! defined $self->{SOA}->{'retry'} );
- $self->{SOA}->{'expire'} = $conf->{default_expire} if( ! defined $self->{SOA}->{'expire'} );
- $self->{SOA}->{'minimum'} = $conf->{default_minimum} if( ! defined $self->{SOA}->{'minimum'} );
- $self->{SOA}->{'active'} = 0 if( ! defined $self->{SOA}->{'active'} );
+ $self->{'ttl'} = $conf->{default_ttl} if( ! defined $self->{'ttl'} );
+ $self->{'ns'} = $conf->{default_ns1} if( ! defined $self->{'ns'} );
+ $self->{'mbox'} = $conf->{default_mbox} if( ! defined $self->{'mbox'} );
+ $self->{'serial'} = $conf->{default_serial} if( ! defined $self->{'serial'} );
+ $self->{'refresh'} = $conf->{default_refresh} if( ! defined $self->{'refresh'} );
+ $self->{'retry'} = $conf->{default_retry} if( ! defined $self->{'retry'} );
+ $self->{'expire'} = $conf->{default_expire} if( ! defined $self->{'expire'} );
+ $self->{'minimum'} = $conf->{default_minimum} if( ! defined $self->{'minimum'} );
#Convert the mail to the mailbox domain for DNS files
- $self->{SOA}->{'mbox'} =~ s/\@/\./;
+ $self->{'mbox'} =~ s/\@/\./;
#Update the serial to refresh the domain
- my ($second,$minutes,$hours,$day,$month,$year) = localtime(time);
- my $newserial = sprintf('%.4u%.2u%.2u',$year+1900,$month+1,$day);
-
- if( $self->{SOA}->{serial} =~ /^$newserial/ || $self->{SOA}->{serial} > $newserial.'01' )
- {
- $self->{SOA}->{serial}++;
- }
- else
- {
- $self->{SOA}->{serial} = $newserial.'01';
- }
+ $self->{serial} = $self->get_next_serial();
#First, commit the SOA
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_dns_soa WHERE id='" . $self->{'dns_id'} . "'");
- my $rows = $request->execute;
- if ( $rows != 0 )
- {
- $query = "UPDATE vhffs_dns_soa SET origin='".$self->{SOA}->{'origin'}."', ns='".$self->{SOA}->{'ns'}."', mbox='".$self->{SOA}->{'mbox'}."', serial='".$self->{SOA}->{'serial'}."', refresh='".$self->{SOA}->{'refresh'}."', retry='".$self->{SOA}->{'retry'}."', expire='".$self->{SOA}->{'expire'}."', minimum='".$self->{SOA}->{'minimum'}."', ttl='".$self->{SOA}->{'ttl'}."', active='".$self->{SOA}->{'active'}."' WHERE id=$self->{'dns_id'}";
- }
- else
- {
- $query = "INSERT INTO vhffs_dns_soa VALUES ( '$self->{dns_id}' , '$self->{SOA}->{origin}' , '$self->{SOA}->{ns}' , '$self->{SOA}->{mbox}' , '$self->{SOA}->{serial}' , '$self->{SOA}->{refresh}' , '$self->{SOA}->{retry}' , '$self->{SOA}->{expire}' , '$self->{SOA}->{minimum}' , '$self->{SOA}->{ttl}' , '$self->{SOA}->{active}' )";
- }
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ $query = "UPDATE vhffs_dns SET ns='".$self->{'ns'}."', mbox='".$self->{'mbox'}."', serial='".$self->{'serial'}."', refresh='".$self->{'refresh'}."', retry='".$self->{'retry'}."', expire='".$self->{'expire'}."', minimum='".$self->{'minimum'}."', ttl='".$self->{'ttl'}."' WHERE dns_id=$self->{'dns_id'}";
+ my $request = $self->{'db'}->prepare( $query );
$request->execute or return -2;
-
- if( defined $self->{CNAME} )
- {
- foreach (keys %{$self->{CNAME}} )
- {
- }
- }
-
- if( defined $self->{A} )
- {
- foreach (keys %{$self->{A}} )
- {
- }
- }
-
-
- if( defined $self->{NS} )
- {
- foreach (keys %{$self->{NS}} )
- {
- }
- }
-
-
- if( defined $self->{MX} )
- {
- foreach (keys %{$self->{MX}} )
- {
- }
- }
-
-
# Commit the object part
$self->SUPER::commit;
}
+sub get_next_serial
+{
+ my $self = shift;
+ my ($second,$minutes,$hours,$day,$month,$year) = localtime(time);
+ my $newserial = sprintf('%.4u%.2u%.2u',$year+1900,$month+1,$day);
+ if( $self->{serial} =~ /^$newserial/ || $self->{serial} > $newserial.'01' ) {
+ return ($self->{serial} + 1);
+ } else {
+ return $newserial.'01';
+ }
+}
+sub update_serial {
+ my $self = shift;
+ my $dbh = $self->get_main()->get_db_object();
+ my $sql = 'UPDATE vhffs_dns SET serial = ? WHERE dns_id = ?';
+ $self->{serial} = $self->get_next_serial();
+ $dbh->do($sql, undef, $self->{serial}, $self->{dns_id});
+}
+
########################################
# ACCESSORS
########################################
+sub get_dns_id
+{
+ my $self = shift;
+ return $self->{dns_id};
+}
+
sub get_mx_type
{
my $self = shift;
@@ -807,49 +695,49 @@
sub get_soa_ns
{
my $self = shift;
- return $self->{SOA}->{'ns'};
+ return $self->{'ns'};
}
sub get_soa_mbox
{
my $self = shift;
- return $self->{SOA}->{'mbox'};
+ return $self->{'mbox'};
}
sub get_soa_serial
{
my $self = shift;
- return $self->{SOA}->{'serial'};
+ return $self->{'serial'};
}
sub get_soa_refresh
{
my $self = shift;
- return $self->{SOA}->{'refresh'};
+ return $self->{'refresh'};
}
sub get_soa_retry
{
my $self = shift;
- return $self->{SOA}->{'retry'};
+ return $self->{'retry'};
}
sub get_soa_expire
{
my $self = shift;
- return $self->{SOA}->{'expire'};
+ return $self->{'expire'};
}
sub get_soa_minimum
{
my $self = shift;
- return $self->{SOA}->{'minimum'};
+ return $self->{'minimum'};
}
sub get_soa_ttl
{
my $self = shift;
- return $self->{SOA}->{'ttl'};
+ return $self->{'ttl'};
}
@@ -866,7 +754,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'ns'} = $value;
+ $self->{'ns'} = $value;
}
sub set_soa_mbox
@@ -874,7 +762,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'mbox'} = $value;
+ $self->{'mbox'} = $value;
}
sub set_soa_serial
@@ -882,7 +770,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'serial'} = $value;
+ $self->{'serial'} = $value;
}
sub set_soa_refresh
@@ -890,7 +778,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'refresh'} = $value;
+ $self->{'refresh'} = $value;
}
sub set_soa_retry
@@ -898,7 +786,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'retry'} = $value;
+ $self->{'retry'} = $value;
}
@@ -921,7 +809,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'expire'} = $value;
+ $self->{'expire'} = $value;
}
sub set_soa_minimum
@@ -929,7 +817,7 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'minimum'} = $value;
+ $self->{'minimum'} = $value;
}
sub set_soa_ttl
@@ -937,16 +825,9 @@
my $self = shift;
my $value = shift;
- $self->{SOA}->{'ttl'} = $value;
+ $self->{'ttl'} = $value;
}
-sub set_soa_active
-{
- my $self = shift;
-
- $self->{SOA}->{'active'} = "Y";
-}
-
sub set_user
{
my $self = shift;
@@ -972,3 +853,10 @@
1;
+__END__
+
+=head1 AUTHORS
+
+soda < dieu at gunnm dot org >
+
+Sebastien Le Ray < beuss at tuxfamily dot org>
Modified: trunk/vhffs-api/src/Vhffs/Services/Httpd.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Httpd.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Httpd.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,140 +32,81 @@
# This file is a part of VHFFS4
-# It is used to manage Web Area in VHFFS hosting platform
# Please respect the licence of this file, and the whole VHFFS software.
-# Author: soda < dieu at gunnm dot org>
+=pod
-package Vhffs::Services::Httpd;
+=head1 NAME
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
+Vhffs::Services::Httpd - Handle Web Area in VHFFS hosting platform.
+=head1 SYNOPSIS
+TODO
-sub new
-{
- my $main;
- my $servername;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
+=head1 METHODS
- ( $class , $main , $servername , $user , $group ) = @_;
-
- $this = {};
+=cut
- #return undef if( $user->fetch < 0);
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- return undef if( ! ($servername =~ /^[a-z0-9](([a-z0-9]\-{0,1})+\.)+[a-z]{2,4}$/ ) );
- return undef if( $servername =~ /\.\./ );
-
- $this->{'servername'} = $servername if ( defined $servername );
+package Vhffs::Services::Httpd;
- # $this->{'owner_uid'} = $user->{'uid'} if ( defined $user->{'uid'} );
- $this->{'user'} = $user;
- $this->{'group'} = $group;
+use Vhffs::Functions;
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
- bless( $this , $class );
+=pod
- return $this;
-}
+=head2 create
-sub delete
-{
- my $self = shift;
- my $query = "DELETE FROM vhffs_httpd WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -1;
-
- return -2 if( $self->SUPER::delete < 0 );
+ my $httpd = Vhffs::Services::Httpd::create($main, $servername, $description, $user, $group);
+ die("Unable to create webarea $servername\n") unless(defined $httpd);
- return 1;
-}
+Creates a new webarea in database and returns the corresponding fully functional object.
+=cut
sub create
{
- my $self = shift;
+ my ($main, $servername, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(Vhffs::Functions::check_domain_name($servername));
- return -1 if( $self->{'user'}->fetch < 0 );
- return -1 if( $self->{'group'}->fetch < 0 );
+ my $web;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
- $self->{'owner_gid'} = $self->{'group'}->get_gid;
+ eval {
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_HTTPD);
+
+ die('Unable to create parent object') unless(defined($parent));
+ my $sql = 'INSERT INTO vhffs_httpd(servername, crawl, owner_http, owner_rev, owner_uid, owner_gid, trafic, alert_state, alert_limit, object_id) VALUES(?, 1, ?, ?, ?, ?, 0, 0, 0, ?)';
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_httpd WHERE servername='" . $self->{'servername'} . "'");
- my $rows = $request->execute;
- return -2 if ( $rows != 0 );
- my $oid = $self->SUPER::create();
- return -3 if ( $oid lt 0 );
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($servername, $user->get_uid, $user->get_uid, $user->get_uid, $group->get_gid, $parent->get_oid);
- #Get the mac httpd_id and compute the new httpd_id
- my $httpd_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(httpd_id) FROM vhffs_httpd");
- $httpd_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $httpd_id++;
+ $dbh->commit;
+ $web = get_by_servername($main, $servername);
+ };
-
- #Finally, create the object
- my $query = "INSERT INTO vhffs_httpd VALUES( '".$httpd_id."' , '".$self->{'servername'} . "', '1' , '".$self->{'owner_uid'}."' , '".$self->{'owner_uid'}."' , '".$self->{'owner_uid'}."' , '".$self->{'group'}->get_gid."', '0' , '0' , '0' , $oid )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
-
- return $httpd_id;
+ if($@) {
+ warn "Unable to create webarea $servername: $@\n";
+ $dbh->rollback;
+ }
+ return $web;
}
-
-#Get all data about this httpd object in the databse
-sub fetch
+sub commit
{
my $self = shift;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_httpd where servername='".$self->{'servername'}."'") or return -1;
- my $rows = $request->execute() or return -3;
+ my $sql = 'UPDATE vhffs_httpd SET crawl = ?, trafic = ?, alert_limit = ? WHERE servername = ?';
+ $self->{'db'}->do($sql, undef, $self->{crawl}, $self->{trafic}, $self->{alert_limit}, $self->{servername});
- return -1 if( $rows <= 0 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
- $self->SUPER::fetch;
-
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef , $self->{'owner_uid'} , $self->{'owner_gid'} );
- return -1 if( $self->{'group'}->fetch < 0 );
-
- $self->{'user'} = new Vhffs::User( $self->{'main'} , undef , $self->{'owner_uid'} );
- return -1 if( $self->{'user'}->fetch < 0 );
-
- return 1;
-}
-
-
-
-sub commit
-{
- my $self = shift;
-
- $self->{'crawl'} = 0 if( ! defined $self->{'crawl'} );
- $self->{'trafic'} = 1 if( ! defined $self->{'trafic'} );
-
- my $query = "UPDATE vhffs_httpd SET crawl='".$self->{'crawl'}."', trafic= '".$self->{'trafic'}."' WHERE servername='".$self->{'servername'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
-
-
$self->SUPER::commit;
}
@@ -262,37 +203,75 @@
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $sql;
+ my @params;
+ my $sth;
- my $objs;
+ my $objs = [];
my $result;
my $tmp;
- $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE w.object_id = o.object_id";
- $query .= " AND o.state='".$state."'" if( defined $state );
- $query .= " AND w.servername LIKE '%".$name."%'" if( defined $name );
- $query .= " AND w.owner_gid='".$group->get_gid."'" if( defined $group );
+ $sql = 'SELECT h.httpd_id, h.servername, h.crawl, h.owner_http, h.owner_rev, h.owner_uid, h.owner_gid, h.trafic, h.alert_state, h.alert_limit, h.object_id, o.date_creation, o.description, o.state FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id';
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push(@params, $state);
+ }
+ if(defined($name)) {
+ $sql .= ' AND h.servername LIKE ?';
+ push(@params, '%'.$name.'%');
+ }
+ if(defined($group)) {
+ $sql .= ' AND h.owner_gid = ?';
+ push(@params, $group->get_gid);
+ }
+ $sql .= " ORDER BY servername";
+ $sth = $vhffs->get_db_object->prepare( $sql );
+ my $rows = $sth->execute(@params);
-
- $query .= " ORDER BY servername";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ return undef unless($rows);
- return undef if( $rows == 0);
+ while( $result = $sth->fetchrow_arrayref )
+ {
+ push @{$objs}, _new Vhffs::Services::Httpd($vhffs, @{$result});
+ }
+ return $objs;
+}
- while( $result = $request->fetchrow_hashref )
+sub getall_by_letter
+{
+ my ($vhffs, $letter, $state) = @_;
+
+ return getall($vhffs, $state) if ( ! defined $letter );
+
+ $letter .= '%';
+
+ my $sql;
+ my @params;
+ my $sth;
+
+ my $objs = [];
+ my $result;
+
+ $sql = 'SELECT h.httpd_id, h.servername, h.crawl, h.owner_http, h.owner_rev, h.owner_uid, h.owner_gid, h.trafic, h.alert_state, h.alert_limit, h.object_id, o.date_creation, o.description, o.state FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id WHERE h.servername LIKE ?';
+
+ push(@params, $letter);
+
+ if(defined $state) {
+ $sql .= 'AND o.state = ?';
+ push(@params, $state);
+ }
+ $sql .= 'ORDER BY servername';
+
+ $sth = $vhffs->get_db_object->prepare( $sql );
+ my $rows = $sth->execute(@params);
+
+ return undef unless($rows);
+
+ while( $result = $sth->fetchrow_arrayref )
{
- $tmp = new Vhffs::Services::Httpd( $vhffs , $result->{'servername'} );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
+ push @{$objs}, _new Vhffs::Services::Httpd($vhffs, @{$result});
}
return $objs;
}
@@ -300,39 +279,34 @@
sub search
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $query;
- my $request;
+ my ($vhffs, $state, $name) = @_;
+ my $sql;
+ my $sth;
+ my @params;
+
my $objs;
my $result;
- my $tmp;
- if( ( defined $state ) && ( $state < Vhffs::Constants::TO_DELETE ) )
- {
- $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE o.state='".$state."' AND w.object_id = o.object_id AND ( o.description LIKE '%$name%' OR w.servername LIKE '%name%' )";
+ $sql = 'SELECT h.httpd_id, h.servername, h.crawl, h.owner_http, h.owner_rev, h.owner_uid, h.owner_gid, h.trafic, h.alert_state, h.alert_limit, h.object_id, o.date_creation, o.description, o.state FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id';
+
+ if( ( defined $state ) && ( $state < Vhffs::Constants::TO_DELETE ) ) {
+ $sql .= 'WHERE o.state= ? AND ( o.description LIKE ? OR w.servername LIKE ? )';
+ push(@params, $state);
+ push(@params, '%'.$name.'%');
+ push(@params, '%'.$name.'%');
}
- else
- {
- $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE w.object_id = o.object_id";
- }
- $query .= " ORDER BY servername";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+
+ $sql .= " ORDER BY servername";
+ $sth = $vhffs->get_db_object()->prepare( $sql );
- return undef if( $rows == 0);
+ my $rows = $sth->execute(@params);
-# $result = $request->fetchall_hashref( 'servername' );
+ return undef unless($rows);
- while( $result = $request->fetchrow_hashref )
+ while( $result = $sth->fetchrow_arrayref )
{
- $tmp = new Vhffs::Services::Httpd( $vhffs , $result->{'servername'} );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
+ push @{$objs}, _new Vhffs::Services::Httpd($vhffs, @{$result});
}
return $objs;
}
@@ -340,38 +314,87 @@
sub getall_by_group
{
- my $vhffs = shift;
- my $group = shift;
+ my ($vhffs, $group) = @_;
- my $query;
- my $request;
+ my $sql;
+ my $sth;
- my $objs;
+ my $objs = [];
my $result;
my $tmp;
-
- $query = "SELECT w.servername, w.object_id FROM vhffs_httpd w, vhffs_object o WHERE w.object_id = o.object_id AND w.owner_gid='".$group->get_gid."'";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ $sql = 'SELECT h.httpd_id, h.servername, h.crawl, h.owner_http, h.owner_rev, h.owner_uid, h.owner_gid, h.trafic, h.alert_state, h.alert_limit, h.object_id, o.date_creation, o.description, o.state FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id AND h.owner_gid = ? ORDER BY servername';
- return undef if( $rows == 0);
- $result = $request->fetchall_hashref( 'servername' );
+ $sth = $vhffs->get_db_object()->prepare( $sql );
- foreach( keys %{$result} )
+ my $rows = $sth->execute($group->get_gid());
+
+ return undef unless($rows);
+
+ while( $result = $sth->fetchrow_arrayref )
{
- $tmp = new Vhffs::Services::Httpd( $vhffs , $_ );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
+ push @{$objs}, _new Vhffs::Services::Httpd($vhffs, @{$result});
}
return $objs;
}
+=pod
+=head2 get_by_servername
+ my $httpd = Vhffs::Services::Httpd::get_by_servername($main, $servername);
+ die("Webarea $servername not found\n") unless(defined $httpd);
+Fetches the webarea whose address is $servername.
+
+=cut
+
+sub get_by_servername {
+ my ($main, $servername) = @_;
+ my $sql = 'SELECT h.httpd_id, h.servername, h.crawl, h.owner_http, h.owner_rev, h.owner_uid, h.owner_gid, h.trafic, h.alert_state, h.alert_limit, h.object_id, o.date_creation, o.description, o.state FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id WHERE h.servername = ?';
+
+ my $dbh = $main->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $servername));
+
+ return _new Vhffs::Services::Httpd($main, @params);
+}
+
+# Return a reference on an array, each fiel is a hash with two fields
+# letter and count (count is the number of websites starting with letter).
+# 0 site letters aren't stored.
+sub get_used_letters {
+ my $main = shift;
+ my $state = shift;
+ $state = Vhffs::Constants::ACTIVATED unless(defined $state);
+ my $sql = 'SELECT substr(servername, 1, 1) as letter, COUNT(*) as count FROM vhffs_httpd h INNER JOIN vhffs_object o ON o.object_id = h.object_id WHERE state = ? GROUP BY substr(servername, 1, 1) ORDER BY substr(servername, 1, 1)';
+ my $dbh = $main->get_db_object;
+ return $dbh->selectall_arrayref($sql, { Slice => {} }, $state);
+
+}
+
+sub _new {
+ my ($class, $main, $httpd_id, $servername, $crawl, $owner_http, $owner_rev, $owner_uid, $owner_gid, $trafic, $alert_state, $alert_limit, $oid, $date_creation, $description, $state) = @_;
+
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_HTTPD);
+ return undef unless(defined($self));
+
+ foreach (qw(httpd_id servername crawl owner_http owner_rev owner_gid trafic alert_state alert_limit)) {
+ no strict 'refs';
+ eval '$self->{$_} = $'.$_;
+ }
+ return $self;
+}
+
+
1;
+
+__END__
+
+=head1 AUTHORS
+
+soda < dieu at gunnm dot org >
+
+Sebastien Le Ray < beuss at tuxfamily dot org >
Deleted: trunk/vhffs-api/src/Vhffs/Services/LargeFile.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/LargeFile.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/LargeFile.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,564 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-
-# This file is a part of VHFFS4 Hosting Platform
-# Please respect the licence of this file and the whole software
-
-# Author: soda < dieu at gunnm dot org>
-
-package Vhffs::Services::LargeFile;
-
-use base qw(Vhffs::Object);
-use Vhffs::Group;
-use Vhffs::Functions;
-use strict;
-use DBI;
-
-
-
-#Create a new LargeFile object
-#needs to get filename, and user/group related-object
-sub new
-{
- my $main;
- my $filename;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
-
- $class = shift;
- $main = shift;
- $filename = shift;
- $user = shift;
- $group = shift;
-
- $this = {};
-
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- #We return an undefined value if the user or the SVNROOT are not correct
- return undef if( ! defined ( $filename ) );
- return undef if( length( $filename ) < 3 );
- return undef if( ! ( $filename =~ /^[\w\d\-\_\.]+$/ ) );
- return undef if( ( ! defined $group ) || ( $group->fetch < 1 ) );
-
-
- $this->{'user'} = $user;
- $this->{'group'} = $group;
- $this->{'filename'} = $filename;
-
- bless( $this , $class );
-
- return $this;
-}
-
-
-#Delete largefile entry in database
-#Returns negative value if error happen
-#Returns positive value if success
-sub delete
-{
- my $self = shift;
- my $query;
- my $request;
-
- return -1 if( $self->fetch < 0 );
-
- $query = "DELETE FROM vhffs_largefile WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $request->execute or return -1;
-
- return -1 if( $self->SUPER::delete < 0 );
- return 1;
-}
-
-
-
-#Create a largefile entry on the database
-#Needs :
-# - a valid largefile object
-# - a valid size
-# - a valid type
-sub create
-{
- my $self = shift;
- my $oid;
- my $request;
- my $handle;
-
- #Ok, see if user and group are valid on the database
- return -2 if ( $self->{'user'}->fetch < 0 );
- return -3 if ( $self->{'group'}->fetch < 0 );
-
-
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
-
-
- #Create the main VHFFS object in the database
- #The new Largefile object will inherit this object
- $oid = $self->SUPER::create();
- if ( $oid lt 0 )
- {
- return( -1 );
- }
- else
- {
- $self->{'object_id'} = $oid;
- }
-
- #Finally, create the object
- $request = "INSERT INTO vhffs_largefile (filename,size,type,creating_date,owner_uid,owner_gid,object_id)
- VALUES( ? , ? , ? , NOW() , ? , ? , ? )";
- $handle = $self->{'db'}->{'DB_WRITE'}->prepare( $request );
- $handle->execute( $self->{'filename'} , $self->{'size'} , $self->{'type'} , $self->{'user'}->get_uid , $self->{'group'}->get_gid , $self->{'object_id'} ) or return( -2 );
-
- return 1;
-}
-
-
-#Get object informations from database.
-#The group MUST be valid to work
-#Return positive value if success
-#Negative value if fails
-sub fetch
-{
- my $self = shift;
- my ( $query , $handle , $rows , $result , $request);
-
- $query = "SELECT * FROM vhffs_largefile WHERE filename ='".$self->{'filename'}."' AND owner_gid='".$self->{'group'}->get_gid."'";
- $handle = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
-
- $rows = $handle->execute() or return -3;
-
- return -2 if( $rows <= 0 );
- $result = $handle->fetchrow_hashref();
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
-
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef , $self->{'owner_uid'} , $self->{'owner_gid'} );
- return -1 if( $self->{'group'}->fetch < 0 );
-
- $self->{'user'} = new Vhffs::User( $self->{'main'} , undef , $self->{'owner_uid'} );
- return -1 if( $self->{'user'}->fetch < 0 );
-
- return -4 if( $self->SUPER::fetch < 0 );
-
- return 1;
-}
-
-
-#When invoking commit METHOD, MUST USE before fetch() method on object
-#Returns - negative value if fails (-2 if the error belongs to parent object)
-# - positive value if surccess
-sub commit
-{
- my $self = shift;
- my ( $query , $handle );
-
- $self->{'licence'} = "unknown licence" if( ! defined $self->{'licence'} );
- $self->{'password'} = "" if( ! defined $self->{'password'} );
- $self->{'hash'} = "" if( ! defined $self->{'hash'} );
- $self->{'size'} = "unknown type" if( ! defined $self->{'type'} );
- $self->{'username'} = "" if( ! defined $self->{'username'} );
- $self->{'end_date'} = "NULL" if( ! defined $self->{'end_date'} );
-
- $query = "UPDATE vhffs_largefile SET
- size = ? ,
- licence = ? ,
- username = ? ,
- password = ? ,
- hash = ?
- WHERE file_id= ? ";
-
- $handle = $self->{'db'}->{'DB_WRITE'}->prepare($query);
- $handle->execute( $self->{'size'} , $self->{'licence'} , $self->{'username'} , $self->{'password'} , $self->{'hash'} , $self->{'file_id'} ) or return -1;
-
- return -2 if( $self->SUPER::commit < 0 );
-
- return 1;
-}
-
-sub get_title
-{
- my $self = shift;
- return( $self->{'filename'} );
-}
-
-sub get_filename
-{
- my $self = shift;
- return( $self->{'filename'} );
-}
-
-sub set_licence
-{
- my $self = shift;
- my $licence = shift;
- $self->{'licence'} = quotemeta( $licence );
-
- return 1;
-}
-
-sub get_licence
-{
- my $self = shift;
-
- return( Vhffs::Functions::stripslashes( $self->{'licence'} ) );
-}
-
-sub set_size
-{
- my $self = shift;
- my $size = shift;
-
- return -1 if( ! defined ( $size =~ /^[\d]+$/ ) );
-
- $self->{'size'} = $size;
-
- return 1;
-}
-
-sub get_size
-{
- my $self = shift;
- return( $self->{'size'} );
-}
-
-sub set_type
-{
- my $self = shift;
- my $type = shift;
-
- return -1 if( ! defined ( $type =~ /^[a-zA-Z0-9\.]*$]/ ) );
-
- $self->{'type'} = $type;
- return 1;
-}
-
-sub get_type
-{
- my $self = shift;
- return( $self->{'type'} );
-}
-
-sub get_creating_date
-{
- my $self = shift;
- return( $self->{'creating_date'} );
-}
-
-sub get_end_date
-{
- my $self = shift;
- return $self->{'end_date'};
-}
-
-sub set_end_date
-{
- my $self = shift;
- #####FIXME
- return 1;
-}
-
-sub get_username
-{
- my $self = shift;
- return( $self->{'username'} );
-}
-
-sub set_username
-{
- my $self = shift;
- my $username = shift;
-
- return -1 if( ! ( $username =~ /^[a-zA-Z0-9\-]+$/ ) );
-
- $self->{'username'} = $username;
- return 1;
-}
-
-sub get_password
-{
- my $self = shift;
- return( $self->{'password'} );
-}
-
-sub set_password
-{
- use Vhffs::Functions;
- my $self = shift;
- my $password = shift;
-
- $self->{'password'} = Vhffs::Functions::password_encrypt( $password );
- return 1;
-}
-
-sub set_hash
-{
- my $self = shift;
- my $hash = shift;
-
- return 1 if( ! defined $hash );
- return -2 if( ! defined ( $hash =~ /[a-zA-Z0-9\d\s\-]*/ ) );
-
- $self->{'hash'} = $hash;
- return 1;
-}
-
-sub get_hash
-{
- my $self = shift;
- return( $self->{'hash'} );
-}
-
-
-sub get_owneruid
-{
- my( $self ) = @_;
- return $self->{'owner_uid'};
-}
-
-sub get_ownergid
-{
- my $self = shift;
- return $self->{'owner_gid'};
-}
-
-sub getall
-{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
-
- my $query;
- my $request;
-
- my $objs;
- my $result;
- my $tmp;
-
-
- $query = "SELECT * FROM vhffs_largefile lf, vhffs_object o WHERE lf.object_id = o.object_id ";
- $query.= " AND o.state='".$state."'" if( defined $state);
- $query.= " AND lf.owner_gid='".$group->get_gid."'" if( defined $group);
- $query.= " AND lf.filename LIKE '%".$name."%'" if( defined $name);
- $query .= " ORDER BY lf.filename";
-
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
-
- my $rows = $request->execute;
-
- return undef if( $rows == 0);
-
- while( $result = $request->fetchrow_hashref )
- {
- $group = new Vhffs::Group( $vhffs , undef , $result->{'owner_uid'} , $result->{'owner_gid'} );
-
- $tmp = new Vhffs::Services::LargeFile( $vhffs , $result->{'filename'} , undef , $group );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
- }
- return $objs;
-}
-
-
-
-sub getall_by_group
-{
- my $vhffs = shift;
- my $group = shift;
-
- my $query;
- my $request;
-
- my $objs;
- my $result;
- my $tmp;
-
- return undef if( $group->fetch < 1 );
-
- $query = "SELECT lf.filename, lf.object_id FROM vhffs_largefile lf, vhffs_object o WHERE lf.object_id = o.object_id AND lf.owner_gid='".$group->get_gid."'";
-
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- return undef if( $rows == 0);
-
- $result = $request->fetchall_hashref( 'filename' );
-
- foreach( keys %{$result} )
- {
- $tmp = new Vhffs::Services::LargeFile( $vhffs , $_ , undef , $group);
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
- }
- return $objs;
-}
-
-
-
-
-sub set_user
-{
- my ( $self , $user ) = @_;
- $self->{'user'} = $user;
-}
-
-sub set_group
-{
- my ( $self , $group ) = @_;
- $self->{'group'} = $group;
-}
-
-
-1;
-
-__END__
-
-=head1 NAME
-Vhffs::LargeFile - Manage hosted files in VHFFS
-
-=head1 SYNOPSIS
-
- use Vhffs::Main;
- use Vhffs::User;
- use Vhffs::Group;
- use Vhffs::LargeFile;
-
- $vhffs = init Vhffs::Main;
- my $user = new Vhffs::User( $vhffs , 'myuser' , '401' );
- my $group = new Vhffs::Group( $vhffs , 'mygroup' , '401' );
- my $file = new Vhffs::LargeFile( $vhffs , 'filename' , $user , $group );
-
- if( $file->fetch < 0 )
- {
- print "This file does not exist for this group or error in parameters";
- exit 1;
- }
- if( $file->create > 0 )
- {
- print "File is now created";
- }
-
-=head1 DESCRIPTION
-
-Manage hosted files in VHFFS platform. Methods returns negative
-values if error or positive value (most of case 1).
-The object contains at least type and filename. After, you can add
-licence or size informations.
-
-The username and password properties are present only if the
-administrator want use an FTP server for each files. For example, for
-uploading each files, the user need an FTP access and the account is present
-in each files description.
-
-=head1 METHODS
-
-new( Vhffs::Main , "filename" , Vhffs::User , Vhffs::Group )
-
-delete()
-
-create()
-
-fetch()
-
-commit()
-
-get_title()
-
-get_filename()
-
-get_licence()
-
-set_licence( "mylicence" )
-
-set_size( "100" )
-
-get_size()
-
-set_type( "mytype" )
-
-get_type( )
-
-get_creating_date()
-
-get_end_date()
-
-set_end_date( "date" )
-
-get_username()
-
-set_username( "myusername" )
-
-get_password()
-
-set_password( "mypassword" )
-
-set_hash()
-
-get_hash()
-
-get_owneruid()
-
-get_ownergid()
-
-getall( Vhffs::Main , $state( in Vhffs::Constants) , "filename" , Vhffs::Group )
-
-getall_by_group( Vhffs::Main , Vhffs::Group )
-
-set_user( Vhffs::User )
-
-set_group( Vhffs::Group )
-
-=head1 SEE ALSO
-
-Vhffs::Main, Vhffs::Conf
-
-=head1 AUTHOR
-
- Julien Delange < dieu at gunnm dot org>
-
-=head1 COPYRIGHT
- (c) Julien Delange
-
Modified: trunk/vhffs-api/src/Vhffs/Services/Mail.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Mail.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Mail.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -35,50 +35,22 @@
# Author : soda < dieu at gunnm dot org >
-package Vhffs::Services::Mail;
+=pod
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
+=head1 SYNOPSYS
+Vhffs::Services::Mail - Handle mail domains in VHFFS.
-# Create a new instance of the current class
-sub new
-{
- my $main;
- my $domain;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
+=head2 METHODS
- ( $class , $main , $domain , $user , $group ) = @_;
-
- $this = {};
-
- #If the domain is not specified by argument, return an undef instance
- return undef if ( ! defined $domain );
-
- #return undef if( $user->fetch < 0);
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- return undef if( ! ( $domain =~ /^[a-zA-Z0-9\-\.]+$/) );
- return undef if( length( $domain ) < 5 );
-
- $this->{'domain'} = $domain if ( defined $domain );
-
- # $this->{'owner_uid'} = $user->{'uid'} if ( defined $user->{'uid'} );
- $this->{'user'} = $user;
- $this->{'group'} = $group;
+=cut
- $this->{'boxes'} = {};
-
- bless( $this , $class );
-
- return $this;
-}
+package Vhffs::Services::Mail;
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
+
sub delete
{
my $self = shift;
@@ -87,15 +59,15 @@
$query = "DELETE FROM vhffs_mxdomain WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
$query = "DELETE FROM vhffs_boxes WHERE domain='".$self->{'domain'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
$query = "DELETE FROM vhffs_forward WHERE domain='".$self->{'domain'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
@@ -107,124 +79,49 @@
return 1;
}
+=pod
+=head2 create
-# Create the object in the database
-sub create
-{
- my $self = shift;
+ my $mail = Vhffs::Services::Mail::create($main, $domain, $description, $user, $group);
- # If user or group^does not exists in the VHFFS database, we return -1, the object is not created
- return -1 if( $self->{'user'}->fetch < 0 );
- return -1 if( $self->{'group'}->fetch < 0 );
+Create a new domain mail in database and return corresponding object.
- $self->{'owner_uid'} = $self->{'user'}->get_uid();
+=cut
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_mxdomain WHERE domain='" . $self->{'domain'} . "'");
- my $rows = $request->execute;
- return -2 if ( $rows != 0 );
+sub create {
+ my ($main, $domain, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(Vhffs::Functions::check_domain_name($domain));
- my $oid = $self->SUPER::create();
- return -3 if ( $oid lt 0 );
+ my $mail;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- #Get the max mx_id and compute the new mx_id
- my $mx_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(mxdomain_id) FROM vhffs_mxdomain");
- $mx_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $mx_id++;
+ eval {
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_MAIL);
- my $domainhash = Vhffs::Functions::hash_mxdomain( $self->{'domain'} );
+ die('Unable to create parent object') unless(defined $parent);
- #Finally, create the object in the database
- my $query = "INSERT INTO vhffs_mxdomain VALUES( '".$mx_id."' , '".$self->{'domain'} . "', 'exim' , '".$domainhash."' , '0' , '' , '".$self->{'user'}->get_uid."' , '".$self->{'group'}->get_gid."', '$oid' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $sql = 'INSERT INTO vhffs_mxdomain(domain, unix_user, boxes_path, max_popbox, catchall, owner_uid, owner_gid, object_id) VALUES(?, \'exim\', ?, 0, \'\', ?, ?, ?)';
+ my $domain_hash = Vhffs::Functions::hash_mxdomain($domain);
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($domain, $domain_hash, $user->get_uid(), $group->get_gid, $parent->get_oid);
- return $mx_id;
-}
+ $dbh->commit;
+ $mail = get_by_mxdomain($main, $domain);
+ };
-
-# Get all data about this mail object in the databse
-# Informations about the mail domain is stored in $ref->
-# Inforations about forwards are stored in $ref->{'forward'}
-# Informations about mailboxes are stored in $ref->{'boxes'}
-sub fetch
-{
- my $self = shift;
-
- my ($request , $result , $name , $request2 , $result2 , $names);
-
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_mxdomain where domain='".$self->{'domain'}."'") or return -1;
- return -3 if( $request->execute() <= 0 );
- $result = $request->fetchrow_hashref();
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
+ if($@) {
+ warn "Unable to create mail domain $domain: $@\n";
+ $dbh->rollback;
}
-
- #Fetch the object part( SUPER class)
- return -2 if ($self->SUPER::fetch < 0 );
-
- ###########################
- #Get all Boxes
- ###########################
- #So, we will have :
- # - $ref->{'boxes'}{$local_part}{'domain'}
- # - $ref->{'boxes'}{$local_part}{'local_part'}
- # - $ref->{'boxes'}{$local_part}{'domain_hash'}
- # - $ref->{'boxes'}{$local_part}{'password_hash'}
- # - $ref->{'boxes'}{$local_part}{'mbox_name'}
- # - $ref->{'boxes'}{$local_part}{'password'}
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_boxes where domain='".$self->{'domain'}."'") or return -1;
- $request->execute() or return -3;
- $result = $request->fetchall_hashref('local_part');
- $self->{'boxes'} = {};
- foreach $name ( keys %{$result} )
- {
- foreach( keys %{$result->{$name}} )
- {
- $self->{'boxes'}{$name}{$_} = $result->{$name}{$_};
- }
- $self->{'boxes'}{$name}{'password'} = $self->{'boxes'}{$name}{'password_hash'};
- $self->{'boxes'}{$name}{'changed'} = 0;
- $self->{'boxes'}{$name}{'nospam'} = 1 if( $self->{'boxes'}{$name}{'nospam'} eq 't' );
- $self->{'boxes'}{$name}{'novirus'} = 1 if( $self->{'boxes'}{$name}{'novirus'} eq 't' );
-
- }
- ######### End of boxes fetching ########
-
-
-
-
- ######################
- #Get All forwarders
- ######################
- #So, we will have :
- # - $ref->{'forward'}{$local_part}{'domain'}
- # - $ref->{'forward'}{$local_part}{'local_part'}
- # - $ref->{'forward'}{$local_part}{'remote_name'}
- # - $ref->{'forward'}{$local_part}{'password'}
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_forward where domain='".$self->{'domain'}."'") or return -1;
- $request->execute() or return -3;
- $result = $request->fetchall_hashref('local_part');
-
- $self->{'forward'} = {};
- foreach $name ( keys %{$result} )
- {
- foreach( keys %{$result->{$name}} )
- {
- $self->{'forward'}{$name}{$_} = $result->{$name}{$_};
- }
- $self->{'forward'}{$name}{'changed'} = 0;
- }
- ######### End of forward fetching ######
-
- return 1;
+ return $mail;
}
-
# Commit all changes of the current instance in the database
sub commit
{
@@ -237,71 +134,9 @@
$self->{'catchall'} = "" if( ! defined $self->{'catchall'} );
$query = "UPDATE vhffs_mxdomain SET catchall='".$self->{'catchall'}."' WHERE domain='".$self->{'domain'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ $request = $self->{'db'}->prepare( $query );
$request->execute;
- #COMMIT THE BOX PART
- foreach $name ( keys %{$self->{'boxes'}} )
- {
- next if( ( defined $self->{'boxes'}{$name}{'changed'} ) && ( $self->{'boxes'}{$name}{'changed'} == 0 ) );
-
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_boxes WHERE domain='" . $self->{'domain'} . "' AND local_part='".$name."'");
- $rows = $request->execute;
-
- #If boxes does not have nospam or novirus attribute
- #so, we set t to 0
- # This will create the attribute and initialize it
- $self->{'boxes'}{$name}{'novirus'} = 0 if( ! defined( $self->{'boxes'}{$name}{'novirus'} ));
- $self->{'boxes'}{$name}{'nospam'} = 0 if( ! defined( $self->{'boxes'}{$name}{'nospam'} ));
-
- if( $rows == 0 ) #PopBox NOT created, we must create it
- {
- my $domainhash = Vhffs::Functions::hash_mxdomain( $self->{'domain'} );
- my $userhash = Vhffs::Functions::hash_popuser( $name );
- my $passwordhash = "";
-
- $query = "INSERT INTO vhffs_boxes(domain,local_part,domain_hash,password_hash,mbox_name,password,nospam,novirus) VALUES('". $self->{'domain'} ."' , '". $name ."' , '". $domainhash ."' , '".$self->{'boxes'}{$name}{'password'}."' , '".$userhash."' , '' ,'".$self->{'boxes'}{$name}{'nospam'}."' , '".$self->{'boxes'}{$name}{'novirus'}."')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
- }
- else #Popbox already created
- {
-
- $query = "UPDATE vhffs_boxes SET nospam='".$self->{'boxes'}{$name}{'nospam'}."', novirus='".$self->{'boxes'}{$name}{'novirus'}."', password_hash='".$self->{'boxes'}{$name}{'password'}."' WHERE local_part='".$self->{'boxes'}{$name}{'local_part'}."' AND domain='".$self->{'domain'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
- }
- }
-
-
- #COMMIT THE FORWARD PART
- foreach $name ( keys %{$self->{'forward'}} )
- {
- next if( ( defined $self->{'forward'}{$name}{'changed'} ) && ( $self->{'forward'}{$name}{'changed'} == 0 ) );
-# next if( ! defined $self->{'forward'}{$name}{'remote'} );
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_forward WHERE domain='" . $self->{'domain'} . "' AND local_part='".$name."'");
- $rows = $request->execute;
-
- if( $rows == 0 ) #PopBox NOT created, we must create it
- {
- $password = "";
-# $query = "INSERT INTO vhffs_forward VALUES('". $self->{'domain'} ."' , '". $name ."' , '". $self->{'forward'}{$name}{'remote_name'} ."' , '".$self->{'forward'}{$name}{'password'}."')";
- $query = "INSERT INTO vhffs_forward VALUES('". $self->{'domain'} ."' , '". $name ."' , '". $self->{'forward'}{$name}{'remote_name'} ."' , '4pr1lsUx')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
- }
- else #Popbox already created
- {
- $query = "UPDATE vhffs_forward SET remote_name='".$self->{'forward'}{$name}{'remote_name'}."' WHERE local_part='".$self->{'forward'}{$name}{'local_part'}."' AND domain='".$self->{'domain'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
- }
- }
-
-
-
-
-
return -3 if( $self->SUPER::commit < 0 );
return 1;
@@ -313,9 +148,14 @@
my $local_part = shift;
my $destination = shift;
+ return -1 unless( defined($self->{foward}{$local_part}) && defined($local_part) && defined($destination) && Vhffs::Functions::valid_mail( $destination ) );
+ my $sql = 'UPDATE vhffs_forward SET remote_name = ? WHERE local_part = ? AND domain = ?';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($destination, $local_part, $self->{domain}) or return -1;
+
$self->{'forward'}{$local_part}{'remote_name'} = $destination;
- $self->{'forward'}{$local_part}{'changed'} = 1;
return 1;
}
@@ -326,12 +166,17 @@
my $local_part = shift;
my $password = shift;
- return -1 if( ! defined $self->{'boxes'}{$local_part} );
- return -1 if( ! ( $password =~ /^[a-zA-Z0-9\_\-]+$/ ) );
+ return -1 unless( defined( $self->{'boxes'}{$local_part} ) && ( $password =~ /^[a-zA-Z0-9\_\-]+$/ ) );
- $self->{'boxes'}{$local_part}{'password'} = crypt_pwd( $password );
- $self->{'boxes'}{$local_part}{'changed'} = 1;
+ $password = crypt_pwd( $password );
+ $self->{'boxes'}{$local_part}{'password'} = $password;
+
+ my $sql = 'UPDATE vhffs_boxes SET password = ? WHERE local_part = ? AND domain = ?';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($password, $local_part, $self->{domain}) or return -1;
+
return 1;
}
@@ -345,13 +190,19 @@
return -1 if( ! defined $self->{'boxes'}{$local_part} );
- if( ! defined( $self->{'boxes'}{$local_part}{'nospam'} ) )
- {
- $self->{'boxes'}{$local_part}{'nospam'} = 0;
- }
+ my $nospam = $self->{boxes}{$local_part}{nospam};
+ if( defined( $nospam ) ) {
+ $nospam = ( $nospam + 1 ) % 2;
+ } else {
+ $nospam = 1;
+ }
+ $self->{boxes}{$local_part}{nospam} = $nospam;
- $self->{'boxes'}{$local_part}{'nospam'} = ( ( $self->{'boxes'}{$local_part}{'nospam'} + 1 ) % 2 );
- $self->{'boxes'}{$local_part}{'changed'} = 1;
+ my $sql = 'UPDATE vhffs_boxes SET nospam = ? WHERE domain = ? AND local_part = ?';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($nospam, $self->{domain}, $local_part) or return -1;
+
return 1;
}
@@ -364,54 +215,91 @@
return -1 if( ! defined $self->{'boxes'}{$local_part} );
- if( ! defined( $self->{'boxes'}{$local_part}{'novirus'} ) )
- {
- $self->{'boxes'}{$local_part}{'novirus'} = 0;
- }
+ my $novirus = $self->{boxes}{$local_part}{novirus};
+ if(defined $novirus) {
+ $novirus = ($novirus + 1) % 2;
+ } else {
+ $novirus = 1;
+ }
- $self->{'boxes'}{$local_part}{'novirus'} = ( ( $self->{'boxes'}{$local_part}{'novirus'} + 1 ) % 2 );
- $self->{'boxes'}{$local_part}{'changed'} = 1;
+ $self->{'boxes'}{$local_part}{'novirus'} = $novirus;
+
+ my $sql = 'UPDATE vhffs_boxes SET novirus = ? WHERE domain = ? AND local_part = ?';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($novirus, $self->{domain}, $local_part) or return -1;
+
return 1;
}
+=pod
+=head2 addforward
+ die("Unable to add forward $local_part\n") unless($mail->addforward($local_part, $remote_address) > 0);
+
+Add a forward from $local_part@$mail->get_domain to $remote_address.
+
+=cut
+
sub addforward
{
my $self = shift;
my $name = shift;
my $remote = shift;
- return -1 if( ( ! defined $name ) || ( ! defined $remote ) );
- return -1 if( ! ( $name =~ /^[a-z0-9\_\-\.]+$/ ) );
- return -1 if( Vhffs::Functions::valid_mail( $remote ) != 1 );
-
+ return -1 unless(defined($name) && defined($remote) && $name =~ /^[a-z0-9\_\-\.]+$/ && Vhffs::Functions::valid_mail( $remote ) );
return -2 if( ( defined ( $self->{'forward'}{$name} ) ) || ( defined( $self->{'boxes'}{$name} ) ) );
+ my $sql = 'INSERT INTO vhffs_forward(domain, local_part, remote_name, password) VALUES(?, ?, ?, \'4pr1lsUx\')';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($self->{domain}, $name, $remote) or return -1;
+
$self->{'forward'}{$name}{'local_part'} = $name;
$self->{'forward'}{$name}{'domain'} = $self->{'domain'};
$self->{'forward'}{$name}{'remote_name'} = $remote;
- #self->{'forward'}{$name}{'changed'} = 1;
+ $self->{forward}{$name}{password} = '4pr1lsUx';
return 1;
}
+=pod
+=head2 addbox
+
+ die("Unable to create box\n") unless($mail->addbox($local_part, $password));
+
+Add a new mailbox to the mail domain.
+
+=cut
+
sub addbox
{
my $self = shift;
my $name = shift;
my $password = shift;
- return -1 if( ( ! defined $password ) || ( ! defined $name ) );
- return -1 if( ! ( $name =~ /^[a-z0-9\_\-]+$/ ) );
- return -1 if( ! ( $password =~ /^[a-zA-Z0-9\_\-]+$/ ) );
- return -2 if( ( defined ( $self->{'boxes'}{$name} ) ) || ( defined( $self->{'forward'}{$name} ) ) );
+ return -1 unless(defined($password) && defined($name) && $name =~ /^[a-z0-9\_\-]+$/ && $password =~ /^[a-zA-Z0-9\_\-]+$/);
+ return -2 if( ( defined ( $self->{'boxes'}{$name} ) ) || ( defined( $self->{'forward'}{$name} ) ) );
+ $password = crypt_pwd( $password );
+ my $domainhash = Vhffs::Functions::hash_mxdomain($self->{domain});
+ my $userhash = Vhffs::Functions::hash_popuser( $name );
$self->{'boxes'}{$name}{'local_part'} = $name;
- $self->{'boxes'}{$name}{'password'} = crypt_pwd( $password );
+ $self->{'boxes'}{$name}{'password'} = $password;
$self->{'boxes'}{$name}{'domain'} = $self->{'domain'};
+ $self->{boxes}{$name}{domain_hash} = $domainhash;
+ $self->{boxes}{$name}{password_hash} = $password;
+ $self->{boxes}{$name}{novirus} = 0;
+ $self->{boxes}{$name}{nospam} = 0;
+ $self->{boxes}{$name}{mbox_name} = $userhash;
+ my $sql = 'INSERT INTO vhffs_boxes(domain, local_part, domain_hash, password_hash, mbox_name, password, nospam, novirus) VALUES(?, ?, ?, ?, ?, \'\', FALSE, FALSE)';
+ my $dbh = $self->{db};
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($self->{domain}, $name, $domainhash, $password, $userhash) or return -3;
+
return 1;
}
@@ -420,13 +308,12 @@
my $self = shift;
my $name = shift;
- return -1 if( ! defined $name );
- return -1 if( ! ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
+ return -1 unless( defined $name && ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
undef $self->{boxes}{$name};
my $query = "DELETE FROM vhffs_boxes WHERE local_part='".$name."' AND domain='".$self->{'domain'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $request = $self->{'db'}->prepare( $query );
$request->execute;
}
@@ -437,13 +324,11 @@
my $self = shift;
my $name = shift;
- return -1 if( ! defined $name );
-
+ return -1 unless( defined $name && ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
undef $self->{forward}{$name};
- return -1 if( ! ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
my $query = "DELETE FROM vhffs_forward WHERE local_part='".$name."' AND domain='".$self->{'domain'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $request = $self->{'db'}->prepare( $query );
$request->execute;
}
@@ -470,7 +355,7 @@
my $self = shift;
my $name = shift;
return -1 if( ! ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_forward where domain='".$self->{'domain'}."' AND local_part='".$name."'") or return -1;
+ my $request = $self->{'db'}->prepare("SELECT * FROM vhffs_forward where domain='".$self->{'domain'}."' AND local_part='".$name."'") or return -1;
return 1 if( $request->execute() > 0 );
return 0;
}
@@ -480,16 +365,13 @@
my $self = shift;
my $name = shift;
return -1 if( ! ( $name =~ /^[a-zA-Z0-9\_\-]+$/ ) );
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_boxes where domain='".$self->{'domain'}."' AND local_part='".$name."'") or return -1;
+ my $request = $self->{'db'}->prepare("SELECT * FROM vhffs_boxes where domain='".$self->{'domain'}."' AND local_part='".$name."'") or return -1;
return 1 if( $request->execute() > 0 );
return 0;
}
+#Following function is needed by courier to fetch accounts
-
-
-#Following functions is needed by courier to fetch accounts
-
sub crypt_pwd
{
my $clear = shift;
@@ -571,8 +453,8 @@
sub get_unixuser
{
- my( $self , $value ) = @_;
- $self->{'unix_user'} = $value;
+ my $self = shift;
+ return $self->{'unix_user'};
}
sub set_catchall
@@ -612,33 +494,92 @@
}
+=pod
+
+=head2 get_by_mxdomain
+
+ my $mail = Vhffs::Services::get_by_mxdomain($main, $domain);
+ die("Mail domain $domain not found\n") unless(defined $mail);
+
+Fetches the mail services whose domainname is $domain.
+
+=cut
+
+sub get_by_mxdomain {
+ my ($main, $domain) = @_;
+
+ my $sql = 'SELECT m.mxdomain_id, m.owner_gid, m.domain, m.unix_user, m.boxes_path, m.max_popbox, m.catchall, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_mxdomain m INNER JOIN vhffs_object o ON o.object_id = m.object_id WHERE domain = ?';
+ my $dbh = $main->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $domain));
+
+ # We now need the boxes and forwards
+ $sql = 'SELECT domain, local_part, domain_hash, password_hash, mbox_name, password_hash AS password, nospam, novirus FROM vhffs_boxes WHERE domain = ?';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($domain);
+ my $boxes = $sth->fetchall_hashref('local_part');
+
+ $sql = 'SELECT domain, local_part, remote_name, password FROM vhffs_forward WHERE domain = ?';
+ $sth = $dbh->prepare($sql);
+ $sth->execute($domain);
+ my $forwards = $sth->fetchall_hashref('local_part');
+
+
+ return _new Vhffs::Services::Mail($main, @params, $boxes, $forwards);
+
+}
+
+sub _new {
+ my ($class, $main, $mxdomain_id, $owner_gid, $domain, $unix_user, $boxes_path, $max_popbox, $catchall, $oid, $owner_uid, $date_creation, $state, $description, $boxes, $forwards) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_MAIL);
+ return undef unless defined($self);
+
+ $self->{mxdomain_id} = $mxdomain_id;
+ $self->{owner_gid} = $owner_gid;
+ $self->{domain} = $domain;
+ $self->{unix_user} = $unix_user;
+ $self->{boxes_path} = $boxes_path;
+ $self->{max_popbox} = $max_popbox;
+ $self->{catchall} = $catchall;
+ $self->{boxes} = $boxes;
+ $self->{forward} = $forwards;
+
+ return $self;
+}
+
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
+ my $sql;
my $request;
+ my @params;
- my $objs;
+ my $objs = [];
my $result;
my $tmp;
- $query = "SELECT m.domain FROM vhffs_mxdomain m, vhffs_object o WHERE m.object_id = o.object_id";
- $query .= " AND o.state='".$state."'" if( defined $state );
- $query .= " AND m.domain LIKE '%".$name."%'" if( defined $name );
- $query .= " AND m.owner_gid='".$group->get_gid."'" if( defined $group );
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ $sql = 'SELECT m.domain FROM vhffs_mxdomain m, vhffs_object o WHERE m.object_id = o.object_id';
+ if(defined $state) {
+ $sql .= ' AND o.state=?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $sql .= ' AND m.domain LIKE ?';
+ push(@params, '%'.$name.'%');
+ }
+ if(defined $group) {
+ $sql .= ' AND m.owner_gid= ?';
+ push(@params, $group->get_gid);
+ }
+ $request = $vhffs->{'db'}->prepare( $sql );
+ my $rows = $request->execute(@params);
- return undef if( $rows <= 0);
+ return undef if( !$rows );
while( $result = $request->fetchrow_hashref() )
{
- $tmp = new Vhffs::Services::Mail( $vhffs , $result->{'domain'} );
- push( @{$objs} , $tmp ) if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
+ push( @$objs, Vhffs::Services::Mail::get_by_mxdomain( $vhffs, $result->{domain} ) );
}
return $objs;
}
Modified: trunk/vhffs-api/src/Vhffs/Services/MailUser.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/MailUser.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/MailUser.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -54,7 +54,6 @@
package Vhffs::Services::MailUser;
-use base qw(Vhffs::Object);
use strict;
use DBI;
use Vhffs::User;
@@ -69,60 +68,28 @@
my $this = {};
- # Instance it as a main object to have links with the database
- $this = $class->SUPER::new( $vhffs , 1 , '401' );
+ my $config = $vhffs->get_config->get_service('mailuser');
+ return -1 unless( defined $config && (defined $config->{activate} && $config->{activate} eq 'yes' ) );
+ $this->{main} = $vhffs;
+ $this->{config} = $config;
- my $config = $vhffs->get_config->get_service( "mailuser");
- return -1 if( ! defined $config );
- return -1 if( ( ! defined $config->{activate} ) || ( $config->{activate} ne "yes" ) );
+ return -1 unless( defined $user );
+ $this->{part} = $user->get_username;
- if( $user->fetch < 0 )
- {
- return -1;
- }
- else
- {
- $this->{part} = $user->get_username;
- }
+ return -2 unless( defined $config->{domain} );
+ $this->{domain} = $config->{domain};
- if( defined $config->{domain} )
- {
- $this->{domain} = $config->{domain};
- }
- else
- {
- return -2;
- }
+ # Fetches the owner of the mail domain
+ return -3 unless( defined $config->{user} );
+ my $wuser = Vhffs::User::get_by_username( $vhffs , $config->{user} );
+ return -4 unless( defined $wuser );
+ $this->{wuser} = $wuser;
- if( defined $config->{user} )
- {
- my $wuser = new Vhffs::User( $vhffs , $config->{user} , '401' );
- if( $wuser->fetch )
- {
- $this->{wuser} = $wuser;
- }
- else
- {
- return -4;
- }
- }
- else
- {
- return -3;
- }
+ # Fetches the mail domain defined in config
+ my $mail_service = Vhffs::Services::Mail::get_by_mxdomain($vhffs, $this->{domain});
+ return -5 unless(defined $mail_service);
+ $this->{mail_service} = $mail_service;
- my $object = new Vhffs::Services::Mail( $vhffs, $this->{domain} , $this->{wuser} , undef );
-
- if( $object->fetch < 0 )
- {
- return -5;
- }
- else
- {
- $this->{object} = $object;
- }
-
-
bless( $this , $class );
return $this;
@@ -131,57 +98,54 @@
sub available
{
my $self = shift;
- my $config = $self->{main}->get_config->get_service( "mailuser");
- my $user = new Vhffs::User( $self->{main} , $self->{part} , '401' );
- return 0 if( $user->fetch < 0 );
- return 1 if( ( ! defined $config->{groupneeded} ) || ( $config->{groupneeded} ne "yes" ) || ( $user->have_activegroups > 0 ) );
+ my $user = Vhffs::User::get_by_username( $self->{main} , $self->{part} );
+ return 0 unless( defined $user );
+ return 1 if( ( ! defined $self->{config}->{groupneeded} ) || ( $self->{config}->{groupneeded} ne "yes" ) || ( $user->have_activegroups > 0 ) );
return 0;
}
sub exists
{
my $self = shift;
- return $self->{object}->exists( $self->{part} );
+ return $self->{mail_service}->exists( $self->{part} );
}
sub exists_forward
{
my $self = shift;
- return $self->{object}->exists_forward( $self->{part} );
+ return $self->{mail_service}->exists_forward( $self->{part} );
}
sub exists_box
{
my $self = shift;
- return $self->{object}->exists_box( $self->{part} );
+ return $self->{mail_service}->exists_box( $self->{part} );
}
sub use_nospam
{
my $self = shift;
- return $self->{object}->use_nospam( $self->{part} );
+ return $self->{mail_service}->use_nospam( $self->{part} );
}
sub use_novirus
{
my $self = shift;
- return $self->{object}->use_novirus( $self->{part} );
+ return $self->{mail_service}->use_novirus( $self->{part} );
}
sub change_spam_status
{
my $self = shift;
- $self->{object}->change_spam_status( $self->{part} );
- return -2 if( $self->{object}->commit < 0 );
+ $self->{mail_service}->change_spam_status( $self->{part} );
return 1;
}
sub change_virus_status
{
my $self = shift;
- $self->{object}->change_virus_status( $self->{part} );
- return -2 if( $self->{object}->commit < 0 );
+ $self->{mail_service}->change_virus_status( $self->{part} );
return 1;
}
@@ -193,24 +157,22 @@
if( $self->exists_box == 1 )
{
- $self->{object}->delbox( $self->{part} );
- $self->{object}->fetch;
+ $self->{mail_service}->delbox( $self->{part} );
}
- return -1 if ( $self->{object}->addforward( $self->{part} , $remote ) < 0);
- return -2 if( $self->{object}->commit < 0 );
+ return -1 if ( $self->{mail_service}->addforward( $self->{part} , $remote ) < 0);
}
sub delforward
{
my $self = shift;
- $self->{object}->delforward( $self->{part} );
+ $self->{mail_service}->delforward( $self->{part} );
}
sub delbox
{
my $self = shift;
- $self->{object}->delbox( $self->{part} );
+ $self->{mail_service}->delbox( $self->{part} );
}
sub addbox
@@ -221,12 +183,10 @@
if( $self->exists_forward == 1 )
{
- $self->{object}->delforward( $self->{part} );
- $self->{object}->fetch;
+ $self->{mail_service}->delforward( $self->{part} );
}
- return -1 if( $self->{object}->addbox( $self->{part} , $password ) < 0);
- return -2 if( $self->{object}->commit < 0 );
+ return -1 if( $self->{mail_service}->addbox( $self->{part} , $password ) < 0);
}
Modified: trunk/vhffs-api/src/Vhffs/Services/Mailing.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Mailing.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Mailing.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,188 +33,136 @@
# This file is a part of VHFFS4 software, a hosting platform suite
# Please respect the licence of this file and whole program
-# Author : soda < god at gunnm dot org >
+=pod
-package Vhffs::Services::Mailing;
+=head1 NAME
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
+Vhffs::Services::Mailing - Handle mailing lists in VHFFS.
+=head1 SYNOPSIS
-# Create a new instance of the current class
-sub new
-{
- my $main;
- my $domain;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
- my $local;
+TODO
- #( $class , $main , $domain , $user , $group ) = @_;
-
- $class = shift;
- $main = shift;
- $local = shift;
- $domain = shift;
- $user = shift;
- $group = shift;
+=head1 METHODS
- $this = {};
+=cut
- #If the domain is not specified by argument, return an undef instance
- return undef if ( ! defined $domain );
- return undef if ( ! defined $local );
+package Vhffs::Services::Mailing;
- #return undef if( $user->fetch < 0);
- $this = $class->SUPER::new( $main , 1 , '401' );
-
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
- return undef if( ! ( $local =~ /^[a-zA-Z0-9\-\.]+$/ ) );
- return undef if( ! ( $domain =~ /^[a-zA-Z0-9\-\.]+$/ ) );
- $this->{'domain'} = $domain if ( defined $domain );
- $this->{'local_part'} = $local if ( defined $local );
+=pod
+=head2 create
- $this->{'user'} = $user if( defined $user );
- $this->{'group'} = $group if( defined $group);
+ my $ml = Vhffs::Services::Mailing::create($local, $domain, $admin, $description, $user, $group);
+ die('Unable to create list') unless defined $ml;
- bless( $this , $class );
+Creates a new mailing list in database and returns the corresponding fully functional object.
- return $this;
-}
-
-
-# Create the object in the database
+=cut
sub create
{
- my $self = shift;
- my $query;
- my $request;
- my $rows;
+ my ($main, $local, $domain, $admin, $description, $user, $group) = @_;
+
+ return undef unless(defined $user && defined $group);
+ return undef unless($local =~ /^[a-z0-9\_\-]+$/);
+ return undef unless(Vhffs::Functions::check_domain_name($domain));
+ $admin = $user->get_mail() unless(defined $admin);
- $self->{'admin'} = "nobody\@nobody.com" if( ! defined $self->{admin} );
+ my $ml;
- return -1 if( ! defined $self->{'user'} );
- return -1 if( ! defined $self->{'group'} );
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- # If user or group^does not exists in the VHFFS database, we return -1, the object is not created
- return -1 if( $self->{'user'}->fetch < 0 );
- return -1 if( $self->{'group'}->fetch < 0 );
+ eval {
+ my $sql = 'SELECT mxdomain_id FROM vhffs_mxdomain WHERE domain = ? AND owner_gid = ?';
+ die('Mail domain not found') unless($domain eq $main->get_config()->get_service("mailing")->{'default_domain'} ||
+ $dbh->do($sql, undef, $domain, $group->get_gid) > 0);
- $query = "SELECT * FROM vhffs_ml where domain='".$self->{'domain'}."' AND local_part='".$self->{'local_part'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
- $rows = $request->execute() or return -3;
- return -1 if( $rows >= 1 );
-
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
- $self->{'owner_gid'} = $self->{'group'}->get_gid;
-
- if( $self->{'domain'} ne $self->{'main'}->get_config->get_service("mailing")->{'default_domain'} )
- {
- $query = "SELECT * FROM vhffs_mxdomain WHERE domain='".$self->{domain}."' AND owner_gid='".$self->{'group'}->get_gid."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- $rows = $request->execute;
- return -4 if ( $rows != 1 );
- }
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_ML);
+ die('Unable to create parent object') unless(defined $parent);
- my $oid = $self->SUPER::create();
- return -3 if ( $oid lt 0 );
+ # open sub, post members only
+ $sql = 'INSERT INTO vhffs_ml(local_part, domain, prefix, owner_uid, owner_gid, object_id, admin, open_archive, reply_to, sub_ctrl, post_ctrl) VALUES(?, ?, ?, ?, ?, ?, ?, FALSE, TRUE, ?, ? )';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($local, $domain, $local, $user->get_uid, $group->get_gid, $parent->get_oid, $admin, Vhffs::Constants::ML_SUBSCRIBE_NO_APPROVAL_REQUIRED, Vhffs::Constants::ML_POSTING_MEMBERS_ONLY);
+ $dbh->commit;
+ $ml = get_by_mladdress($main, $local, $domain);
+ };
- #Get the max mx_id and compute the new mx_id
- my $ml_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(ml_id) FROM vhffs_ml");
- $ml_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $ml_id++;
-
- #Finally, create the object in the database
- $query = "INSERT INTO vhffs_ml VALUES( '".$ml_id."' , '".$self->{'local_part'} . "', '".$self->{'domain'}."' , '".$self->{'local_part'} . "' , '".$self->{'user'}->get_uid."' , '".$self->{'group'}->get_gid."', '$oid' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ if($@) {
+ warn "Unable to create mailing list $local\@$domain: $@\n";
+ $dbh->rollback;
+ }
+ return $ml;
- $query = "INSERT INTO vhffs_ml_prefs VALUES( '".$ml_id."' , '".$self->{'admin'} . "' , '0' , '0' , '1' , '1' , '0' , '' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
-
- return $ml_id;
}
+=pod
-# Get all data about this mail object in the databse
-# Informations about the mail domain is stored in $ref->
-# Inforations about forwards are stored in $ref->{'forward'}
-# Informations about mailboxes are stored in $ref->{'boxes'}
-sub fetch
-{
- my $self = shift;
+=head2 get_by_mladdress
- my ($request , $result , $request2 , $result2 , $query );
- my $rows;
- $query = "SELECT * FROM vhffs_ml where domain='".$self->{'domain'}."' AND local_part='".$self->{'local_part'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
- $rows = $request->execute() or return -3;
- return -1 if( $rows == 0 );
- $result = $request->fetchrow_hashref();
+ my $ml = Vhffs::Services::Mailing::get_by_mladdress($main, $local_part, $domain);
+ die("Mailing list $localpart\@$domain not found\n") unless(defined $ml);
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
+Fetches the mailing list $local_part@$domain.
- #Fetch the object part( SUPER class)
- return -2 if ($self->SUPER::fetch < 0 );
+=cut
+sub get_by_mladdress {
+ my ($main, $local, $domain) = @_;
+
+ my $dbh = $main->get_db_object();
+ my $sql = 'SELECT ml.ml_id, ml.local_part, ml.domain, ml.prefix, ml.owner_gid, ml.admin, ml.open_archive, ml.reply_to, ml.sub_ctrl, ml.post_ctrl, ml.signature, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_ml ml INNER JOIN vhffs_object o ON o.object_id = ml.object_id WHERE domain = ? and local_part = ?';
+ my $sth = $dbh->prepare($sql);
+ return undef unless ($sth->execute($domain, $local) > 0);
+ my @params = $sth->fetchrow_array;
- $query = "SELECT * FROM vhffs_ml_prefs where ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
- $request->execute() or return -3;
- $result = $request->fetchrow_hashref();
+ $sql = 'SELECT sub_id, member, perm, hash, ml_id, language FROM vhffs_ml_subscribers WHERE ml_id = ?';
+ $sth = $dbh->prepare($sql);
+ $sth->execute($params[0]);
+ my $subs = $sth->fetchall_hashref('member');
+ push @params, $subs;
+ return _new Vhffs::Services::Mailing($main, @params);
+}
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
+sub _new {
+ my ($class, $main, $ml_id, $local_part, $domain, $prefix, $owner_gid, $admin, $open_archive, $reply_to, $sub_ctrl, $post_ctrl, $signature, $oid, $owner_uid, $date_creation, $state, $description, $subs) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_ML);
+ return undef unless defined($self);
- $query = "SELECT * FROM vhffs_ml_subscribers where ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
- $request->execute() or return -3;
- $result = $request->fetchall_hashref('member');
- my $v;
- foreach ( keys %{$result} )
- {
- foreach $v ( keys %{$result->{$_}} )
- {
- $self->{subs}{$_}{$v} = $result->{$_}{$v};
- }
- }
+ $self->{ml_id} = $ml_id;
+ $self->{local_part} = $local_part;
+ $self->{domain} = $domain,
+ $self->{prefix} = $prefix;
+ $self->{owner_gid} = $owner_gid;
+ $self->{admin} = $admin;
+ $self->{open_archive} = $open_archive;
+ $self->{reply_to} = $reply_to;
+ $self->{sub_ctrl} = $sub_ctrl;
+ $self->{post_ctrl} = $post_ctrl;
+ $self->{signature} = $signature;
+ $self->{subs} = $subs;
- return 1;
+ return $self;
}
-
# Commit all changes of the current instance in the database
sub commit
{
my $self = shift;
- my( $request , $result , $rows , $query , $name , $password);
+ my $sql = 'UPDATE vhffs_ml SET prefix = ?, admin = ?, open_archive = ?, reply_to = ?, sub_ctrl = ?, post_ctrl = ?, signature = ? WHERE ml_id = ?';
+ my $dbh = $self->get_main->get_db_object();
+ $dbh->do($sql, undef, $self->{prefix}, $self->{admin}, $self->{open_archive}, $self->{reply_to}, $self->{sub_ctrl}, $self->{post_ctrl}, $self->{signature}, $self->{ml_id});
-# $self->{'catchall'} = "" if( ! defined $self->{'catchall'} );
-
- $query = "UPDATE vhffs_ml SET prefix='".$self->{'prefix'}."' WHERE ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
-
- $query = "UPDATE vhffs_ml_prefs SET admin='".$self->{'admin'}."' , open_post='".$self->{'open_post'}."', open_archive='".$self->{'open_archive'}."' , reply_to='".$self->{'reply_to'}. "', moderated='".$self->{moderated}."' , open_sub='".$self->{'open_sub'}."' WHERE ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute;
-
-
return -3 if( $self->SUPER::commit < 0 );
return 1;
@@ -222,17 +170,13 @@
sub change_right_for_sub
{
- my $self = shift;
- my $subscriber = shift;
- my $right = shift;
+ my ($self, $subscriber, $right) = @_;
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
- return -1 if( ! ( $right =~ /^[0-9]+$/ ) );
-
- my $query = "UPDATE vhffs_ml_subscribers SET perm='".$right."' WHERE ml_id='".$self->{'ml_id'}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
-
+ my $sql = 'UPDATE vhffs_ml_subscribers SET perm = ? WHERE ml_id = ? AND member = ?';
+ my $dbh = $self->get_main->get_db_object();
+ # FIXME compatibility hack, we should return a boolean
+ return -1 unless($dbh->do($sql, undef, $right, $self->{ml_id}, $subscriber) > 0);
+ $self->{subs}->{$subscriber}->{perm} = $right;
return 1;
}
@@ -249,20 +193,20 @@
return -2 if( $subscriber =~ /.*\s.*/ );
return -1 if( ! ( $right =~ /^[\d]+$/ ) );
- my $query = "SELECT * FROM vhffs_ml_subscribers WHERE ml_id='".$self->{ml_id}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+ my $sql = 'INSERT INTO vhffs_ml_subscribers (member, perm, hash, ml_id, language) VALUES (?, ?, NULL, ?, NULL)';
+ my $dbh = $self->get_main->get_db_object();
+ $dbh->do($sql, undef, $subscriber, $right, $self->{ml_id}) or return -2;
- my $sid = 1;
- $query = "SELECT MAX(sub_id) FROM vhffs_ml_subscribers";
- my $resultsid = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $sid = $resultsid->[0][0] if ( defined $resultsid->[0][0] );
- $sid++;
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_ml_subscribers', undef);
- $query = "INSERT INTO vhffs_ml_subscribers VALUES( '".$sid."' , '".$subscriber."' , '".$right."' , '1' , 'nohash' , '".$self->{'ml_id'}."')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ $self->{subs}->{$subscriber} = {
+ sub_id => $id,
+ member => $subscriber,
+ perm => $right,
+ hash => undef,
+ ml_id => $self->{ml_id},
+ language => undef
+ };
return 1;
}
@@ -272,33 +216,32 @@
#add a subscriber, return undef if already exists
sub add_sub_with_reply
{
- use Digest::MD5;
my $self = shift;
my $subscriber = shift;
- my $hash;
return undef if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
+ return undef if( $subscriber =~ /.*<.*/ );
+ return undef if( $subscriber =~ /.*>.*/ );
+ return undef if( $subscriber =~ /.*\s.*/ );
- #check if sub already exists
- my $query = "SELECT * FROM vhffs_ml_subscribers WHERE ml_id='".$self->{ml_id}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
- return undef if ( $rows != 0 );
+ my $pass = Vhffs::Functions::generate_random_password;
- my $sid = 1;
- $query = "SELECT MAX(sub_id) FROM vhffs_ml_subscribers";
- my $resultsid = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $sid = $resultsid->[0][0] if ( defined $resultsid->[0][0] );
- $sid++;
+ my $sql = 'INSERT INTO vhffs_ml_subscribers(member, perm, hash, ml_id, language) VALUES(?, ?, ?, ?, NULL)';
+ my $dbh = $self->get_main->get_db_object();
+ $dbh->do($sql, undef, $subscriber, Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY, $pass, $self->{ml_id}) or return undef;
+ my $id = $dbh->last_insert_id(undef, undef, 'vhffs_ml_subscribers', undef);
- $hash = Digest::MD5::md5_hex( Vhffs::Functions::generate_random_password );
-
- $query = "INSERT INTO vhffs_ml_subscribers VALUES( '".$sid."' , '".$subscriber."' , '".Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY."' , '1' , '".$hash."' , '".$self->{'ml_id'}."')";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ $self->{subs}->{$subscriber} = {
+ sub_id => $id,
+ member => $subscriber,
+ perm => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY,
+ hash => $pass,
+ ml_id => $self->{ml_id},
+ language => undef
+ };
- return $hash;
+ return $pass;
}
@@ -308,55 +251,47 @@
my $self = shift;
my $subscriber = shift;
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
+ my $sql = 'DELETE FROM vhffs_ml_subscribers WHERE ml_id = ? AND member = ?';
+ # FIXME we should return a boolean
+ return -1 unless($self->get_main->get_db_object->do($sql, undef, $self->{ml_id}, $subscriber) > 0);
-
- return -2 if ( $self->sub_exists( $subscriber ) != 1);
-
-
- my $query = "DELETE FROM vhffs_ml_subscribers WHERE ml_id='".$self->{'ml_id'}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
+ delete $self->{subs}->{$subscriber};
return 1;
}
+# FIXME useless
sub change_state_for_sub
{
+ return change_right_for_sub(@_);
+}
+
+sub set_randompass
+{
my $self = shift;
my $subscriber = shift;
- my $right = shift;
+ my $pass = Vhffs::Functions::generate_random_password;
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
-
- return -2 if ( $self->sub_exists( $subscriber ) != 1);
-
- my $query = "UPDATE vhffs_ml_subscribers SET perm='".$right."' WHERE ml_id='".$self->{'ml_id'}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
- return 1;
+ my $sql = 'UPDATE vhffs_ml_subscribers SET hash = ? WHERE ml_id = ? AND member = ?';
+ return undef unless($self->get_main->get_db_object->do($sql, undef, $pass, $self->{ml_id}, $subscriber) > 0);
+
+ $self->{subs}->{$subscriber}->{hash} = $pass;
+ return $pass;
}
+
sub clear_hash
{
my $self = shift;
my $subscriber = shift;
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
-
- return -2 if ( $self->sub_exists( $subscriber ) != 1);
-
- my $query = "UPDATE vhffs_ml_subscribers SET hash=' ' WHERE ml_id='".$self->{'ml_id'}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
+ my $sql = 'UPDATE vhffs_ml_subscribers SET hash = NULL WHERE ml_id = ? AND member = ?';
+ # FIXME we should return a boolean
+ return -1 unless($self->get_main->get_db_object->do($sql, undef, $self->{ml_id}, $subscriber) > 0);
+
+ $self->{subs}->{$subscriber}->{hash} = undef;
return 1;
}
-
-
-
sub del_sub_with_reply
{
use Digest::MD5;
@@ -364,160 +299,82 @@
my $self = shift;
my $subscriber = shift;
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
-
-
- return -2 if ( $self->sub_exists( $subscriber ) != 1);
-
- return -3 if( ( $self->get_members->{$subscriber}{perm} != Vhffs::Constants::ML_RIGHT_SUB ) && ( $self->get_members->{$subscriber}{perm} != Vhffs::Constants::ML_RIGHT_ADMIN ) );
my $hash = Digest::MD5::md5_hex( Vhffs::Functions::generate_random_password );
- my $query = "UPDATE vhffs_ml_subscribers SET perm='".Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL."', hash='".$hash."' WHERE ml_id='".$self->{'ml_id'}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
+ my $sql = 'UPDATE vhffs_ml_subscribers SET perm = ?, hash = ? WHERE ml_id = ? AND member = ? AND perm IN (?, ?)';
+ # FIXME we should return a boolean
+ return undef unless($self->get_main->get_db_object->do($sql, undef, Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL, $hash, $self->{ml_id}, $subscriber, Vhffs::Constants::ML_RIGHT_SUB, Vhffs::Constants::ML_RIGHT_ADMIN) > 0);
+
+ $self->{subs}->{$subscriber}->{hash} = $hash;
+ $self->{subs}->{$subscriber}->{perm} = Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL;
return $hash;
}
-sub sub_exists
-{
- my $self = shift;
- my $subscriber = shift;
+# No need for delete method, foreign keys do the job
+#sub delete
+#{
+#}
- return -1 if( Vhffs::Functions::valid_mail( $subscriber ) != 1 );
-
- my $query = "SELECT * FROM vhffs_ml_subscribers WHERE ml_id='".$self->{ml_id}."' AND member='".$subscriber."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
- return -1 if ( $rows == 0 );
- return 1;
-}
-
-
-sub delete
+sub get_language_for_sub
{
- my $self = shift;
- my $query;
- my $request;
+ my ($main, $sub) = @_;
- $query = "DELETE FROM vhffs_ml_subscribers WHERE ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
- $query = "DELETE FROM vhffs_ml_prefs WHERE ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
-
- $query = "DELETE FROM vhffs_ml WHERE ml_id='".$self->{'ml_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
- $self->SUPER::delete;
-
- return 1;
+ my $sql = 'SELECT language FROM vhffs_ml_subscribers WHERE member = ?';
+ my $lang = $main->get_db_object->selectrow_array($sql, undef, $sub);
+ return $lang;
}
-
-sub get_lang_for_sub
+sub set_language_for_sub
{
- my $vhffs = shift;
- my $sub = shift;
- my $query;
- my $request;
+ my ($main, $sub, $language) = @_;
-
- $query = "SELECT lang FROM vhffs_ml_lang WHERE member='".$sub."'";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- return undef if ( $request->execute <= 0 );
-
- my $result = $request->fetchrow_arrayref;
- return $result->[0];
+ $language = 'en_US' unless( $language =~ /^\w+$/ );
+ my $sql = 'UPDATE vhffs_ml_subscribers SET language = ? WHERE member = ?';
+ $main->get_db_object->do($sql, undef, $language, $sub) or return -1;
}
-
-sub set_lang_for_sub
-{
- my $vhffs = shift;
- my $sub = shift;
- my $lang = shift;
- my $query,
- my $request;
-
- if( $lang =~ /^fr$|^fr_FR$|^french$/ )
- {
- $lang = "fr_FR";
- }
- elsif( $lang =~ /^es$|^es_ES$|^spanish$/ )
- {
- $lang = "es_ES";
- }
- else
- {
- $lang = "en_US";
- }
-
- $query = "SELECT * FROM vhffs_ml_lang WHERE member='".$sub."'";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- if ( $request->execute <= 0 )
- {
- $query = "INSERT INTO vhffs_ml_lang VALUES( '".$sub."' , '".$lang."' )";
- }
- else
- {
- $query = "UPDATE vhffs_ml_lang SET lang='".$lang."' WHERE member='".$sub."'";
- }
-
- $request = $vhffs->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -1;
-
-}
-
sub get_localpart
{
my $self = shift;
return $self->{'local_part'};
}
-
-sub get_open_archive
+sub get_signature
{
my $self = shift;
- return $self->{'open_archive'};
+ return $self->{signature};
}
-sub get_open_post
+sub set_signature
{
- my $self = shift;
- return $self->{'open_post'};
+ my ($self, $sig) = @_;
+ $sig =~ s/\r\n/\n/;
+ $self->{signature} = $sig;
}
-sub get_open_sub
+sub get_open_archive
{
my $self = shift;
- return $self->{'open_sub'};
+ return $self->{'open_archive'};
}
-
-
-sub get_replyto
+sub get_sub_ctrl
{
my $self = shift;
- return $self->{'reply_to'};
+ return $self->{'sub_ctrl'};
}
-
-sub get_url
+sub get_post_ctrl
{
my $self = shift;
- return $self->{'url'};
+ return $self->{'post_ctrl'};
}
-
-sub get_moderated
+sub get_replyto
{
my $self = shift;
- return $self->{'moderated'};
+ return $self->{'reply_to'};
}
sub get_admin
@@ -526,14 +383,12 @@
return $self->{'admin'};
}
-
sub get_domain
{
my $self = shift;
return $self->{'domain'};
}
-
sub get_prefix
{
my $self = shift;
@@ -546,7 +401,6 @@
return $self->{subs};
}
-
sub set_replytolist
{
my $self;
@@ -562,32 +416,30 @@
return 1;
}
-
-sub set_moderated
+sub set_open_archive
{
my( $self , $value ) = @_;
- $self->{'moderated'} = $value;
+ $self->{'open_archive'} = $value;
}
-sub set_open_post
+sub set_sub_ctrl
{
- my( $self , $value ) = @_;
- $self->{'open_post'} = $value;
+ my( $self , $value ) = @_;
+ return -1 unless ( $value =~ /\d+/ );
+ return -1 if( $value < Vhffs::Constants::ML_SUBSCRIBE_NO_APPROVAL_REQUIRED || $value > Vhffs::Constants::ML_SUBSCRIBE_CLOSED );
+ $self->{'sub_ctrl'} = $value;
+ return 0;
}
-
-sub set_open_archive
+sub set_post_ctrl
{
- my( $self , $value ) = @_;
- $self->{'open_archive'} = $value;
+ my( $self , $value ) = @_;
+ return -1 unless ( $value =~ /\d+/ );
+ return -1 if ( $value < Vhffs::Constants::ML_POSTING_OPEN_ALL || $value > Vhffs::Constants::ML_POSTING_ADMINS_ONLY );
+ $self->{'post_ctrl'} = $value;
+ return 0;
}
-sub set_open_sub
-{
- my( $self , $value ) = @_;
- $self->{'open_sub'} = $value;
-}
-
sub set_admin
{
my $self = shift;
@@ -599,7 +451,7 @@
{
my( $self , $value ) = @_;
- $self->{'prefix'} = quotemeta $value;
+ $self->{'prefix'} = $value;
}
sub set_user
@@ -622,69 +474,53 @@
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
- my $domain = shift;
+ my ($vhffs, $state, $name, $group, $domain) = @_;
- my $query;
return undef if( ! defined $vhffs );
- $query = "SELECT * FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id";
- $query .= " AND o.state='".$state."'" if( defined $state );
- $query .= " AND ml.owner_gid='".$group->get_gid."'" if( defined $group );
- $query .= " AND ( ( local_part LIKE '%".$name."%' ) OR (domain LIKE '%".$name."%' ) )" if( defined $name );
- $query .= " AND ( domain='".$domain."')" if( defined $domain );
+ my $mls = [];
+ my @params;
+ my $sql = 'SELECT local_part, domain FROM vhffs_ml ml, vhffs_object o WHERE o.object_id = ml.object_id';
- my $request = $vhffs->get_db_object->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute() or return -3;
- return undef if( $rows <= 0 );
- my $result = $request->fetchall_hashref('ml_id');
- my $object;
- my @plop;
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push @params, $state;
+ }
+ if(defined $group) {
+ $sql .= ' AND ml.owner_gid = ?';
+ push @params, $group->get_gid;
+ }
+ if(defined $name) {
+ $sql .= ' AND ( local_part LIKE ? OR domain LIKE ?)';
+ push @params, '%'.$name.'%', '%'.$name.'%';
+ }
+ if(defined $domain) {
+ $sql .= ' AND domain = ?';
+ push @params, $domain;
+ }
+ $sql .= ' ORDER BY local_part, domain';
-
- foreach( keys %{$result} )
- {
- $object = new Vhffs::Services::Mailing( $vhffs , $result->{$_}{local_part} , $result->{$_}{domain} );
- push( @plop , $object ) if( ( defined $object ) && ( $object->fetch > 0 ) );
- }
+ my $dbh = $vhffs->get_db_object;
+ my $sth = $dbh->prepare($sql);
+ $sth->execute(@params) or return -3;
- return( \@plop );
+ while(my @ml = $sth->fetchrow_array) {
+ push @$mls, get_by_mladdress($vhffs, @ml);
+ }
+ return $mls;
}
#Returns all the lists for a group
+# FIXME useless
sub getall_by_group
{
my $vhffs = shift;
my $group = shift;
- my $query;
- return undef if( ! defined $vhffs );
-
- $query = "SELECT * FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id";
- $query .= " AND ml.owner_gid='".$group->get_gid."'" if( defined $group );
-
- my $request = $vhffs->get_db_object->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute() or return -3;
- return undef if( $rows <= 0 );
- my $result = $request->fetchall_hashref('ml_id');
- my $object;
- my @plop;
-
-
-
- foreach( keys %{$result} )
- {
- $object = new Vhffs::Services::Mailing( $vhffs , $result->{$_}{local_part} , $result->{$_}{domain} );
- push( @plop , $object ) if( ( defined $object ) && ( $object->fetch > 0 ) );
- }
-
- return( \@plop );
+ return getall($vhffs, undef, undef, $group);
}
@@ -714,3 +550,11 @@
}
1;
+
+__END__
+
+=head1 AUTHORS
+
+Julien Delange < god at gunnm dot org >
+Sebastien Le Ray < beuss at tuxfamily dot org >
+Sylvain Rochet < gradator at gradator dot net >
Modified: trunk/vhffs-api/src/Vhffs/Services/Mysql.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Mysql.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Mysql.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,42 +33,38 @@
# This file is a part of VHFFS4 platofmrm
# Please respect the licence
-# Author: soda < dieu at gunnm dot org>
+=pod
+=head1 NAME
-package Vhffs::Services::Mysql;
+Vhffs::Services::Mysql - Handle MySQL databases on VHFFS plaform.
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
+=head1 SYNOPSIS
+TODO
-sub new
-{
- my $main;
- my $dbname;
- my $this;
- my $self;
- my $class;
- my $user;
+=head1 METHODS
- ( $class , $main , $dbname , $user ) = @_;
+=cut
- $this = {};
+package Vhffs::Services::Mysql;
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
- $this = $class->SUPER::new( $main , 1 , '401' );
+sub check_dbname($) {
+ my $dbname = shift;
+ return ($dbname =~ /^[a-z0-9][a-z0-9\_]{1,30}[a-z0-9]$/ );
+}
- return undef if( ! ( $dbname =~ /^[a-z0-9][a-z0-9\_]+[a-z0-9]$/ ) );
- return undef if( length( $dbname ) > 32 );
+sub check_dbuser($) {
+ return check_dbname($_[0]);
+}
- $this->{'dbname'} = $dbname if ( defined $dbname );
- $this->{'dbuser'} = $dbname if ( defined $dbname );
-
-
- bless( $this , $class );
-
- return $this;
+sub check_dbpass($) {
+ my $dbpass = shift;
+ return ($dbpass =~ /^[a-zA-Z0-9]{3,}$/ );
}
sub delete
@@ -76,7 +72,7 @@
my $self = shift;
my $query = "DELETE FROM vhffs_mysql WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -2 if( $self->SUPER::delete < 0 );
@@ -85,72 +81,56 @@
}
+=pod
-sub create
-{
- my $self = shift;
+=head2 create
- return -1 if ( $self->{'user'}->fetch < 0 );
- return -1 if ( $self->{'group'}->fetch < 0 );
+ my $mysql = Vhffs::Services::Mysql::create($main, $dbname, $dbuser, $dbpass, $description, $user, $group);
+ die("Unable to create MySQL service $dbname\n") unless(defined $mysql);
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
+Creates a new MySQL service in VHFFS database and returns the fully functional object.
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_mysql WHERE dbname='" . $self->{'dbname'} . "'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+=cut
- my $oid = $self->SUPER::create();
- return -1 if ( $oid lt 0 );
+sub create {
+ my ($main, $dbname, $dbuser, $dbpass, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(check_dbname($dbname) && check_dbpass($dbpass) && check_dbuser($dbuser));
- $self->{'object_id'} = $oid;
+ my $mysql;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
-# return -2 if ( ( ! defined $self->{'dbuser'} ) || ( ! defined $self->{'dbpass'} ) );
- return -2 if ( ( ! defined $self->{'dbpass'} ) );
+ eval {
- #Get the mac httpd_id and compute the new httpd_id
- my $mysql_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(mysql_id) FROM vhffs_mysql");
- $mysql_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $mysql_id++;
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_MYSQL);
+ die('Unable to create parent object') unless defined ($parent);
- #Finally, create the object
- my $query = "INSERT INTO vhffs_mysql VALUES( '".$mysql_id."' , '".$self->{'dbname'}."', '".$self->{'dbuser'}."' , '".$self->{'owner_uid'}."' , '".$self->{'group'}->get_gid."' , '".$self->{'dbpass'}."' , '$oid' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ my $sql = 'INSERT INTO vhffs_mysql(dbname, dbuser, dbpass, owner_uid, owner_gid, object_id) VALUES(?, ?, ?, ?, ?, ?)';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($dbname, $dbuser, $dbpass, $user->get_uid, $group->get_gid, $parent->get_oid);
- return $mysql_id;
-}
+ $dbh->commit;
+ $mysql = get_by_dbname($main, $dbname);
+ };
+ if($@) {
+ warn "Unable to create MySQL db $dbname: $@\n";
+ $dbh->rollback;
+ }
-#Get all data about this httpd object in the databse
-sub fetch
-{
- my $self = shift;
+ return $mysql;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_mysql where dbname='".$self->{'dbname'}."'") or return -1;
- my $rows = $request->execute();
-
- return -1 if( $rows != 1 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
- $self->SUPER::fetch;
}
-
-
sub commit
{
my $self = shift;
my $query = "UPDATE vhffs_mysql SET owner_uid='".$self->{'owner_uid'}."', dbpass='".$self->{'dbpass'}."' WHERE dbname='".$self->{'dbname'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $request = $self->{'db'}->prepare( $query );
$request->execute;
@@ -199,7 +179,7 @@
{
my $self = shift;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("UPDATE vhffs_mysql SET dbpass='blanked' WHERE dbname='".$self->get_dbname."'") or return -1;
+ my $request = $self->{'db'}->prepare("UPDATE vhffs_mysql SET dbpass='blanked' WHERE dbname='".$self->get_dbname."'") or return -1;
$request->execute();
return 1;
}
@@ -210,7 +190,7 @@
return 1 if( $value eq $self->{'dbuser'});
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_mysql where dbuser='".$value."'") or return -1;
+ my $request = $self->{'db'}->prepare("SELECT * FROM vhffs_mysql where dbuser='".$value."'") or return -1;
my $rows = $request->execute();
return -1 if( $rows >= 1 );
@@ -239,40 +219,81 @@
$self->{'user'} = $user;
}
+sub _new {
+ my ($class, $main, $mysql_id, $owner_gid, $dbname, $dbuser, $dbpass, $oid, $owner_uid, $date_creation, $state, $description) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_MYSQL);
+ return undef unless(defined $self);
+
+ $self->{mysql_id} = $mysql_id;
+ $self->{owner_gid} = $owner_gid;
+ $self->{dbname} = $dbname;
+ $self->{dbuser} = $dbuser;
+ $self->{dbpass} = $dbpass;
+ return $self;
+}
+
+=pod
+
+=head2 get_by_dbname
+
+ my $mysql = Vhffs::Services::Mysql::get_by_dbname($main, $dbname);
+ die("MySQL service $dbname not found\n") unless(defined $mysql);
+
+Fetches the MySQL service $dbname.
+
+=cut
+
+sub get_by_dbname($$) {
+ my ($vhffs, $dbname) = @_;
+
+ my $sql = q{SELECT m.mysql_id, m.owner_gid, m.dbname, m.dbuser, m.dbpass, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_mysql m INNER JOIN vhffs_object o ON o.object_id = m.object_id WHERE m.dbname = ?};
+ my $dbh = $vhffs->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $dbname));
+
+ return _new Vhffs::Services::Mysql($vhffs, @params);
+}
+
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $mysql = [];
+ my @params;
+
+ my $sql = 'SELECT m.mysql_id, m.owner_gid, m.dbname, m.dbuser, m.dbpass, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_mysql m, vhffs_object o WHERE m.object_id = o.object_id';
- my @objs;
- my $result;
- my $tmp;
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $sql .= ' AND m.dbname LIKE ?';
+ push(@params, '%'.$name.'%');
+ }
+ if(defined $group) {
+ $sql .= ' AND m.owner_gid = ?';
+ push(@params, $group->get_gid);
+ }
- $query = "SELECT dbname, dbuser FROM vhffs_mysql m, vhffs_object o WHERE o.object_id=m.object_id";
- $query.= " AND o.state='".$state."'" if( defined $state );
- $query.= " AND m.dbname LIKE '%".$name."%'" if( defined $name );
- $query.= " AND m.owner_gid='".$group->get_gid."'" if( defined $group );
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ my $dbh = $vhffs->get_db_object();
+ my $sth = $dbh->prepare($sql);
- return undef if( $rows == 0);
- $result = $request->fetchall_hashref('dbname');
- foreach( keys %{$result} )
- {
- $tmp = new Vhffs::Services::Mysql( $vhffs , $_ );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @objs , $tmp;
- }
+ return undef unless($sth->execute(@params));
+
+ while(my $row = $sth->fetchrow_arrayref()) {
+ push(@$mysql, _new Vhffs::Services::Mysql($vhffs, @$row));
}
- return \@objs;
+ return $mysql;
}
1;
+__END__
+
+=head1 AUTHORS
+
+soda < dieu at gunnm dot org>
+
+Sebastien Le Ray < beuss at tuxfamily dot org >
Modified: trunk/vhffs-api/src/Vhffs/Services/Postgres.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Postgres.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Postgres.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,54 +31,74 @@
# This file is a part of VHFFS4 platofmrm
-# Please respect the licence
-# Author: soda < dieu at gunnm dot org>
+=pod
+=head1 NAME
+Vhffs::Services::Postgres - Handle PostgreSQL databases in VHFFS.
+
+=head1 SYNOPSIS
+
+TODO
+
+=head1 METHODS
+
+=cut
+
package Vhffs::Services::Postgres;
use base qw(Vhffs::Object);
use strict;
use DBI;
+=pod
+=head2 check_dbname
-sub new
-{
- my $main;
- my $dbname;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
+ die('Bad DB name') unless(Vhffs::Services::Postgres::check_dbname($dbname));
- #( $class , $main , $dbname , $user ) = @_;
+Indicates wether a DB name is valid or not (3 to 32 alphanumeric chars, underscore
+allowed except at begining and end).
- $class = shift;
- $main = shift;
- $dbname = shift;
- $user = shift;
- $group = shift;
+=cut
- $this = {};
-
-# return undef if( $dbname =~ /^[\w\d\_\-]+$/ );
+sub check_dbname($) {
+ my $dbname = shift;
+ return ( $dbname =~ /^[a-z0-9][a-z0-9\_]{1,30}[a-z0-9]$/ );
+}
- return undef if( ! ( $dbname =~ /^[a-z0-9][a-z0-9\_]+[a-z0-9]$/ ) );
- return undef if( length( $dbname ) > 32 );
+=pod
- $this = $class->SUPER::new( $main , 1 , '401' );
+=head2 check_dbuser
- $this->{'dbname'} = $dbname if ( defined $dbname );
- $this->{'dbuser'} = "";
- $this->{'user'} = $user if ( defined $user );
- $this->{'group'} = $group if ( defined $group );
+ die('Bad DB username') unless(Vhffs::Services::Postgres::check_dbuser($user));
+
+Indicates wether a DB user name is valid or not (3 to 32 lowercase alphanumeric chars, underscore
+allowed except at begining and end).
+
+=cut
+
+sub check_dbuser($) {
+ return check_dbname($_[0]);
+}
+
+
+=pod
+
+=head2 check_dbuser
+
+ die('Bad DB pass') unless(Vhffs::Services::Postgres::check_dbpass($pass));
+
+Indicates wether a DB password is valid or not (at least one alphanumeric
+char).
+
+=cut
- bless( $this , $class );
- return $this;
+sub check_dbpass($) {
+ my $dbpass = shift;
+ return ( $dbpass =~ /^[a-zA-Z0-9]+$/);
}
sub delete
@@ -86,81 +106,63 @@
my $self = shift;
my $query = "DELETE FROM vhffs_pgsql WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -2 if( $self->SUPER::delete < 0 );
return 1;
}
+=pod
-sub create
-{
- my $self = shift;
+=head2 create
- return -1 if( $self->{'user'}->fetch < 0 );
- return -1 if ( $self->{'group'}->fetch < 0 );
- $self->{'owner_gid'} = $self->{'group'}->get_gid;
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
+ my $psql = Vhffs::Services::Postgres::create($main, $dbname, $dbuser, $dbpass, $description, $user, $group);
+ die("Unable to create Postgre Service\n") unless(defined $psql);
+Create a new Postgres services and return the corresponding fully functional object.
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_pgsql WHERE dbname='" . $self->{'dbname'} . "'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+=cut
- my $oid = $self->SUPER::create();
- return -1 if ( $oid lt 0 );
+sub create {
+ my ($main, $dbname, $dbuser, $dbpass, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(check_dbname($dbname) && check_dbpass($dbpass) && check_dbuser($dbuser));
+ my $pg;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- $self->{'object_id'} = $oid;
+ eval {
- return -2 if ( ( ! defined $self->{'dbuser'} ) || ( ! defined $self->{'dbpass'} ) );
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_PGSQL);
+ die('Unable to create parent object') unless defined ($parent);
- #Get the mac httpd_id and compute the new httpd_id
- my $pgsql_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(pgsql_id) FROM vhffs_pgsql");
- $pgsql_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $pgsql_id++;
+ my $sql = 'INSERT INTO vhffs_pgsql(dbname, dbuser, dbpass, owner_uid, owner_gid, object_id) VALUES(?, ?, ?, ?, ?, ?)';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($dbname, $dbuser, $dbpass, $user->get_uid, $group->get_gid, $parent->get_oid);
+ $dbh->commit;
+ $pg = get_by_dbname($main, $dbname);
+ };
- #Finally, create the object
- my $query = "INSERT INTO vhffs_pgsql VALUES( '".$pgsql_id."' , '".$self->{'dbname'} . "', '".$self->{'dbuser'}."' , '".$self->{'dbpass'}."' , '".$self->{'owner_uid'}."', '".$self->{'owner_gid'}."' , '$oid' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
- $request->execute or return -2;
+ if($@) {
+ warn "Unable to create PostgreSQL database $dbname: $@\n";
+ $dbh->rollback;
+ }
- return $pgsql_id;
-}
+ return $pg;
-
-#Get all data about this httpd object in the databse
-sub fetch
-{
- my $self = shift;
-
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_pgsql where dbname='".$self->{'dbname'}."'") or return -1;
- my $rows = $request->execute();
-
- return -1 if( $rows != 1 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
- $self->SUPER::fetch;
}
-
-
sub commit
{
my $self = shift;
my $query = "UPDATE vhffs_pgsql SET owner_uid='".$self->{'owner_uid'}."', dbuser= '".$self->{'dbuser'}."', dbpass='".$self->{'dbpass'}."' WHERE dbname='".$self->{'dbname'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare( $query );
+ my $request = $self->{'db'}->prepare( $query );
$request->execute;
@@ -173,16 +175,12 @@
return $self->{'owner_gid'};
}
-
sub get_owneruid
{
my $self = shift;
return $self->{'owner_uid'};
}
-
-
-
sub get_dbusername
{
my $self = shift;
@@ -195,7 +193,6 @@
return $self->{'dbname'};
}
-
sub get_title
{
my $self = shift;
@@ -208,19 +205,14 @@
return $self->{'dbpass'};
}
-
-
sub set_dbusername
{
my ($self , $value) = @_;
return 1 if( $value eq $self->{'dbuser'});
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_pgsql where dbuser='".$value."'") or return -1;
- my $rows = $request->execute();
+ return -1 if(! check_dbuser($value));
- return -1 if( $rows >= 1 );
-
$self->{'dbuser'} = $value;
return 1;
}
@@ -251,45 +243,79 @@
{
my $self = shift;
- my $request = $self->{'db'}->{'DB_READ'}->prepare("UPDATE vhffs_pgsql SET dbpass='blanked' WHERE dbname='".$self->get_dbname."'") or return -1;
+ my $request = $self->{'db'}->prepare("UPDATE vhffs_pgsql SET dbpass='blanked' WHERE dbname='".$self->get_dbname."'") or return -1;
$request->execute();
return 1;
}
+sub _new {
+ my ($class, $main, $pgsql_id, $owner_gid, $dbname, $dbuser, $dbpass, $oid, $owner_uid, $date_creation, $state, $description) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_PGSQL);
+ return undef unless(defined $self);
+
+ $self->{pgsql_id} = $pgsql_id;
+ $self->{owner_gid} = $owner_gid;
+ $self->{dbname} = $dbname;
+ $self->{dbuser} = $dbuser;
+ $self->{dbpass} = $dbpass;
+ return $self;
+}
+
+=pod
+
+=head2 get_by_dbname
+
+ my $pg = Vhffs::Services::Postgres::get_by_dbname($main, $dbname);
+ die("No database with this name") unless(defined $pg);
+
+Fetches the pg database whose name is C<$dbname>.
+
+=cut
+
+sub get_by_dbname($$) {
+ my ($vhffs, $dbname) = @_;
+
+ my $sql = q{SELECT m.pgsql_id, m.owner_gid, m.dbname, m.dbuser, m.dbpass, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_pgsql m INNER JOIN vhffs_object o ON o.object_id = m.object_id WHERE m.dbname = ?};
+ my $dbh = $vhffs->get_db_object();
+ my @params;
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $dbname));
+
+ return _new Vhffs::Services::Postgres($vhffs, @params);
+
+}
+
sub getall
-{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+{
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $postgres = [];
+ my @params;
- my @objs;
- my $result;
- my $tmp;
+ my $sql = 'SELECT p.pgsql_id, p.owner_gid, p.dbname, p.dbuser, p.dbpass, o.object_id, o.owner_uid, o.date_creation, o.state, o.description FROM vhffs_pgsql p, vhffs_object o WHERE p.object_id = o.object_id';
- $query = "SELECT dbname FROM vhffs_pgsql p, vhffs_object o WHERE o.object_id=p.object_id";
- $query .= " AND o.state='".$state."'" if( defined $state );
- $query .= " AND p.dbname LIKE '%".$name."%'" if( defined $name );
- $query .= " AND p.owner_gid='".$group->get_gid."'" if( defined $group );
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $sql .= ' AND p.dbname LIKE ?';
+ push(@params, '%'.$name.'%');
+ }
+ if(defined $group) {
+ $sql .= ' AND p.owner_gid = ?';
+ push(@params, $group->get_gid);
+ }
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ my $dbh = $vhffs->get_db_object();
+ my $sth = $dbh->prepare($sql);
- return undef if( $rows <= 0);
- $result = $request->fetchall_hashref('dbname');
- foreach( keys %{$result} )
- {
- $tmp = new Vhffs::Services::Postgres( $vhffs , $_ );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @objs , $tmp;
- }
+ return undef unless($sth->execute(@params));
+
+ while(my $row = $sth->fetchrow_arrayref()) {
+ push(@$postgres, _new Vhffs::Services::Postgres($vhffs, @$row));
}
- return \@objs;
+
+ return $postgres;
}
-
1;
Modified: trunk/vhffs-api/src/Vhffs/Services/Repository.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Repository.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Repository.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,146 +32,144 @@
# This file is a part of VHFFS4 Hosting Platform
# Please respect the licence of this file and the whole software
-# Author: Sylvain Rochet < gradator at gradator dot net >
-package Vhffs::Services::Repository;
+=pod
-use base qw(Vhffs::Object);
-use Vhffs::Group;
-use strict;
-use DBI;
+=head1 NAME
+Vhffs::Services::Repository - Handle download repositories in VHFFS
+=head1 SYNOPSIS
-sub new
-{
- my $main;
- my $name;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
+TODO
- $class = shift;
- $main = shift;
- $name = shift;
- $user = shift;
- $group = shift;
+=head1 METHODS
- $this = {};
+=cut
- $this = $class->SUPER::new( $main , 1 , '401' );
+package Vhffs::Services::Repository;
- #We return an undefined value if the user or the NAME are not correct
- return undef if( ! defined ( $name ) );
- return undef if( ! ( $name =~ /[a-z0-9]+/) );
+use base qw(Vhffs::Object);
+use Vhffs::Group;
+use strict;
+use DBI;
- $this->{'name'} = $name;
- $this->{'user'} = $user if( defined $user );
- $this->{'group'} = $group if( defined $group );
-
- bless( $this , $class );
-
- return $this;
+sub check_name($)
+{
+ my $name = shift;
+ return ($name =~ /^[a-z0-9]+$/);
}
sub delete
{
my $self = shift;
- $self->fetch;
+ return unless(defined $self);
my $query = "DELETE FROM vhffs_repository WHERE object_id='".$self->{'object_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -1 if( $self->SUPER::delete < 0 );
return 1;
}
-sub create
+=pod
+
+=head2 create
+
+ my $repo = Vhffs::Services::Repository::create($main, $rname, $description, $user, $group);
+ die('Unable to create repository) unless(defined $repo);
+
+Creates a new download repository in database and return the corresponding
+fully functional object.
+
+=cut
+
+sub create
{
- my $self = shift;
- my $conf;
- my $quota;
+ my ($main, $rname, $description, $user, $group) = @_;
- return -2 if ( $self->{'user'}->fetch < 0 );
- return -3 if ( $self->{'group'}->fetch < 0 );
-
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
- $self->{'owner_gid'} = $self->{'group'}->get_gid;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(check_name($rname));
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_repository WHERE name='" . $self->{'name'} . "'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+ my $repo;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- my $oid = $self->SUPER::create();
- if ( $oid lt 0 )
- {
- return( -1 );
- }
- else
- {
- $self->{'object_id'} = $oid;
- }
+ eval {
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_REPOSITORY);
+ die('Unable to create parent object') unless(defined $parent);
+ my $sql = 'INSERT INTO vhffs_repository(name, owner_uid, owner_gid, quota, quota_used, object_id) VALUES(?, ?, ?, ?, 0, ?)';
- #Get the max repository_id and compute the new repository_id
- my $repository_id = 1;
- my $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(repository_id) FROM vhffs_repository");
- $repository_id = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $repository_id++;
+ #Quota
+ my $config = $main->get_config()->get_service('repository');
+ my $quota = $config->{'default_quota'} if defined($config);
+ $quota = 100 unless defined($quota);
- #Quota
- $conf = $self->{'main'}->get_config->get_service("repository");
- $quota = 100;
- $quota = $conf->{'default_quota'} if( ( defined $conf ) && ( defined $conf->{'default_quota'} ) );
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($rname, $user->get_uid, $group->get_gid, $quota, $parent->get_oid);
- #Finally, create the object
- my $text = "INSERT INTO vhffs_repository VALUES( '".$repository_id."' , '".$self->{'name'} . "','".$self->{'user'}->get_uid."','".$self->{'group'}->get_gid."' , '".$quota."' , '0' , '".$self->{'object_id'}."' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $text );
- $request->execute or return -2;
+ $dbh->commit;
+ $repo = get_by_reponame($main, $rname);
+ };
- return $repository_id;
+ if($@) {
+ warn "Unable to create repository $rname: $@\n";
+ $dbh->rollback;
+ }
+
+ return $repo;
}
+=pod
-sub fetch
-{
- my $self = shift;
-
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_repository where name='".$self->{'name'}."'") or return -1;
-
- my $rows = $request->execute() or return -3;
-
- return -1 if( $rows <= 0 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
+=head2 get_by_reponame
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef ,$self->{'owner_uid'} , $self->{'owner_gid'} );
- return -1 if( $self->{'group'}->fetch < 0 );
+ my $repo = Vhffs::Services::Repository::get_by_reponame($main, $name);
+ die('Repository not found') unless(defined $repo);
+Fetches an existing repository.
- $self->SUPER::fetch;
-
- return 1;
+=cut
+
+sub get_by_reponame($$) {
+ my ($main, $name) = @_;
+
+ my @params;
+
+ my $sql = 'SELECT r.repository_id, r.name, r.owner_uid, r.owner_gid, r.quota, r.quota_used, o.object_id, o.date_creation, o.description, o.state FROM vhffs_repository r INNER JOIN vhffs_object o ON o.object_id = r.object_id WHERE r.name = ?';
+
+ my $dbh = $main->get_db_object();
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $name));
+
+ return _new Vhffs::Services::Repository($main, @params);
}
+sub _new {
+ my ($class, $main, $repository_id, $name, $owner_uid, $owner_gid, $quota, $quota_used, $oid, $date_creation, $description, $state) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_REPOSITORY);
+ return undef unless(defined $self);
+ $self->{repository_id} = $repository_id;
+ $self->{name} = $name;
+ $self->{owner_gid} = $owner_gid;
+ $self->{quota} = $quota;
+ $self->{quota_used} = $quota_used;
+
+ return $self;
+}
+
sub commit
{
my $self = shift;
my $query = "UPDATE vhffs_repository SET name='".$self->{'name'}."', quota='".$self->{'quota'}."', quota_used='".$self->{'quota_used'}."' WHERE repository_id='".$self->{'repository_id'}."'";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -2 if( $self->SUPER::commit < 0 );
@@ -181,38 +179,35 @@
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $repos = [];
+ my @params;
- my $objs;
- my $result;
- my $tmp;
+ my $sql = 'SELECT r.repository_id, r.name, r.owner_uid, r.owner_gid, r.quota, r.quota_used, o.object_id, o.date_creation, o.description, o.state FROM vhffs_repository r, vhffs_object o WHERE r.object_id = o.object_id';
+ if(defined($state)) {
+ $sql .= ' AND o.state = ?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $sql .= ' AND r.name = ?';
+ push(@params, $name);
+ }
+ if(defined($group)) {
+ $sql .= ' AND r.owner_gid = ?';
+ push(@params, $group->get_gid);
+ }
+ $sql .= ' ORDER BY r.name';
+
+ my $dbh = $vhffs->get_db_object();
- $query = "SELECT r.name, r.object_id FROM vhffs_repository r, vhffs_object o WHERE r.object_id = o.object_id";
- $query.= " AND o.state='".$state."'" if( defined $state );
- $query.= " AND r.name LIKE '%".$name."%'" if( defined $name );
- $query.= " AND r.owner_gid='".$group->get_gid."'" if( defined $group );
- $query .= " ORDER BY r.name";
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ my $sth = $dbh->prepare($sql);
+ $sth->execute(@params) or return undef;
- return undef if( $rows == 0);
-
- while( $result = $request->fetchrow_hashref )
- {
-
- $tmp = new Vhffs::Services::Repository( $vhffs , $result->{'name'} );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
- }
- return $objs;
+ while(my $r = $sth->fetchrow_arrayref()) {
+ push(@$repos, _new Vhffs::Services::Repository($vhffs, @$r));
+ }
+ return $repos;
}
@@ -295,30 +290,32 @@
sub getall_per_group
{
- my $main = shift;
- my $group = shift;
+ my ($main, $group) = @_;
my @result;
- my $repos;
- return undef if ( $group->fetch < 0 );
+ my $repos = [];
+ return undef if ( ! defined $group );
- my $query = "SELECT r.name , r.object_id, o.state FROM vhffs_repository r, vhffs_object o WHERE o.object_id=r.object_id AND r.owner_gid='".$group->get_gid."'";
+ my $sql = 'SELECT r.repository_id, r.name, r.owner_uid, r.owner_gid, r.quota, r.quota_used, o.object_id, o.date_creation, o.description, o.state FROM vhffs_repository r INNER JOIN vhffs_object o ON o.object_id = r.object_id WHERE r.owner_gid = ?';
- my $request = $main->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
+ my $dbh = $main->get_db_object();
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($group->get_gid) or return undef;
+ while(my $r = $sth->fetchrow_arrayref()) {
+ push(@$repos, _new Vhffs::Services::Repository($main, @$r));
+ }
+ return $repos;
+}
- return undef if ( $request->execute() <= 0);
- my $reposs = $request->fetchall_hashref( 'name' );
- foreach $repos ( %{$reposs} )
- {
- my $repo = new Vhffs::Services::Repository( $main , $repos );
- push( @result , $repo ) if( $repo->fetch > 0 );
- }
- return \@result;
-}
+1;
+__END__
+=head1 AUTHORS
-1;
+Sylvain Rochet < gradator at gradator dot net >
+
+Sebastien Le Ray < beuss at tuxfamily dot net >
Modified: trunk/vhffs-api/src/Vhffs/Services/Svn.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Services/Svn.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Services/Svn.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -43,42 +43,9 @@
use strict;
use DBI;
-
-
-sub new
-{
- my $main;
- my $reponame;
- my $this;
- my $self;
- my $class;
- my $user;
- my $group;
-
- $class = shift;
- $main = shift;
- $reponame = shift;
- $user = shift;
- $group = shift;
-
- $this = {};
-
- $this = $class->SUPER::new( $main , 1 , '401' );
-
- #We return an undefined value if the user or the SVNROOT are not correct
- return undef if( ! defined ( $reponame ) );
- return undef if( length( $reponame ) < 3 );
- return undef if( ! ( $reponame =~ /^[a-z0-9]+$/ ) );
-
-
- $this->{'user'} = $user;
- $this->{'group'} = $group;
- $this->{'reponame'} = $reponame;
- $this->{'public'} = 1;
-
- bless( $this , $class );
-
- return $this;
+sub check_name($) {
+ my $name = shift;
+ return ($name =~ /^[a-z0-9]{3,64}$/);
}
sub delete
@@ -88,100 +55,82 @@
my $request;
$query = "DELETE FROM vhffs_svn WHERE object_id='".$self->{'object_id'}."'";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ $request = $self->{'db'}->prepare($query);
$request->execute or return -1;
return -1 if( $self->SUPER::delete < 0 );
}
-
-
sub create
{
- my $self = shift;
-
-
- return -2 if ( !defined $self->{'user'} || $self->{'user'}->fetch < 0 );
- return -3 if ( !defined $self->{'group'} || $self->{'group'}->fetch < 0 );
+ my ($main, $rname, $description, $user, $group) = @_;
+ return undef unless(defined($user) && defined($group));
+ return undef unless(check_name($rname));
- my $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_svn WHERE reponame='" . $self->{'reponame'} ."' AND owner_gid='".$self->{'group'}->get_gid."'");
- my $rows = $request->execute;
- return -1 if ( $rows != 0 );
+ my $svn;
+ my $dbh = $main->get_db_object();
+ local $dbh->{RaiseError} = 1;
+ local $dbh->{PrintError} = 0;
+ $dbh->begin_work;
- $self->{'owner_uid'} = $self->{'user'}->get_uid;
-
- my $oid = $self->SUPER::create();
- if ( $oid lt 0 )
- {
- return( -1 );
- }
- else
- {
- $self->{'object_id'} = $oid;
- }
-
-
- #Finally, create the object
- my $text = "INSERT INTO vhffs_svn (reponame,owner_uid,owner_gid,public,object_id) VALUES( '".$self->{'reponame'} . "','".$self->{'user'}->get_uid."','".$self->{'group'}->get_gid."' , '1' , '".$self->{'object_id'}."' )";
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( $text );
- $request->execute or return -2;
-
- return 1;
-}
+ eval {
+ my $parent = Vhffs::Object::create($main, $user->get_uid, $description, undef, Vhffs::Constants::TYPE_SVN);
+ die('Unable to create parent object') unless(defined $parent);
-sub fetch
-{
- my $self = shift;
-
+ my $sql = 'INSERT INTO vhffs_svn(reponame, owner_uid, owner_gid, public, object_id) VALUES(?, ?, ?, 1, ?)';
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($rname, $user->get_uid, $group->get_gid, $parent->get_oid) or return undef;
- my $query = "SELECT * FROM vhffs_svn where reponame='".$self->{'reponame'}."' AND owner_gid='".$self->{'group'}->get_gid."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -1;
-
- my $rows = $request->execute() or return -3;
+ $dbh->commit;
+ $svn = get_by_reponame($main, $rname);
+ };
- return -2 if( $rows <= 0 );
-
- my $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
+ if($@) {
+ warn "Unable to create svn repository $rname: $@\n";
+ $dbh->rollback;
}
-
-
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , undef , $self->{'owner_uid'} , $self->{'owner_gid'} );
- return -1 if( $self->{'group'}->fetch < 0 );
-
- $self->{'user'} = new Vhffs::User( $self->{'main'} , undef , $self->{'owner_uid'} );
- return -1 if( $self->{'user'}->fetch < 0 );
-
-
- $self->SUPER::fetch;
-
- return 1;
+
+ return $svn;
}
+sub get_by_reponame($$) {
+ my ($main, $reponame) = @_;
+ my @params;
+ my $sql = 'SELECT s.svn_id, s.reponame, s.owner_uid, s.owner_gid, s.public, o.object_id, o.date_creation, o.description, o.state FROM vhffs_svn s INNER JOIN vhffs_object o ON o.object_id = s.object_id WHERE s.reponame = ?';
-sub get_users
-{
- my $self = shift;
-
- return( $self->{'users'} );
+ my $dbh = $main->get_db_object();
+
+ return undef unless(@params = $dbh->selectrow_array($sql, undef, $reponame));
+
+ return _new Vhffs::Services::Svn($main, @params);
+
}
+sub _new
+{
+ my ($class, $main, $svn_id, $reponame, $owner_uid, $owner_gid, $public, $oid, $date_creation, $description, $state) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $owner_uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_SVN);
+ return undef unless(defined $self);
+ $self->{svn_id} = $svn_id;
+ $self->{reponame} = $reponame;
+ $self->{owner_gid} = $owner_gid;
+ $self->{public} = $public;
+
+ return $self;
+}
+
sub commit
{
my $self = shift;
my $query = "UPDATE vhffs_svn SET public= '".$self->{'public'}."' WHERE svn_id=$self->{'svn_id'}";
- my $request = $self->{'db'}->{'DB_WRITE'}->prepare($query);
+ my $request = $self->{'db'}->prepare($query);
$request->execute;
$self->SUPER::commit;
@@ -256,77 +205,61 @@
sub getall
{
- my $vhffs = shift;
- my $state = shift;
- my $name = shift;
- my $group = shift;
+ my ($vhffs, $state, $name, $group) = @_;
- my $query;
- my $request;
+ my $svn = [];
+ my @params;
- my $objs;
- my $result;
- my $tmp;
-
-
- $query = "SELECT * FROM vhffs_svn s, vhffs_object o WHERE s.object_id = o.object_id ";
- $query.= " AND o.state='".$state."'" if( defined $state);
- $query.= " AND s.owner_gid='".$group->get_gid."'" if( defined $group);
- $query.= " AND s.reponame LIKE '%".$name."%'" if( defined $name);
- $query .= " ORDER BY reponame";
-
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
+ my $sql = 'SELECT s.svn_id, s.reponame, s.owner_uid, s.owner_gid, s.public, o.object_id, o.date_creation, o.description, o.state FROM vhffs_svn s, vhffs_object o WHERE o.object_id = s.object_id';
- my $rows = $request->execute;
-
- return undef if( $rows == 0);
- while( $result = $request->fetchrow_hashref )
- {
- my $group = new Vhffs::Group( $vhffs , undef , $result->{'owner_uid'} , $result->{'owner_gid'} );
+ if(defined $state) {
+ $sql .= ' AND o.state = ?';
+ push(@params, $state);
+ }
+ if(defined $name) {
+ $sql .= ' AND s.name = ?';
+ push(@params, $name);
+ }
+ if(defined($group)) {
+ $sql .= ' AND s.owner_gid = ?';
+ push(@params, $group->get_gid);
+ }
+ $sql .= ' ORDER BY s.reponame';
- $tmp = new Vhffs::Services::Svn( $vhffs , $result->{'reponame'} , undef , $group );
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
+ my $dbh = $vhffs->get_db_object();
+
+ my $sth = $dbh->prepare($sql);
+ $sth->execute(@params) or die($sql) ; #return undef;
+
+ while(my $s = $sth->fetchrow_arrayref()) {
+ push(@$svn, _new Vhffs::Services::Svn($vhffs, @$s));
}
- return $objs;
+ return $svn;
}
sub getall_by_group
{
- my $vhffs = shift;
- my $group = shift;
+ my ($vhffs, $group) = @_;
- my $query;
- my $request;
+ my $svn = [];
+ my @params;
- my $objs;
- my $result;
- my $tmp;
+ return undef unless( defined $group );
- return undef if( $group->fetch < 1 );
-
- $query = "SELECT s.reponame, s.object_id FROM vhffs_svn s, vhffs_object o WHERE s.object_id = o.object_id AND s.owner_gid='".$group->get_gid."'";
-
- $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
+ my $sql = 'SELECT s.svn_id, s.reponame, s.owner_uid, s.owner_gid, s.public, o.object_id, o.date_creation, o.description, o.state FROM vhffs_svn s INNER
+ JOIN vhffs_object o ON o.object_id = s.object_id WHERE s.owner_gid = ? ORDER BY s.reponame';
- return undef if( $rows == 0);
+ my $dbh = $vhffs->get_db_object();
- $result = $request->fetchall_hashref( 'reponame' );
+ my $sth = $dbh->prepare($sql);
+ $sth->execute($group->get_gid) or return undef;
- foreach( keys %{$result} )
- {
- $tmp = new Vhffs::Services::Svn( $vhffs , $_ , undef , $group);
- if( ( defined ( $tmp ) ) && ( $tmp->fetch > 0 ) )
- {
- push @{$objs} , $tmp;
- }
+ while(my $s = $sth->fetchrow_arrayref()) {
+ push(@$svn, _new Vhffs::Services::Svn($vhffs, @$s));
}
- return $objs;
+ return $svn;
}
Modified: trunk/vhffs-api/src/Vhffs/Stats.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Stats.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/Stats.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,235 +30,164 @@
# POSSIBILITY OF SUCH DAMAGE.
-#Vhffs::ACL written by sod` <dieu AT gunnm DOT org>
+=pod
-# This software is free software, please read LICENCE file
-package Vhffs::Stats;
+=head1 NAME
-#General perl modules
-use base qw(Vhffs::Object);
-use strict;
+Vhffs:Stats - Provide statistics on Vhffs Platform
-#Vhffs specific modules
-use Vhffs::Constants;
+=head1 SYNOPSIS
+ my $main = init Vhffs::Main(...);
-sub new
-{
- my $this;
- my $self;
+ my $stats = new Vhffs::Stats($main);
+ my $lstcount = $stats->get_lists_in_moderation;
- my ( $class , $main ) = @_;
-
- $this = {};
+ # Add some lists here...
+ # ...
-
- $this->{'main'} = $main;
- $this->{'db'} = $main->get_db_object;
- bless( $this , $class );
-}
+ $stats->refresh(); # Flush cache
+ my $newlstcount = $stats->get_lists_in_moderation;
-sub fetch
-{
- my ( $self , $query , $request , $result );
- $self = shift;
+=head1 METHODS
- $query = "SELECT COUNT(*) FROM vhffs_users";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'users'}{'total'} = $result->[0][0] if ( defined $result->[0][0] );
+=cut
- $query = "SELECT COUNT(*) FROM vhffs_users WHERE admin='".Vhffs::Constants::USER_ADMIN."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'users'}{'total_admin'} = $result->[0][0] if ( defined $result->[0][0] );
+package Vhffs::Stats;
- $query = "SELECT COUNT(*) FROM vhffs_users WHERE admin='".Vhffs::Constants::USER_MODERATOR."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'users'}{'total_moderator'} = $result->[0][0] if ( defined $result->[0][0] );
+use strict;
+use base qw(Vhffs::Object);
+use Vhffs::Constants;
- $query = "SELECT COUNT(*) FROM vhffs_groups g WHERE g.groupname NOT IN ( SELECT username FROM vhffs_users )";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'groups'}{'total'} = $result->[0][0] if ( defined $result->[0][0] );
+=pod
- $query = "SELECT COUNT(*) FROM vhffs_groups g, vhffs_object o WHERE o.object_id=g.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."' AND g.groupname NOT IN (SELECT username FROM vhffs_users)";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'groups'}{'waited_moderation'} = $result->[0][0] if ( defined $result->[0][0] );
+=head2 new
+ my $stats = new Vhffs::Stats($main);
- $query = "SELECT COUNT(*) FROM vhffs_groups g, vhffs_object o WHERE o.object_id=g.object_id AND o.state='".Vhffs::Constants::ACTIVATED."' AND g.groupname NOT IN (SELECT username FROM vhffs_users)";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'groups'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+Creates a new Vhffs::Stats instance. C<$main> is
+the C<Vhffs::Main> instance used to get database
+connection.
+=cut
+sub new
+{
+ my ( $class , $main ) = @_;
+
+ my $this = {};
- $query = "SELECT COUNT(*) FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'web'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'web'}{'waited'} = $result->[0][0] if ( defined $result->[0][0] );
- $self->{'web'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
- $query = "SELECT COUNT(*) FROM vhffs_httpd w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'web'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+ $this->{'main'} = $main;
+ $this->{'db'} = $main->get_db_object;
+ bless( $this , $class );
+}
+=pod
- $query = "SELECT COUNT(*) FROM vhffs_cvs w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'cvs'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+=head2 refresh
- $query = "SELECT COUNT(*) FROM vhffs_cvs w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'cvs'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_cvs w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'cvs'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+ $stats->refresh();
+When you call a C<get_xxxx> method, data
+are fetched from database and cached. If you
+want to flush the cache, call C<refresh>.
- ### DNS Stats
- $query = "SELECT COUNT(*) FROM vhffs_dns_global w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'dns'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+There are very few cases where this method should
+be used.
- $query = "SELECT COUNT(*) FROM vhffs_dns_global w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'dns'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_dns_global w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'dns'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+=cut
+sub refresh {
+ my $self = shift;
+ foreach(keys(%{$self})) {
+ next if($_ eq 'main' || $_ eq 'db');
+ delete $self->{$_}
+ }
+}
- ###Stats for mail
- $query = "SELECT COUNT(*) FROM vhffs_mxdomain w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mail'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+=pod
- $query = "SELECT COUNT(*) FROM vhffs_mxdomain w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mail'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_mxdomain w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mail'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+=head2 get_lists_totalsubs
- $query = "SELECT COUNT(*) FROM vhffs_boxes";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mail'}{'total_boxes'} = $result->[0][0] if ( defined $result->[0][0] );
+ my $count = $stats->get_lists_totalsubs();
- $query = "SELECT COUNT(*) FROM vhffs_forward";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mail'}{'total_forwards'} = $result->[0][0] if ( defined $result->[0][0] );
+Returns the count of mailing list subscribers on
+the platform.
+=cut
- ### Stats for MySQL
- $query = "SELECT COUNT(*) FROM vhffs_mysql w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mysql'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+sub get_lists_totalsubs
+{
+ my $self = shift;
+ unless(defined $self->{lists}{totalsubs}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_ml_subscribers';
+ ($self->{lists}{totalsubs}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{lists}{totalsubs};
+}
- $query = "SELECT COUNT(*) FROM vhffs_mxdomain w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mysql'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_mxdomain w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'mysql'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+=pod
+=head2 get_lists_in_moderation
- ### Stats for Pgsql
- $query = "SELECT COUNT(*) FROM vhffs_pgsql w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'pgsql'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
+ my $count = $stats->get_lists_in_moderation();
- $query = "SELECT COUNT(*) FROM vhffs_pgsql w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'pgsql'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_pgsql w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'pgsql'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+Returns the count of mailing lists waiting for
+moderation.
- $query = "SELECT COUNT(*) FROM vhffs_svn w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'svn'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_svn w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'svn'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_svn w, vhffs_object o WHERE o.object_id=w.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'svn'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+=cut
- $query = "SELECT COUNT(*) FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'lists'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'lists'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'lists'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+sub get_lists_in_moderation
+{
+ my $self = shift;
+ unless(defined $self->{lists}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id AND o.state='.Vhffs::Constants::WAITING_FOR_VALIDATION;
+ ($self->{lists}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{lists}{awaiting_validation};
+}
- $query = "SELECT COUNT(*) FROM vhffs_ml";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'lists'}{'total'} = $result->[0][0] if ( defined $result->[0][0] );
+=pod
- $query = "SELECT COUNT(*) FROM vhffs_ml_subscribers";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'lists'}{'totalsubs'} = $result->[0][0] if ( defined $result->[0][0] );
-
+=head2 get_lists_in_activated
- $query = "SELECT COUNT(*) FROM vhffs_largefile lf, vhffs_object o WHERE o.object_id=lf.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'largefile'}{'activated'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_largefile lf , vhffs_object o WHERE o.object_id=ls.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_VALIDATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'largefile'}{'waited_validation'} = $result->[0][0] if ( defined $result->[0][0] );
-
- $query = "SELECT COUNT(*) FROM vhffs_largefile lf , vhffs_object o WHERE o.object_id=lf.object_id AND o.state='".Vhffs::Constants::WAITING_FOR_CREATION."'";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'largefile'}{'waited_creation'} = $result->[0][0] if ( defined $result->[0][0] );
+ my $count = $stats->get_lists_activated();
+Returns the count of mailing lists currently activated.
- $query = "SELECT COUNT(*) FROM vhffs_largefile lf , vhffs_object o WHERE o.object_id=lf.object_id";
- $result = $self->{'db'}->{'DB_READ'}->selectall_arrayref( $query );
- $self->{'largefile'}{'total'} = $result->[0][0] if ( defined $result->[0][0] );
+=cut
- return 1;
-}
-
-sub get_lists_totalsubs
+sub get_lists_activated
{
my $self = shift;
- return $self->{'lists'}{'totalsubs'};
+ unless(defined $self->{lists}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_ml ml, vhffs_object o WHERE o.object_id=ml.object_id AND o.state = ?';
+ ($self->{lists}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{lists}{activated};
}
+=pod
+=head2 get_lists_total
-sub get_lists_in_moderation
-{
- my $self = shift;
- return $self->{'lists'}{'waited_validation'};
-}
+ my $count = $stats->get_lists_total();
-sub get_lists_activated
-{
- my $self = shift;
- return $self->{'lists'}{'activated'};
-}
+Returns the total count of mailing lists (activated or not).
+=cut
+
sub get_lists_total
{
my $self = shift;
- return $self->{'lists'}{'total'};
+ unless(defined $self->{lists}{total}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_ml';
+ ($self->{lists}{total}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{lists}{total};
}
@@ -266,26 +195,42 @@
sub get_web_in_moderation
{
my $self = shift;
- return $self->{'web'}{'waited'};
+ unless(defined $self->{web}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_httpd w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{web}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{web}{awaiting_validation};
}
sub get_web_activated
{
my $self = shift;
- return $self->{'web'}{'activated'};
+ unless(defined $self->{web}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_httpd w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{web}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{web}{activated};
}
sub get_user_total
{
my $self = shift;
- return $self->{'users'}{'total'};
+ unless(defined $self->{users}{total}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_users';
+ ($self->{users}{total}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{users}{total};
}
sub get_user_total_admin
{
my $self = shift;
+ unless(defined $self->{users}{total_admin}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_users WHERE admin=?';
+ ($self->{users}{total_admin}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::USER_ADMIN )};
+ }
return $self->{'users'}{'total_admin'};
}
@@ -293,137 +238,193 @@
sub get_user_total_moderator
{
my $self = shift;
- return $self->{'users'}{'total_moderator'};
+ unless(defined $self->{users}{total_moderator}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_users WHERE admin=?';
+ ($self->{users}{total_moderator}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::USER_MODERATOR )};
+ }
+ return $self->{users}{total_moderator};
}
-
sub get_dns_in_moderation
{
my $self = shift;
- return $self->{'dns'}{'waited_validation'};
+ unless(defined $self->{dns}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_dns w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state=?';
+ ($self->{dns}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{dns}{awaiting_validation};
}
sub get_dns_activated
{
my $self = shift;
- return $self->{'dns'}{'activated'};
+ unless(defined $self->{dns}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_dns w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state=?';
+ ($self->{dns}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{dns}{activated};
}
sub get_mail_in_moderation
{
my $self = shift;
- return $self->{'mail'}{'waited_validation'};
+ unless(defined $self->{mail}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_mxdomain w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{mail}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{mail}{awaiting_validation};
}
sub get_mail_activated
{
my $self = shift;
- return $self->{'mail'}{'activated'};
+ unless(defined $self->{mail}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_mxdomain w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{mail}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{mail}{activated};
}
sub get_mail_total_boxes
{
my $self = shift;
- return $self->{'mail'}{'total_boxes'};
+ unless(defined $self->{mail}{total_boxes}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_boxes';
+ ($self->{mail}{total_boxes}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{mail}{total_boxes};
}
sub get_mail_total_forwards
{
my $self = shift;
- return $self->{'mail'}{'total_forwards'};
+ unless(defined $self->{mail}{total_forwards}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_forward';
+ ($self->{'mail'}{'total_forwards'}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{mail}{total_forwards};
}
-
sub get_cvs_in_moderation
{
my $self = shift;
- return $self->{'cvs'}{'waited_validation'};
+ unless(defined $self->{cvs}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_cvs w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state=?';
+ ($self->{cvs}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{cvs}{awaiting_validation};
}
sub get_cvs_activated
{
my $self = shift;
- return $self->{'cvs'}{'activated'};
+ unless(defined $self->{cvs}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_cvs w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state=?';
+ ($self->{cvs}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{cvs}{activated};
}
sub get_svn_in_moderation
{
my $self = shift;
- return $self->{'svn'}{'waited_validation'};
-}
+ unless(defined $self->{svn}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_svn w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{svn}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
-
-sub get_largefile_in_moderation
-{
- my $self = shift;
- return $self->{'largefile'}{'waited_validation'};
+ }
+ return $self->{svn}{awaiting_validation};
}
-sub get_largefile_total
-{
- my $self = shift;
- return $self->{'largefile'}{'total'};
-}
sub get_svn_activated
{
my $self = shift;
- return $self->{'svn'}{'activated'};
+ unless(defined $self->{svn}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_svn w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state='.Vhffs::Constants::ACTIVATED;
+ ($self->{'svn'}{activated}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{svn}{activated};
}
-sub get_largefile_activated
-{
- my $self = shift;
- return $self->{'largefile'}{'activated'};
-}
-
sub get_mysql_in_moderation
{
my $self = shift;
- return $self->{'mysql'}{'waited_validation'};
+ unless(defined $self->{mysql}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_mysql w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{mysql}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{mysql}{awaiting_validation};
}
sub get_mysql_activated
{
my $self = shift;
- return $self->{'mysql'}{'activated'};
+ unless(defined $self->{mysql}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_mysql w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{'mysql'}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{mysql}{activated};
}
sub get_pgsql_in_moderation
{
my $self = shift;
- return $self->{'pgsql'}{'waited_validation'};
+ unless(defined $self->{pgsql}{awaiting_validation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_pgsql w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{pgsql}{awaiting_validation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+
+ }
+ return $self->{pgsql}{awaiting_validation};
}
sub get_pgsql_activated
{
my $self = shift;
- return $self->{'pgsql'}{'activated'};
+ unless(defined $self->{pgsql}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_pgsql w INNER JOIN vhffs_object o ON o.object_id=w.object_id WHERE o.state = ?';
+ ($self->{pgsql}{activated}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::ACTIVATED )};
+ }
+ return $self->{pgsql}{activated};
}
sub get_groups_in_moderation
{
my $self = shift;
- return $self->{'groups'}{'waited_moderation'};
+ unless(defined $self->{groups}{awaiting_moderation}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id=g.object_id LEFT JOIN vhffs_users u ON u.username = g.groupname WHERE o.state = ? AND u.username IS NULL';
+ ($self->{groups}{awaiting_moderation}) = @{$self->{db}->selectrow_arrayref( $sql, undef, Vhffs::Constants::WAITING_FOR_VALIDATION )};
+ }
+ return $self->{groups}{awaiting_moderation};
}
sub get_groups_activated
{
my $self = shift;
- return $self->{'groups'}{'activated'};
+ unless(defined $self->{groups}{activated}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_groups g INNER JOIN vhffs_object o ON o.object_id=g.object_id LEFT JOIN vhffs_users u ON u.username = g.groupname WHERE o.state='.Vhffs::Constants::ACTIVATED.' AND u.username IS NULL';
+ ($self->{groups}{activated}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{groups}{activated};
}
sub get_groups_total
{
my $self = shift;
- return $self->{'groups'}{'total'};
+ unless(defined $self->{groups}{total}) {
+ my $sql = 'SELECT COUNT(*) FROM vhffs_groups g LEFT JOIN vhffs_users u ON u.username = g.groupname WHERE u.username IS NULL';
+ ($self->{groups}{total}) = @{$self->{db}->selectrow_arrayref( $sql )};
+ }
+ return $self->{groups}{total};
}
1;
+
+
Modified: trunk/vhffs-api/src/Vhffs/User.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/User.pm 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/Vhffs/User.pm 2007-04-15 21:17:33 UTC (rev 561)
@@ -34,152 +34,100 @@
package Vhffs::User;
#Vhffs::User written by sod` <dieu AT gunnm DOT org>
-
#Vhffs::User implements Unix authentification as an module of Vhffs.
#You can manage user with Unix.
#libnss-postgresql must be used with it to have an account on a machine with the database
+=pod
-use base qw(Vhffs::Object);
-use strict;
-use DBI;
-use Vhffs::Group;
-use Vhffs::Functions;
+=head1 NAME
+Vhffs::User - Vhffs Interface to handle *NIX users
+=head1 SYNOPSIS
-sub new
-{
- my $main;
- my $uid;
- my $name;
- my $this;
- my $self;
- my $class;
-
- $class = shift;
- $main = shift;
- $name = shift;
- $uid = shift;
+ use Vhffs::Main;
+ $vhffs = init Vhffs::Main;
+ $user = Vhffs::User::get_by_username( $vhffs , "myuser" );
+ if( defined $user )
+ {
+ print "User exists\n";
+ }
+ else
+ {
+ print "User does not exists\n";
+ }
+ ...
+ $user = Vhffs::User::create( $vhffs, 'myuser', 'apassword', 0, 'myuser@xxxxxxxxx');
+ if( defined $user )
+ {
+ print "User created";
+ }
+ else
+ {
+ print "User error\n";
+ }
+ ...
+ print "Username: $user->get_username";
+ ...
+ if( $user->commit > 0 )
+ {
+ print "Update user status : succesfull\n";
+ }
+=head1 METHODS
- $this = {};
-
- if( ! defined( $name ) )
- {
- $name = get_name_by_uid( $main , $uid );
- }
+=cut
- return undef if( ! defined $name );
- return undef if( length( $name ) < 3 );
- return undef if( length( $name ) > 12 );
- return undef if( ! ( $name =~ /^[a-z0-9]+$/ ) );
-
- $this = $class->SUPER::new( $main , 1 , $uid );
- $this->{'username'} = $name;
- $this->{'uid'} = $uid if ( defined $uid );
- $this->{'group'} = new Vhffs::Group( $main , $name , $uid );
- $this->{'admin'} = 0;
-
- bless( $this , $class );
-}
+use base qw(Vhffs::Object);
+use strict;
+use DBI;
+use Vhffs::Group;
+use Vhffs::Functions;
-
-sub exists
-{
- my $self;
- my $request;
-
- $self = shift;
-
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("SELECT * FROM vhffs_users WHERE username = $self->{'username'}" ) or return -1;
-
- return -2 if ( ! defined $request->execute() );
-
- return 1;
+sub _new {
+ my ($class, $main, $uid, $gid, $oid, $username, $passwd, $homedir, $shell, $admin, $firstname, $lastname, $address, $zipcode, $city, $country, $mail, $gpg_key, $note, $language, $theme, $date_creation, $description, $state) = @_;
+ my $self = $class->SUPER::_new($main, $oid, $uid, $date_creation, $description, $state, Vhffs::Constants::TYPE_USER);
+ return undef unless(defined $self);
+ $self->{uid} = $uid;
+ $self->{gid} = $gid;
+ $self->{username} = $username;
+ $self->{passwd} = $passwd;
+ $self->{homedir} = $homedir;
+ $self->{shell} = $shell;
+ $self->{admin} = $admin;
+ $self->{firstname} = $firstname;
+ $self->{lastname} = $lastname;
+ $self->{address} = $address;
+ $self->{zipcode} = $zipcode;
+ $self->{city} = $city;
+ $self->{country} = $country;
+ $self->{mail} = $mail;
+ $self->{gpg_key} = $gpg_key;
+ $self->{note} = $note;
+ $self->{language} = $language;
+ $self->{theme} = $theme;
+ return $self;
}
+=pod
+=head2 exists
-# get unix informations for a user : uid, gid, username, status, homedir, ...
-sub fetch_unix
-{
- my $request;
- my $result;
- my $query;
- my $gid;
- my $self;
- my %hash;
- my $rows;
+ print "User $username already exists\n" if(Vhffs::User::exists($username));
- $self = shift;
+Indicates wether an username is already taken.
- $query = "SELECT * FROM vhffs_users where uid='".$self->{'uid'}."'" if( defined $self->{'uid'} );
- $query = "SELECT * FROM vhffs_users where username='".$self->{'username'}."'" if( defined $self->{'username'} );
-
-
- $request = $self->{'db'}->{'DB_READ'}->prepare( $query ) or return -2;
-
- $rows = $request->execute() or return -2;
+=cut
- if ( $rows > 0 )
- {
- $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{"$_"} = $result->{$_}
- }
- return 1;
- }
- else
- {
- return -1;
- }
-
-}
-
-
-# get a complete user
-# it fetch informations in the vhffs_users table and vhffs_user_info
-sub fetch
+sub exists
{
- my $self;
- my $request;
- my $result;
- my $ret;
+ my ($main, $username) = @_;
- $self = shift;
-
- return $ret if( ( $ret = $self->fetch_unix() ) < 0 );
-
- $request = $self->{'db'}->{'DB_READ'}->prepare("SELECT * FROM vhffs_user_info where uid=$self->{'uid'}") or return -2;
-
- $request->execute() or return -2;
-
- $result = $request->fetchrow_hashref();
-
-
- foreach ( keys %{$result} )
- {
- $self->{$_} = $result->{$_}
- }
-
- $self->{'group'}->fetch;
-
- my $v;
- foreach $v qw(firtname lastname address zipcode city country)
- {
- $self->{$v} =~ s/[\\]*//g if( defined $self->{$v} );
- }
-
- $self->SUPER::fetch;
- return 1;
+ return ($main->get_db_object()->do('SELECT uid FROM vhffs_users WHERE username = ?', undef, $username) > 0);
}
-
#add a user to a group
sub add_group
{
@@ -190,112 +138,115 @@
$self = shift;
$group = shift;
- return -1 if ( $group->fetch < 0 ) ;
+ return -1 if ( !defined $group ) ;
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("INSERT INTO vhffs_user_group VALUES( $self->get_uid , $group->get_gid )");
+ $request = $self->{'db'}->prepare('INSERT INTO vhffs_user_group VALUES( ?, ? )') or return -2;
- $request->execute() or return -2;
+ $request->execute($self->get_uid, $self->get_gid) or return -2;
return 1;
}
+=pod
-#create a new user with username and password
-sub create
-{
- my $self;
- my $config;
- my $conf;
- my $group;
- my $resultuid;
- my $uid;
- my $gid;
- my $request;
- my $query;
- my $rows;
- my $badusers;
- my $homedir;
+=head2 check_username
- ( $self ) = @_ ;
-
-
- $conf = $self->{'main'}->get_config->get_users;
- $badusers = $self->{'main'}->get_config->get_bad_username;
+ print 'Username valid' if(Vhffs::User::check_username($username));
- if( defined $badusers )
- {
+returns false if username is not valid (length not between 3 and 12, name not
+composed of alphanumeric chars)
- foreach ( @{$badusers} )
- {
- return -10 if ( $_ eq $self->{"username"} );
- }
- }
+=cut
+
+sub check_username($) {
+ my $username = shift;
+ return ( defined($username) && ($username =~ /^[a-z0-9]{3,12}$/) );
-
- $self->{'username'} =~ tr/A-Z/a-z/;
+}
+=pod
- #verify if a user already exists
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("SELECT * FROM vhffs_users WHERE username='" . $self->{'username'} . "'");
- $rows = $request->execute;
- return -1 if ( $rows != 0 );
+=head2 create
- #verify if a group with the name of the user already exists
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("SELECT * FROM vhffs_groups WHERE groupname='" . $self->{'username'} . "'");
- $rows = $request->execute;
- return -1 if ( $rows != 0 );
+ my $u = Vhffs::User::create($main, $username, $password, $admin,
+ $mail, $firstname, $lastname, $city, $zipcode,
+ $country, $address, $gpg_key);
- #compute the UID, set the minuid if not found
- $uid = $conf->{'minuid'};
- $resultuid = $self->{'db'}->{'DB_READ'}->selectall_arrayref("SELECT MAX(uid) , MAX(gid) FROM vhffs_users");
- $uid = $resultuid->[0][0] if ( defined $resultuid->[0][0] );
- $uid++;
+Create in DB and return a fully functional user.
- $self->{'uid'} = $uid;
- $self->{'owner_uid'} = $uid;
-
- my $oid = $self->SUPER::create();
- return -1 if ( $oid lt 0 );
-
- $self->{'admin'} = 0 if ( ! defined $self->{'admin'} );
-
- # get UID and GID for the current user. If gid is not given in parameters, we take the max of gid and create a group with the username
-
- $homedir = Vhffs::Functions::hash_homename( $self->{'username'} , $self->{'main'} );
+=cut
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("INSERT INTO vhffs_users VALUES('" . $self->{'uid'} ."' , '3' , '$self->{'username'}' , '".$conf->{'shell'}."' , '' , '$homedir' , '".$self->{'admin'}."' , '$oid')");
+sub create {
+ my ( $main, $username, $password, $admin, $mail, $firstname, $lastname, $city, $zipcode, $country, $address, $gpg_key ) = @_;
+ return undef unless check_username($username);
- $request->execute() or return -2;
-
+ my $userconf = $main->get_config->get_users;
+ my $badusers = $main->get_config->get_bad_username;
+ my $user;
- $request = $self->{'db'}->{'DB_WRITE'}->prepare( "INSERT INTO vhffs_user_info VALUES( '". $self->{'uid'} ."' , now() , NULL , NULL , NULL , NULL , NULL, NULL, NULL , NULL)" );
- $request->execute or return -2;
+ foreach ( @{$badusers} ) {
+ return undef if ( $_ eq $username );
+ }
-
-
- #Now, create the GID
- $self->{'group'} = new Vhffs::Group( $self->{'main'} , $self->{'username'} , $self->{'uid'} );
- $gid = $self->{'group'}->create;
- return -1 if ( $gid < 0 );
- $self->{'group'}->set_status( Vhffs::Constants::ACTIVATED );
- $self->{'group'}->commit;
- $self->{'gid'} = $gid;
+ my $dbh = $main->get_db_object;
+ # Localize RaiseError so it get restored after we finish
+ # With this enabled, DBI automagically call die if a
+ # query goes wrong.
+ local $dbh->{RaiseError} = 1;
+ $dbh->begin_work;
+ eval {
+ # object(owner_uid) references user(uid) and user(object_id) object(object_id)
+ # so we have to tell pg that constraints shouldn't be checked before the end
+ # of transaction
+ $dbh->do('SET CONSTRAINTS ALL DEFERRED');
+
+ my ($uid) = $dbh->selectrow_array('SELECT nextval(\'vhffs_users_uid_seq\')');
+ my ($gid) = $dbh->selectrow_array('SELECT nextval(\'vhffs_groups_gid_seq\')');
+
+ # Create corresponding object
+ my $parent = Vhffs::Object::create($main, $uid, '', undef, Vhffs::Constants::TYPE_USER);
+ die('Error creating parent') unless (defined $parent);
+ # Insert base information
+ $admin = 0 unless (defined $admin);
+ my $homedir = Vhffs::Functions::hash_homename( $username , $main );
+ $firstname = $userconf->{'default_firstname'} unless ( defined $firstname );
+ $lastname = $userconf->{'default_lastname'} unless ( defined $lastname );
+ $address = $userconf->{'default_address'} unless ( defined $address );
+ $zipcode = $userconf->{'default_zipcode'} unless ( defined $zipcode );
+ $city = $userconf->{'default_city'} unless ( defined $city );
+ $mail = $userconf->{'default_mail'} unless ( defined $mail );
+ $gpg_key = " " unless ( defined $gpg_key && $gpg_key ne "" );
+ $country = $userconf->{'default_country'} unless ( defined $country );
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_users SET gid = '" . $self->{'gid'} . "' WHERE username='" . $self->{'username'}."'") or return -2;
- $request->execute or return -3;
+ my $sth = $dbh->prepare('INSERT INTO vhffs_users (uid, gid, username, shell, passwd, homedir, admin, firstname, lastname, address, zipcode, city, country, mail, gpg_key, note, language, theme, object_id) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?, ?)');
+ $sth->execute($uid, $gid, $username, $userconf->{'shell'}, Vhffs::Functions::password_encrypt($password), $homedir, $admin, $firstname, $lastname, $address, $zipcode, $city, $country, $mail, $gpg_key, Vhffs::Constants::DEFAULT_LANG, Vhffs::Constants::DEFAULT_THEME, $parent->get_oid);
+
+ my $group = Vhffs::Group::create($main, $username, $uid, $gid);
+ die('Error creating group') unless (defined $group);
+ $group->set_status(Vhffs::Constants::ACTIVATED);
+ $group->commit;
- $self->commit;
-
- return $self->{'uid'};
-}
+ $dbh->commit;
+ $user = get_by_uid($main, $uid);
+ };
+ if($@) {
+ warn "Error creating user : $@\n";
+ $dbh->rollback;
+ undef $user;
+ }
+ return $user;
+}
-
#modify a user
-#use as this : modify_user($db->{'DB_WRITE'} , username , field , value);
-#Example : modify_user($db->{'DB_WRITE'} , "soda" , "shell" , "/bin/bash");
+#use as this : modify_user($db , username , field , value);
+#Example : modify_user($db , "soda" , "shell" , "/bin/bash");
+#
+# DEPRECATED WILL BE REMOVED use set_xxx instead
+#
+#
sub modify
{
my $field;
@@ -309,20 +260,14 @@
return -2 if( $field eq "username" );
- # if the field is username, shell, passwd or homedir, we will modify the vhffs_users table
- # if not, we modify vhffs_user_info table
if ( $field eq "passwd" )
{
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_users SET passwd=" + Vhffs::Main::password_encrypt $value + " WHERE uid='$self->{'uid'}'") or return -3;
+ $request = $self->{'db'}->prepare("UPDATE vhffs_users SET passwd='" + Vhffs::Main::password_encrypt $value + "' WHERE uid='$self->{'uid'}'") or return -3;
}
- elsif( $field =~ /shell|status|homedir/ )
- {
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_users SET $field='$value' WHERE uid='$self->{'uid'}'") or return -3;
- }
else
{
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("UPDATE vhffs_user_info SET $field='$value' WHERE uid='$self->{'uid'}'") or return -3;
+ $request = $self->{'db'}->prepare("UPDATE vhffs_users SET $field='$value' WHERE uid='$self->{'uid'}'") or return -3;
}
$request->execute() or return -4;
@@ -349,26 +294,14 @@
$self->{'gpg_key'} = " " if( ( ! defined $self->{'gpg_key'} ) || ( $self->{'gpg_key'} eq "" ) );
$self->{'country'} = $self->{'main'}->get_config->get_users->{'default_country'} if ( !defined $self->{'country'} );
- my $v;
- foreach $v qw(firstname lastname address zipcode city country)
- {
- $self->{$v} = quotemeta ( $self->{$v} );
- }
-
- my $request_info = "UPDATE vhffs_user_info SET firstname='".$self->{'firstname'} ."', lastname='".$self->{'lastname'}."', address='".$self->{'address'}."', zipcode='".$self->{'zipcode'}."', country='".$self->{'country'}."', mail='".$self->{'mail'}."', city='".$self->{'city'}."', gpg_key='".$self->{'gpg_key'}."' WHERE uid='".$self->{'uid'}."'";
-
-# print $request_info;
-
- my $request_unix = "UPDATE vhffs_users SET shell='".$self->{'shell'}."', passwd='".$self->{'passwd'}."', admin=".$self->{'admin'}." WHERE uid=".$self->{'uid'};
-
-
return -1 if( $self->SUPER::commit < 0 );
- my $result_unix = $self->{'db'}->{'DB_WRITE'}->prepare($request_unix) or return -1;
- $result_unix->execute or return -4;
- my $result_info = $self->{'db'}->{'DB_WRITE'}->prepare($request_info) or return -2;
- $result_info->execute or return -3;
-
+ my $sql = 'UPDATE vhffs_users SET shell = ?, passwd = ?, admin = ?, firstname = ?, lastname = ?, address = ?, zipcode = ?, country = ?, mail = ?, city = ?, gpg_key = ? WHERE uid = ?';
+ my $sth = $self->{db}->prepare($sql) or return -1;
+ $sth->execute($self->{'shell'}, $self->{'passwd'}, $self->{'admin'},
+ $self->{'firstname'}, $self->{'lastname'}, $self->{'address'}, $self->{'zipcode'},
+ $self->{'country'}, $self->{'mail'}, $self->{'city'}, $self->{'gpg_key'}, $self->{'uid'}) or return -3;
+
return 1;
}
@@ -383,8 +316,6 @@
$self = shift;
- return -1 if ($self->fetch < 0 );
-
return -1 if ( ! defined $self->{'username'} );
return -1 if ( ! defined $self->{'uid'} );
return -2 if ( $self->{'group'}->delete < 0 );
@@ -403,26 +334,13 @@
}
}
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_panel_user_prefs WHERE uid='".$self->{'uid'}."'");
- $request->execute() or return -2;
-
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_users WHERE uid='".$self->{'uid'}."'");
- $request->execute() or return -1;
-
- $request = $self->{'db'}->{'DB_WRITE'}->prepare("DELETE FROM vhffs_user_group WHERE uid='".$self->{'uid'}."'");
- $request->execute() or return -2;
-
-
- $self->SUPER::delete;
-
- return 1;
+ # User references corresponding object with an ON DELETE cascade foreign key
+ # so we don't even need to delete user
+ # rows that reference this user will be deleted by foreign keys constraints
+ return $self->SUPER::delete;
}
-
-
-
-
sub uid_exists
{
my ( $dbh , $uid ) = @_;
@@ -430,11 +348,11 @@
return -1 if ( !defined $uid);
- $request = $dbh->prepare("SELECT * FROM vhffs_users WHERE uid= '$uid'");
- $request->execute;
+ $request = $dbh->prepare('SELECT COUNT(*) FROM vhffs_users WHERE uid=?');
+ $request->execute($uid);
- return -1 if ( $request->rows != 1 );
-
+ my ($result) = $request->fetchrow_array();
+ return $result;
}
@@ -598,30 +516,23 @@
sub get_lang
{
my $self = shift;
-
- my $query = "SELECT language FROM vhffs_panel_user_prefs WHERE uid='".$self->get_uid."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- my $rows = $request->execute;
-
- if( $rows == 0 )
- {
- return Vhffs::Constants::DEFAULT_LANG;
- }
- else
- {
- my $value = $request->fetchrow_arrayref;
- return $value->[0];
- }
+ my $request;
+ return $self->{language};
}
-
sub get_mail
{
my $self = shift;
return $self->{'mail'};
}
+sub get_theme
+{
+ my $self = shift;
+ return $self->{theme};
+}
+
sub get_address
{
my $self = shift;
@@ -645,7 +556,7 @@
{
my $self = shift;
my $value = shift;
- $self->{'shell'} = quotemeta $value;
+ $self->{'shell'} = $value;
}
@@ -653,21 +564,21 @@
{
my $self = shift;
my $value = shift;
- $self->{'firstname'} = quotemeta $value;
+ $self->{'firstname'} = $value;
}
sub set_lastname
{
my $self = shift;
my $value = shift;
- $self->{'lastname'} = quotemeta $value;
+ $self->{'lastname'} = $value;
}
sub set_city
{
my $self = shift;
my $value = shift;
- $self->{'city'} = quotemeta $value;
+ $self->{'city'} = $value;
}
@@ -683,14 +594,14 @@
{
my $self = shift;
my $value = shift;
- $self->{'country'} = quotemeta $value;
+ $self->{'country'} = $value;
}
sub set_address
{
my $self = shift;
my $value = shift;
- $self->{'address'} = quotemeta $value;
+ $self->{'address'} = $value;
}
sub set_mail
@@ -772,9 +683,9 @@
sub get_name_by_uid
{
my $main = shift;
- my $gid = shift;
- my $request = $main->{'db'}->{'DB_READ'}->prepare("SELECT username FROM vhffs_users where uid='".$gid."'") or return -2;
- my $rows = $request->execute();
+ my $uid = shift;
+ my $request = $main->{'db'}->prepare('SELECT username FROM vhffs_users where uid=?') or return -2;
+ my $rows = $request->execute($uid);
if( $rows == 0 )
{
@@ -782,8 +693,8 @@
}
else
{
- my $result = $request->fetchrow_hashref();
- return( $result->{username} );
+ my ($result) = $request->fetchrow_array();
+ return $result;
}
}
@@ -794,21 +705,26 @@
my $state = shift ;
my $name = shift ;
my @users;
+ my @params;
return if( ! defined $vhffs );
my $query;
- $query = "SELECT username FROM vhffs_users vu , vhffs_user_info vi, vhffs_object o WHERE vu.uid=vi.uid AND o.object_id=vu.object_id ";
- $query.= " AND ( vu.username LIKE '%".$name."%' OR vi.firstname LIKE '%".$name."%' OR vi.lastname LIKE '%".$name."%' )" if( defined $name );
- $query.= " AND o.state='".$state."'" if( defined $state );
+ $query = 'SELECT username FROM vhffs_users vu INNER JOIN vhffs_object o ON o.object_id = vu.object_id WHERE o.object_id=vu.object_id ';
+ if(defined $name) {
+ $name = "\%$name\%";
+ $query.= ' AND ( vu.username LIKE ? OR vu.firstname LIKE ? OR vu.lastname LIKE ? )';
+ push @params, $name, $name, $name;
+ }
+ (push(@params, $state), $query.= ' AND o.state=?') if( defined $state );
$query.="ORDER BY username";
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
- $request->execute;
- while( my $row = $request->fetchrow_arrayref )
+ my $request = $vhffs->{'db'}->prepare( $query );
+ $request->execute(@params);
+ while( my ($name) = $request->fetchrow_array )
{
- my $user = new Vhffs::User( $vhffs , $row->[0] , '401' );
- if( ( defined $user ) && ( $user->fetch > 0 ) )
+ my $user = Vhffs::User::get_by_username( $vhffs , $name );
+ if( defined $user )
{
push @users , $user;
}
@@ -825,13 +741,13 @@
return if ( !defined $vhffs );
- my $query = "SELECT username FROM vhffs_users ORDER BY uid DESC LIMIT 10";
- my $request = $vhffs->{'db'}->{'DB_READ'}->prepare( $query );
+ my $query = 'SELECT uid FROM vhffs_users ORDER BY uid DESC LIMIT 10';
+ my $request = $vhffs->{'db'}->prepare( $query );
$request->execute;
- while( my $row = $request->fetchrow_arrayref )
+ while( my ($uid) = $request->fetchrow_array )
{
- my $user = new Vhffs::User( $vhffs , $row->[0] , '401' );
- if( $user->fetch > 0 )
+ my $user = Vhffs::User::get_by_uid( $vhffs , $uid );
+ if( defined $user )
{
push @users , $user;
}
@@ -845,16 +761,15 @@
{
my $self = shift;
- return undef if( $self->fetch < 0 );
my @groups;
my $uid = $self->get_uid;
- my $query = "SELECT g.groupname FROM vhffs_groups g, vhffs_user_group ug WHERE ug.uid='".$uid."' AND g.gid=ug.gid ORDER BY g.groupname";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- return undef if( $request->execute <= 0 );
- while( my $row = $request->fetchrow_arrayref )
+ my $query = 'SELECT g.groupname FROM vhffs_groups g INNER JOIN vhffs_user_group ug ON g.gid=ug.gid WHERE ug.uid=? ORDER BY g.groupname';
+ my $request = $self->{'db'}->prepare( $query );
+ return undef if( ! $request->execute($uid) );
+ while( my ($groupname) = $request->fetchrow_array )
{
- my $group = new Vhffs::Group( $self->{'main'} , $row->[0] , '401' );
- push( @groups , $group ) if( $group->fetch );
+ my $group = Vhffs::Group::get_by_groupname( $self->{'main'} , $groupname );
+ push( @groups , $group ) if( defined($group) );
}
return \@groups;
}
@@ -864,161 +779,61 @@
{
my $self = shift;
- return -1 if( $self->fetch < 0 );
my $uid = $self->get_uid;
- my $query = "SELECT COUNT(g.groupname) FROM vhffs_groups g, vhffs_user_group ug, vhffs_object o WHERE ug.uid='".$uid."' AND g.gid=ug.gid AND o.object_id=g.object_id AND o.state='".Vhffs::Constants::ACTIVATED."'";
- my $request = $self->{'db'}->{'DB_READ'}->prepare( $query );
- return -1 if( $request->execute <= 0 );
+ my $query = 'SELECT COUNT(g.groupname) FROM vhffs_groups g, vhffs_user_group ug, vhffs_object o WHERE ug.uid=? AND g.gid=ug.gid AND o.object_id=g.object_id AND o.state='.Vhffs::Constants::ACTIVATED;
+ my $request = $self->{'db'}->prepare( $query );
+ return -1 if( !$request->execute($uid) );
my $row = $request->fetchrow_arrayref;
return -1 if ( ! defined $row );
return $row->[0];
}
-1;
+sub get_by_uid {
+ my ($main, $uid) = @_;
+ my $query = 'SELECT u.uid, u.gid, u.object_id, u.username, u.passwd, u.homedir, u.shell, u.admin, u.firstname, u.lastname, u.address, u.zipcode, u.city, u.country, u.mail, u.gpg_key, u.note, u.language, u.theme, o.date_creation, o.description, o.state FROM vhffs_users u INNER JOIN vhffs_object o ON o.object_id = u.object_id WHERE u.uid = ?';
+ my $dbh = $main->get_db_object;
+ my @params = $dbh->selectrow_array($query, undef, $uid);
+ return undef unless(@params);
+ my $user = _new Vhffs::User($main, @params);
+ $user->{group} = Vhffs::Group::get_by_gid($main, $user->get_gid);
+ return $user;
+}
-__END__
+=pod
-=head1 NAME
+=head2 get_by_username
-Vhffs::User - Vhffs Interface to handle *NIX users
+ my $user = Vhffs::User::get_by_username($main, $username);
+ die('User not found') unless defined($user);
-=head1 SYNOPSIS
+Fetches an user using its username. Returned user is fully functional.
- use Vhffs::Main;
- $vhffs = init Vhffs::Main;
- $user = new Vhffs::User( $vhffs , "myuser" , 401 );
- if( $user->fetch > 0 )
- {
- print "User exists\n";
- }
- else
- {
- print "User does not exists\n";
- }
- ...
- if( $user->create > 0 )
- {
- print "User created";
- }
- else
- {
- print "User error\n";
- }
- ...
- print "Username: $user->get_username";
- ...
- if( $user->commit > 0 )
- {
- print "Update user status : succesfull\n";
- }
+=cut
-=head1 METHODS
+sub get_by_username {
+ my ($main, $username) = @_;
+ my $query = 'SELECT u.uid, u.gid, u.object_id, u.username, u.passwd, u.homedir, u.shell, u.admin, u.firstname, u.lastname, u.address, u.zipcode, u.city, u.country, u.mail, u.gpg_key, u.note, u.language, u.theme, o.date_creation, o.description, o.state FROM vhffs_users u INNER JOIN vhffs_object o ON o.object_id = u.object_id WHERE u.username = ?';
+ my $dbh = $main->get_db_object;
+ my @params = $dbh->selectrow_array($query, undef, $username);
+ return undef unless(@params);
+ my $user = _new Vhffs::User($main, @params);
+ $user->{group} = Vhffs::Group::get_by_gid($main, $user->get_gid);
+ return $user;
-For each method, returns 1 if success, 0 otherwise. If the method should returns a reference, returns undef if fails.
+}
-new( Vhffs::Main , "username" , "uid" ) : instanciate a new user
+1;
-exists( ) : return 1 if the user exists, 0 otherwise
+__END__
-fetch( ) : fetch informations for this user from the database. You have to call fetch before working on the user
-
-get_all_unix_users( ) - static method : returns a hashref with all unix users. Hashkey is the username
-
-get_all_users( ) - static method : returns a hashref with all users. Hashkey is the username
-
-add_group( Vhffs::Group ) : add a user in a group. Returns 1 if success, 0 otherwise
-
-create( ) : create the user. Returns 1 if success, 0 otherwise
-
-commit( ) : commit changes on the current instance on the database
-
-delete( ) : delete the user from the platform
-
-send_mail( $subject , $content ) : send a mail to the user. The subject of the mail is the first argument, the second if the content of the mail
-
-generate_password( ) : generate a new password for this user. Returns the password.
-
-get_username( )
-
-get_firstname( )
-
-get_lastname( )
-
-get_city( )
-
-get_country( )
-
-get_gpg( )
-
-get_zipcode( )
-
-get_home( )
-
-get_password( ) : returns the encrypted password
-
-set_password( $clear ) : set a new password. New password is given in the argument
-
-get_uid( )
-
-get_gid( )
-
-get_lang( )
-
-get_mail( )
-
-get_group( )
-
-get_address( )
-
-get_shell( )
-
-set_username( $name )
-
-set_firstname( $firstname )
-
-set_lastname( $lastname )
-
-set_city( $city )
-
-set_country( $country )
-
-set_gpg( $gpg )
-
-set_zipcode( $zc )
-
-set_admin( 1 or 0 )
-
-set_mail( $mail )
-
-set_address( )
-
-set_shell( )
-
-is_admin( ) : returns 1 if the user is admin 0 otherwise
-
-is_moderator( ) : returns 1 if the user is moderator 0 otherwise
-
-get_name_by_uid( $uid ) : returns the name that correspond to the uid given in parameter. Return "nobody" if no user own this uid
-
-getall( Vhffs::Main , $state , $name )
-
-get_last_users( ) : returns an array with the last 10 users
-
-get_groups( ) : returns a arrayred with the groups of the user
-
-have_groups( ) : returns 0 if user don't have groups, else returns the number of groups, returns < 0 if an error occured
-
-
-
-
-
-
=head1 SEE ALSO
Vhffs::Group , Vhffs::Main , Vhffs::Constants
-=head1 AUTHOR
+=head1 AUTHORS
Julien Delange <julien at tuxfamily dot org>
+
+Sebastien Le Ray <beuss at tuxfamily dot org>
Modified: trunk/vhffs-api/src/examples/add_acl.pl
===================================================================
--- trunk/vhffs-api/src/examples/add_acl.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/add_acl.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,31 +3,23 @@
use strict;
-use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::Httpd;
use Vhffs::Acl;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername username level\n") if(@ARGV != 3);
+my ($servername, $username, $level) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-my $httpd = new Vhffs::Services::Httpd( $princ , "proutlol2.com" , $user );
+my $httpd = Vhffs::Services::Httpd::get_by_servername($princ, $servername);
+die("Webarea $servername not found\n") unless(defined $httpd);
-Vhffs::Acl::add_acl( $user , $httpd , 3 , $princ );
+Vhffs::Acl::add_acl( $user, $httpd, $level, $princ );
Modified: trunk/vhffs-api/src/examples/add_acl_dns.pl
===================================================================
--- trunk/vhffs-api/src/examples/add_acl_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/add_acl_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,32 +4,24 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::DNS;
use Vhffs::Acl;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $group;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 domain user level\n") unless(@ARGV == 3);
+my ($domain, $username, $level) = @ARGV;
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
-$group = new Vhffs::Group( $princ , "sodalol" , 401) ;
+my $dns = Vhffs::Services::DNS::get_by_domainname($princ , $domain);
+die("Domain $domain not found\n") unless(defined $dns);
-my $httpd = new Vhffs::Services::DNS ($princ , "prout.com" , $user , $group);
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-Vhffs::Acl::add_acl( $user , $httpd , 3 , $princ->get_db_object );
+Vhffs::Acl::add_acl($user, $dns, $level, $princ);
+print "User $username has now access level $level domain $domain\n";
Modified: trunk/vhffs-api/src/examples/create_box.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,66 +4,18 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 mail_domain local_part password\n") unless(@ARGV == 3);
+my ($domain, $local, $pass) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $mail = Vhffs::Services::Mail::get_by_mxdomain($princ, $domain);
+die("Mail domain $domain not found\n") unless(defined $mail);
-my $mail = new Vhffs::Services::Mail( $princ , $ARGV[0] , $user , $group);
-
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
-
-
-if( $mail->fetch < 0 )
-{
- print "can't fetch mail object";
- exit 0;
-}
-
-if( $mail->addbox("soda" , "prout") < 0 )
-{
- print "can't add this part to the mail object";
- exit 0;
-}
-
-
-my $retour = $mail->commit;
-
-if( $retour < 0 )
-{
- print "ERROR while create box, returns $retour \n";
-}
-else
-{
- print "Successfully create box : $retour \n";
-}
-
-
-use Data::Dumper;
-
+die("Unable to create box $local\@$domain\n") if( $mail->addbox($local, $pass) < 0 );
+print "Box $local\@$domain successfully created\n";
Modified: trunk/vhffs-api/src/examples/create_cvs.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_cvs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_cvs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -32,12 +33,11 @@
}
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-$group = new Vhffs::Group( $princ , "soda" , 401) ;
+$user = Vhffs::User::get_by_username( $princ, 'soda' );
+$group = Vhffs::Group::get_by_groupname( $princ, 'soda' );
+my $cvs = Vhffs::Services::Cvs::create( $princ , "$ARGV[0]" , 'Sample cvs repo', $user , $group );
-my $cvs = new Vhffs::Services::Cvs( $princ , "$ARGV[0]" , $user , $group );
-
if( defined $cvs )
{
print "object created\n";
@@ -48,20 +48,4 @@
exit;
}
-if( $cvs->create > 0)
-{
- print "Successfully create cvs object in the database\n";
-}
-else
-{
- print "ERROR while create cvs object in the database\n";
- exit( 0 );
-}
-
-if ( $cvs->fetch < 0 )
-{
- print "error while fetching informations in the database";
-}
-$cvs->commit;
-
print Dumper $cvs;
Modified: trunk/vhffs-api/src/examples/create_cvs_panel.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_cvs_panel.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_cvs_panel.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,49 +3,24 @@
use strict;
-use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Panel::Cvs;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 cvsroot description owner_username owner_groupname\n") unless(@ARGV == 4);
-if( $#ARGV != 0 )
-{
- print "Error ! Exec this script as it : create_cvs cvsroot";
- print "Example : create_cvs moncvs";
- exit( 0 );
-}
+my ($cvsroot, $description, $username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-$group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $cvs = Vhffs::Panel::Cvs::create_cvs( $princ, $cvsroot, $description, $user, $group );
-
-my $cvs = Vhffs::Panel::Cvs::create_cvs( $princ , "$ARGV[0]" , $user , $group );
-
-
-if( $cvs > 0)
-{
- print "Successfully create cvs object in the database\n";
-}
-else
-{
- print "ERROR while create cvs object in the database\n";
- exit( 0 );
-}
-
+die("Unable to create cvs $cvsroot\n") unless(defined $cvs);
+print "CVS $cvsroot created\n";
Modified: trunk/vhffs-api/src/examples/create_dir.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_dir.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_dir.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Functions;
print Vhffs::Functions::create_dir( "/data/prout/zozoo/pezojfzpje" );
Modified: trunk/vhffs-api/src/examples/create_dns.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,62 +12,25 @@
use Vhffs::Object;
use Vhffs::Services::DNS;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage $0 domain_name, description, user, group") unless(@ARGV == 4);
-if( $#ARGV != 0 )
-{
- print "Error ! Exec this script as it : create_dns domain";
- print "Example : create_dns prout.com";
-}
+my ($domain, $description, $username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "sod" , 401) ;
-$group = new Vhffs::Group( $princ , "prout" , 401) ;
+my $dns = Vhffs::Services::DNS::create( $princ , $domain, $description, $user , $group );
-
-my $dns = new Vhffs::Services::DNS( $princ , "$ARGV[0]" , $user , $group );
-
if( defined $dns )
{
- print "object created\n";
+ print "Domain $domain successfully created\n";
}
else
{
- print "object error\n";
- exit;
+ die("Unable to create object, check syntax and uniqueness\n");
}
-my $retour;
-
-if( ( $retour = $dns->create ) > 0)
-{
- print "Successfully create dns object in the database\n";
-}
-else
-{
- print "ERROR while create dns object in the database $retour\n";
-}
-
-if ( $dns->fetch < 0 )
-{
- print "error while fetching informations in the database";
-}
-else
-{
- print "fetch reussi\n";
-$dns->commit;
-
-$dns->add_a("prou" , "900.10.10.3");
-$dns->add_mx("mx.".$ARGV[0]);
-}
Modified: trunk/vhffs-api/src/examples/create_forward.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,66 +4,24 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 mxdomain localpart remote_address\n") unless(@ARGV == 3);
+my ($domain, $local, $remote) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $mail = Vhffs::Services::Mail::get_by_mxdomain($princ, $domain);
-my $mail = new Vhffs::Services::Mail( $princ , $ARGV[0] , $user , $group);
+die("Mail domain $domain not found\n") unless(defined $mail);
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
-
-if( $mail->fetch < 0 )
+if( $mail->addforward($local, $remote) < 0 )
{
- print "can't fetch mail object";
- exit 0;
+ die "Unable to add forward $local\@". $mail->get_domain ." -> $remote\n";
}
-if( $mail->addforward("soda2" , "prout" , "julien\@gunnm.org") < 0 )
-{
- print "can't add this part to the mail object";
- exit 0;
-}
-
-
-my $retour = $mail->commit;
-
-if( $retour < 0 )
-{
- print "ERROR while create box, returns $retour \n";
-}
-else
-{
- print "Successfully create box : $retour \n";
-}
-
-
-use Data::Dumper;
-
+print "Forward created\n";
Modified: trunk/vhffs-api/src/examples/create_group.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,66 +3,32 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Object;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 groupname owner_username description\n") unless(@ARGV == 3);
-if( $#ARGV != 0 )
-{
- print "Error ! Create a new group with : create_group groupname";
- print "Example : create_group soda";
-}
+my ($groupname, $username, $description) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
-print "Creation du group $ARGV[0]\n";
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
+my $group = Vhffs::Group::create($princ, $groupname, $user->get_uid, undef, $description) ;
-if( $user->fetch <= 0 )
+if( !defined $group )
{
- print "Erreur, l'utilisateur pour creer le groupe n'existe pas !";
-
+ die "Unable to create group $groupname\n";
}
-
-my $group = new Vhffs::Group( $princ , $ARGV[0] , $user->get_uid) ;
-#on fetche l'utilisateur
-my $retour;
-$retour = $group->fetch;
-if ( $retour > 0 )
-{
- print "Ce groupe existe deja\n";
- exit 0;
-}
-
-
-#on le cree dans la base
-my $gid = $group->create;
-if( $gid lt 0 )
-{
- print "Impossible de creer ce groupe, code retour $gid \n";
- exit 0;
-}
else
{
- $user->commit;
-
- print "Utilisateur cree avec comme gid $gid !\n";
+ print "Group $groupname created!\n";
}
$group->add_user( $user );
-
-exit;
Modified: trunk/vhffs-api/src/examples/create_group_by_panel.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_group_by_panel.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_group_by_panel.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,49 +3,23 @@
use strict;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 groupname owner_username decription\n") unless(@ARGV == 3);
-if( $#ARGV != 0 )
-{
- print "Error ! Create a new group with : create_group groupname";
- print "Example : create_group soda";
-}
+my ($groupname, $username, $description) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-print "Creation du group $ARGV[0]\n";
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
-
#add this group in database
-my $retour = Vhffs::Panel::Group::create_group( $ARGV[0] , $user , $princ );
-if( $retour lt 0 )
-{
- print "Impossible de creer ce groupe\n";
- exit 0;
-}
-else
-{
+my $group = Vhffs::Panel::Group::create_group( $groupname, $user , $princ, $description );
+die("Unable to create group $groupname\n") unless(defined $group);
- print "Groupe cree !\n";
-}
-
-
-
-exit;
+print("Group $groupname created\n");
Modified: trunk/vhffs-api/src/examples/create_list.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -12,45 +13,25 @@
use Vhffs::Services::Mail;
use Vhffs::Services::Mailing;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 local_part domain admin_email description owner_username owner_groupname\n") unless(@ARGV == 6);
+my ($local, $domain, $admin, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "prout" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-my $mail = new Vhffs::Services::Mailing( $princ , "bla3" , "prout.com" , $user , $group);
+my $mail = Vhffs::Services::Mailing::create($princ, $local, $domain, $admin, $description, $user, $group);
if( defined $mail )
{
- print "object created\n";
+ print "Mailing list $local\@$domain created\n";
}
else
{
- print "object error\n";
- exit;
+ die("Unable to create mailing list $local\@$domain, please check syntax and uniqueness\n");
}
-my $retour = $mail->create;
-
-if( $retour < 0 )
-{
- print "ERROR while create mail object in the database, returns $retour \n";
-}
-else
-{
- print "Successfully create mail object in the database : $retour \n";
-}
-
-
-use Data::Dumper;
-
Modified: trunk/vhffs-api/src/examples/create_mail.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_mail.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_mail.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,45 +12,25 @@
use Vhffs::Object;
use Vhffs::Services::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage $0 domain description owner_username owner_groupname") if(@ARGV != 4);
+my ($domain, $description, $username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $mail = Vhffs::Services::Mail::create( $princ , $domain, $description, $user , $group);
-my $mail = new Vhffs::Services::Mail( $princ , $ARGV[0] , $user , $group);
-
if( defined $mail )
{
- print "object created\n";
+ print "Mail domain $domain created\n";
}
else
{
- print "object error\n";
+ print "Error creating domain (check syntax and uniqueness)\n";
exit;
}
-my $retour = $mail->create;
-
-if( $retour < 0 )
-{
- print "ERROR while create mail object in the database, returns $retour \n";
-}
-else
-{
- print "Successfully create mail object in the database : $retour \n";
-}
-
-
-use Data::Dumper;
-
Modified: trunk/vhffs-api/src/examples/create_mysql.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,64 +12,26 @@
use Vhffs::Object;
use Vhffs::Services::Mysql;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 dbname dbuser dbpass description owner_username owner_groupname\n") unless(@ARGV == 6);
-if( $#ARGV != 2 )
-{
- print "Error ! Exec this script as it : create_mysql base user pass";
- print "Example : create_mysql soda prout";
-}
+my ($dbname, $dbuser, $dbpass, $description, $username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $sql = Vhffs::Services::Mysql::create($princ , $dbname, $dbuser, $dbpass, $description, $user, $group);
-my $sql = new Vhffs::Services::Mysql( $princ , "$ARGV[0]" , $user);
-
if( defined $sql )
{
- print "object created\n";
+ print "Mysql service $dbname created\n";
}
else
{
- print "object error\n";
- exit;
+ die("Unable to create MySQL service $dbname\n");
}
-if( $sql->set_dbusername( $ARGV[1] ) < 0 )
-{
- print "L'utilisateur Mysql desire est deja pris !";
- exit 0;
-}
-$sql->set_dbpassword( $ARGV[2] );
-
-$sql->set_group( $group );
-
-if( $sql->create > 0)
-{
-
- print "Successfully create sql object in the database\n";
-}
-else
-{
- print "ERROR while create sql object in the database\n";
-}
-
-if ( $sql->fetch < 0 )
-{
- print "error while fetching informations in the database";
-}
-$sql->commit;
-
-
Modified: trunk/vhffs-api/src/examples/create_mysql_panel.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_mysql_panel.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_mysql_panel.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,46 +3,25 @@
use strict;
-use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Mysql;
use Vhffs::Panel::Mysql;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
-if( $#ARGV != 2 )
-{
- print "Error ! Exec this script as it : create_mysql base user pass";
- print "Example : create_mysql soda prout";
-}
+die("Usage: $0 dbname dbuser dbpass description owner_username owner_groupname\n") unless(@ARGV == 6);
+my ($dbname, $dbuser, $dbpass, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
+my $mysql = Vhffs::Panel::Mysql::create_mysql( $princ, $dbname, $user, $group, $dbuser, $dbpass, $description );
-my $sql = Vhffs::Panel::Mysql::create_mysql( $princ , "$ARGV[0]" , $user,$group,$ARGV[1],$ARGV[2]);
-
-if( defined $sql )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
+die("Unable to create mysql service $dbname\n") unless(defined $mysql);
+print("MySQL service created\n");
Modified: trunk/vhffs-api/src/examples/create_panel_mail.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_panel_mail.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_panel_mail.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,44 +4,24 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Mail;
use Vhffs::Panel::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 domain description owner_username owner_groupname\n") unless(@ARGV == 4);
+my ($domain, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-my $mail = Vhffs::Panel::Mail::create_mail( $princ , $ARGV[0] , $user , $group);
+my $mail = Vhffs::Panel::Mail::create_mail( $princ, $domain, $description, $user, $group);
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
-
-
-use Data::Dumper;
-
-print $mail;
-
+die("Unable to create mail domain $domain\n") unless(defined $mail);
+print("Mail domain $domain created\n");
Modified: trunk/vhffs-api/src/examples/create_postgres.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_postgres.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_postgres.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,66 +12,27 @@
use Vhffs::Object;
use Vhffs::Services::Postgres;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
-if( $#ARGV != 2 )
-{
- print "Error ! Exec this script as it : create_postgres base user pass";
- print "Example : create_mysql soda prout";
-}
+die("Usage: $0 dbname dbuser dbpass description user group\n") unless(@ARGV == 6);
+my ($dbname, $dbuser, $dbpass, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "sodaproject" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-print "gros con" if ( $group->fetch < 0 );
+my $sql = Vhffs::Services::Postgres::create( $princ , $dbname, $dbuser, $dbpass, $description, $user, $group);
-my $sql = new Vhffs::Services::Postgres( $princ , "$ARGV[0]" , $user , $group);
-
if( defined $sql )
{
- print "object created\n";
+ print "Postgres Service $dbname created\n";
}
else
{
- print "object error\n";
- exit;
+ die("Unable to create $dbname, check syntax and uniqueness\n");
}
-if( $sql->set_dbusername( $ARGV[1] ) < 0 )
-{
- print "L'utilisateur Mysql desire est deja pris !";
- exit 0;
-}
-$sql->set_dbpassword( $ARGV[2] );
-$sql->set_user( $user );
-$sql->set_group( $group );
-
-if( $sql->create > 0)
-{
-
- print "Successfully create sql object in the database\n";
-}
-else
-{
- print "ERROR while create sql object in the database\n";
-}
-
-if ( $sql->fetch < 0 )
-{
- print "error while fetching informations in the database";
-}
-$sql->commit;
-
-
Modified: trunk/vhffs-api/src/examples/create_repository.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,59 +12,26 @@
use Vhffs::Object;
use Vhffs::Services::Repository;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 reponame description username groupname\n") unless(@ARGV == 4);
-if( $#ARGV != 0 )
-{
- print "Error ! Exec this script as it : create_repository name\nExample : create_repository mypr0n\n";
- exit( 0 );
-}
+my ($reponame, $description, $username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "gradator" , 401) ;
-$group = new Vhffs::Group( $princ , "gradator" , 401) ;
+my $repo = Vhffs::Services::Repository::create($princ, $reponame, $description, $user, $group );
-
-my $repo = new Vhffs::Services::Repository( $princ , "$ARGV[0]" , $user , $group );
-
if( defined $repo )
{
- print "object created\n";
+ print "Repository $reponame created\n";
}
else
{
- print "object error\n";
+ print "Unable to create $reponame, check syntax and uniqueness\n";
exit;
}
-if( $repo->create > 0)
-{
- print "Successfully created repository object in the database\n";
-}
-else
-{
- print "ERROR while creating repository object in the database\n";
- exit( 0 );
-}
-
-print "plop\n";
-
-if ( $repo->fetch < 0 )
-{
- print "Error while fetching informations in the database";
-}
-
-$repo->commit;
-
-print Dumper $repo;
Modified: trunk/vhffs-api/src/examples/create_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,72 +3,30 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Object;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username password\n") unless(@ARGV == 2);
-if( $#ARGV != 0 )
-{
- print "Error ! Create a new user with : create_user username";
- print "Example : create_user soda";
-}
+my ($username, $password) = @ARGV;
+die("User $username already exists\n") if(Vhffs::User::exists($princ, $username));
-print "Creation du user $ARGV[0]\n";
-$user = new Vhffs::User( $princ , "$ARGV[0]" , 401) ;
+my $user = Vhffs::User::create($princ, $username, $password);
-
-#on fetche l'utilisateur
-my $retour;
-$retour = $user->fetch;
-if ( $retour > 0 )
+if( !defined $user )
{
- print "Cet utilisateur existe deja\n";
- exit 0;
+ die "Unable to create user $username\n";
}
-
-
-#on le cree dans la base
-my $uid = $user->create;
-if( $uid lt 0 )
-{
- print "Impossible de creer cet utilisateur, code retour $uid \n";
- exit 0;
-}
else
{
- $user->set_password("default");
-
- $user->commit;
-
- print "Utilisateur cree avec comme uid $uid !\n";
+ print "User $username created!\n";
}
-$user->set_shell("/usr/bin/lol");
-$user->set_firstname("Julien");
-$user->set_lastname("Delange");
-$user->set_city("Le Neubourg");
-$user->set_zipcode("27110");
-$user->set_country("France");
-$user->set_address("10 Rue des chiens");
-$user->set_gpgkey("gpg_key");
-
-$user->commit;
-
-$user->fetch;
-
exit;
Modified: trunk/vhffs-api/src/examples/create_web.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_web.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_web.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -11,45 +12,24 @@
use Vhffs::Object;
use Vhffs::Services::Httpd;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername description owner_username owner_groupname\n") unless(@ARGV == 4);
+my($servername, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-my $httpd = new Vhffs::Services::Httpd( $princ , $ARGV[0] , $user , $group);
+my $httpd = Vhffs::Services::Httpd::create($princ, $servername, $description, $user, $group);
if( defined $httpd )
{
- print "object created\n";
+ print "Webarea $servername created\n";
}
else
{
- print "object error\n";
- exit;
+ die "Unable to create webarea $servername\n";
}
-
-my $retour = $httpd->create;
-
-if( $retour < 0 )
-{
- print "Successfully create httpd object in the database\n";
-}
-else
-{
- print "ERROR while create httpd object in the database, returns $retour \n";
-}
-
-
-use Data::Dumper;
-
Modified: trunk/vhffs-api/src/examples/create_web_panel.pl
===================================================================
--- trunk/vhffs-api/src/examples/create_web_panel.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/create_web_panel.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,43 +3,22 @@
use strict;
-use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Httpd;
use Vhffs::Panel::Web;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername description owner_username owner_groupname\n") unless(@ARGV == 4);
+my ($servername, $description, $username, $groupname) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-my $retour = Vhffs::Panel::Web::create_web( $princ , $ARGV[0] , $user , $group);
-
-
-if( (!defined $retour ) || ( $retour < 0 ) )
-{
- print "ERROR while create httpd object in the database, returns $retour \n";
-}
-else
-{
- print "Successfully create httpd object in the database\n";
-}
-
-
-use Data::Dumper;
-
+die("Unable to create webarea $servername\n") unless(defined Vhffs::Panel::Web::create_web($princ, $servername, $description, $user, $group));
+print("Webarea $servername created\n");
Modified: trunk/vhffs-api/src/examples/delbox.pl
===================================================================
--- trunk/vhffs-api/src/examples/delbox.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/delbox.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,58 +2,24 @@
use strict;
+use lib "/usr/share/vhffs/api/";
-use Data::Dumper;
use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 mail_domain box\n") unless(@ARGV == 2);
+my ($domain, $box) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "soda" , 401) ;
+my $mail = Vhffs::Services::Mail::get_by_mxdomain($princ , $domain);
-my $mail = new Vhffs::Services::Mail( $princ , $ARGV[0] , $user , $group);
+die("Domain $domain not found\n") unless(defined $mail);
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
+die("Unable to delete box $box\@".$mail->get_domain."\n") if( $mail->delbox($box) < 0 );
+print "Box $box\@".$mail->get_domain." deleted\n";
-if( $mail->fetch < 0 )
-{
- print "can't fetch mail object";
- exit 0;
-}
-if( $mail->delbox("soda") < 0 )
-{
- print "can't del this part to the mail object";
- exit 0;
-}
-else
-{
- print "sucessfull delete";
-}
-
-
Modified: trunk/vhffs-api/src/examples/delete_acl.pl
===================================================================
--- trunk/vhffs-api/src/examples/delete_acl.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/delete_acl.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -12,22 +13,18 @@
use Vhffs::Services::Httpd;
use Vhffs::Acl;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername username\n") if(@ARGV != 2);
+my ($servername, $username) = @ARGV;
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-my $httpd = new Vhffs::Services::Httpd( $princ , "proutlol2.com" , $user );
+my $httpd = Vhffs::Services::Httpd::get_by_servername($princ, $servername);
+die("Webarea $servername not found\n") unless(defined $httpd);
-Vhffs::Acl::del_acl( $user , $httpd , $princ->get_db_object );
+die("Unable to delete ACL\n") unless(Vhffs::Acl::del_acl( $user , $httpd , $princ) > 0);
+print "User $username has no longer access to webarea $servername\n";
Modified: trunk/vhffs-api/src/examples/generate_password.pl
===================================================================
--- trunk/vhffs-api/src/examples/generate_password.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/generate_password.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,43 +3,18 @@
use strict;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username\n") unless(@ARGV == 1);
-if( $#ARGV != 0 )
-{
- print "Error ! Change the password with : generate_password username";
- print "Example : generate_password soda";
-}
+my ($username) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-print "changement du pass pour le user $ARGV[0]\n";
-$user = new Vhffs::User( $princ , "$ARGV[0]" , 401) ;
-
-
-#on fetche l'utilisateur
-my $retour;
-$retour = $user->fetch;
-if ( $retour > 0 )
-{
-
- $user->generate_password;
- exit 0;
-}
-
-exit;
+my $pwd = $user->generate_password;
+print "New password for $username : $pwd\n";
Modified: trunk/vhffs-api/src/examples/get_list.pl
===================================================================
--- trunk/vhffs-api/src/examples/get_list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/get_list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,49 +3,22 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Mail;
use Vhffs::Services::Mailing;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 mladdress\n") unless(@ARGV == 1);
+my ($address) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "prout" , 401) ;
+my ($local, $domain) = split(/@/, $address);
+die("$address is not a valid email address\n") unless(defined $local && defined $domain);
-my $mail = new Vhffs::Services::Mailing( $princ , "bli4" , "prout.com" , $user , $group);
+my $ml = Vhffs::Services::Mailing::get_by_mladdress($princ, $local, $domain);
+die("Mailing list $address not found\n") unless(defined $ml);
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
+print Dumper $ml;
-
-if( $mail->fetch < 0 )
-{
- print "error while fetching\n";
-}
-
-use Data::Dumper;
-print Dumper $mail;
-
Modified: trunk/vhffs-api/src/examples/hash_webdir.pl
===================================================================
--- trunk/vhffs-api/src/examples/hash_webdir.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/hash_webdir.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Functions;
print Vhffs::Functions::hash_webdir( "zozo.tata.com" );
Modified: trunk/vhffs-api/src/examples/hashdomain.pl
===================================================================
--- trunk/vhffs-api/src/examples/hashdomain.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/hashdomain.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Functions;
print Vhffs::Functions::hash_mxdomain("tuxfamily.org");
Modified: trunk/vhffs-api/src/examples/hashhome_example.pl
===================================================================
--- trunk/vhffs-api/src/examples/hashhome_example.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/hashhome_example.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Functions;
use Vhffs::Main;
use Data::Dumper;
Modified: trunk/vhffs-api/src/examples/hashpopuser.pl
===================================================================
--- trunk/vhffs-api/src/examples/hashpopuser.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/hashpopuser.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Functions;
print Vhffs::Functions::hash_popuser("soda");
Modified: trunk/vhffs-api/src/examples/join_group.pl
===================================================================
--- trunk/vhffs-api/src/examples/join_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/join_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,46 +3,20 @@
use strict;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username groupname\n") unless(@ARGV == 2);
-if( $#ARGV != 0 )
-{
- print "Error ! Join a group with : join_group groupname";
- print "Example : join_group group";
-}
+my ($username, $groupname) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group not found\n") unless(defined $group);
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
-
-my $group = Vhffs::Panel::Group::create_group( $ARGV[0] , $user , $princ );
-
-if( ! defined $group)
-{
- print "can't add to this group";
-}
-else
-{
- $group->set_description( "blablabla" );
- $group->commit;
- print "Sucessfully add to this group";
-}
-
-
-exit;
+die("Unable to add $username to group $groupname\n") unless($group->add_user($user) > 0);
Modified: trunk/vhffs-api/src/examples/list_themes.pl
===================================================================
--- trunk/vhffs-api/src/examples/list_themes.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/list_themes.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
use Vhffs::Main;
use Data::Dumper;
Modified: trunk/vhffs-api/src/examples/mailuser.pl
===================================================================
--- trunk/vhffs-api/src/examples/mailuser.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/mailuser.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -13,39 +14,27 @@
use Vhffs::Services::MailUser;
use Vhffs::Panel::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $group;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username\n") unless(@ARGV == 1);
-my $user = new Vhffs::User( $princ , "gradator" , '401' );
+my ($username) = @ARGV;
+
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+
my $mu = init Vhffs::Services::MailUser( $princ , $user );
+die("Configuration error\n") if(!ref($mu));
-if( $mu->exists_forward == 1 )
-{
- print "Cet utilisateur a un forward sur le domaine\n";
+if( $mu->exists_forward == 1 ) {
+ print "User has a forward on this domain\n";
+} else {
+ print "User doesn't have forward\n";
}
-else
-{
- print "Cet utilisateur n'a aucun forward\n";
-}
-if( $mu->exists_box == 1 )
-{
- print "Cet utilisateur a une box\n";
+if( $mu->exists_box == 1 ) {
+ print "User has a box\n";
+} else {
+ print "User doesn't have a box\n";
}
-else
-{
- print "Cet utilisateur n'a pas de box\n";
-}
-
-
-#print Dumper $mu->{object};
Modified: trunk/vhffs-api/src/examples/mailuser_add_box.pl
===================================================================
--- trunk/vhffs-api/src/examples/mailuser_add_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/mailuser_add_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -13,29 +14,16 @@
use Vhffs::Services::MailUser;
use Vhffs::Panel::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $group;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username password\n") unless(@ARGV == 2);
-my $user = new Vhffs::User( $princ , "gradator" , '401' );
-my $mu = init Vhffs::Services::MailUser( $princ , $user );
+my ($username, $password) = @ARGV;
-if( ( my $retour = $mu->addforward( "soda\@free.fr" ) ) < 0 )
-{
- print "erreur $retour";
-}
-else
-{
- print "success\n";
-}
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+my $mu = init Vhffs::Services::MailUser( $princ , $user );
-#print Dumper $mu;
+die("Unable to create box $username\@".$mu->{domain}."\n") unless($mu->addbox( $password ) > 0);
+print "Box $username\@".$mu->{domain}." created\n";
Modified: trunk/vhffs-api/src/examples/modify_acl.pl
===================================================================
--- trunk/vhffs-api/src/examples/modify_acl.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/modify_acl.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,31 +3,23 @@
use strict;
-use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::Httpd;
use Vhffs::Acl;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername username newlevel\n") unless(@ARGV == 3);
+my ($servername, $username, $level) = @ARGV;
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-my $httpd = new Vhffs::Services::Httpd( $princ , "proutlol2.com" , $user );
+my $httpd = Vhffs::Services::Httpd::get_by_servername($princ, $servername);
+die("Webarea $servername not found\n") unless(defined $httpd);
-Vhffs::Acl::add_acl( $user , $httpd , 2 , $princ->get_db_object );
+Vhffs::Acl::add_acl($user, $httpd , $level, $princ);
Modified: trunk/vhffs-api/src/examples/modify_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/modify_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/modify_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,46 +3,21 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username new_firstname\n") unless(@ARGV == 2);
+my ($username, $firstname) = @ARGV;
-$user = new Vhffs::User( $princ , "sod" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User not found\n") unless(defined $user);
+$user->set_firstname($firstname);
+die("Unable to change firstname for user $username\n") unless($user->commit > 0);
+print("User updated\n");
-#on fetche l'utilisateur
-my $retour;
-$retour = $user->fetch;
-if ( $retour > 0 )
-{
- print "Cet utilisateur existe bien\n";
-}
-
-
-#on le cree dans la base
-$user->set_firstname("prout");
-
-if( $user->commit < 0 )
-{
- print "unchanged";
-}
-else
-{
- print "unchanged";
-}
-
Modified: trunk/vhffs-api/src/examples/perm_for_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/perm_for_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/perm_for_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -10,27 +10,18 @@
use Vhffs::Services::Httpd;
use Vhffs::Acl;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 servername username\n") unless(@ARGV == 2);
+my ($servername, $username) = @ARGV;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-$user = new Vhffs::User( $princ , $ARGV[0] , 401) ;
+my $httpd = Vhffs::Services::Httpd::get_by_servername($princ, $servername);
+die("Webarea $servername not found\n") unless(defined $httpd);
-my $sql = new Vhffs::Services::Httpd( $princ , "prout.com", $user );
-
-print "Error while fetching mysql object" if( $sql->fetch < 0 );
-print "Error while fetching user object" if( $user->fetch < 0 );
-
-print "permission";
-print Vhffs::Acl::what_perm_for_user($user , $sql , $princ);
+print "Permission: ";
+print Vhffs::Acl::what_perm_for_user($user, $httpd, $princ);
print "\n";
Modified: trunk/vhffs-api/src/examples/print_domain.pl
===================================================================
--- trunk/vhffs-api/src/examples/print_domain.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/print_domain.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,47 +4,18 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Services::DNS;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 domainname\n") unless(@ARGV == 1);
+my ($domainname) = @ARGV;
+my $dns = Vhffs::Services::DNS::get_by_domainname($princ, $domainname);
-if( $#ARGV != 0 )
-{
- print "Error ! Exec this script as it : print_domain domain";
- print "Example : print_domain prout.com";
-}
+die("Domain name not found\n") unless(defined $dns);
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
-$group = new Vhffs::Group( $princ , "sodalol" , 401) ;
-
-my $dns = new Vhffs::Services::DNS( $princ , $ARGV[0] , $user , $group );
-
-if( ! defined $dns )
-{
- print "Error while creating the object";
- exit 0;
-}
-
-$dns->fetch;
-
-use Data::Dumper;
-
print Dumper $dns;
Modified: trunk/vhffs-api/src/examples/show_acl_per_object.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_acl_per_object.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_acl_per_object.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,40 +1,28 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
+#!/usr/bin/perl -I/vhffs/vhffs-api/src/
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
-use Vhffs::Object;
use Vhffs::Acl;
-use Vhffs::Services::Httpd;
use Vhffs::Services::Mysql;
-use Vhffs::Panel::DNS;
-my $config;
-my $mysql_config;
-my $services_config;
-my $group;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
+die("Usage: $0 dbname\n\tShows ACL for MySQL service dbname\n") unless(@ARGV == 1);
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-$group = new Vhffs::Group( $princ , "sodaproject" , 401) ;
+my ($dbname) = @ARGV;
-my $sql = new Vhffs::Services::Mysql( $princ , $ARGV[0] , $user , $group );
+my $sql = Vhffs::Services::Mysql::get_by_dbname($princ, $dbname);
-my $lol = Vhffs::Acl::getall_acl_for_user_per_object( $sql , $princ );
+die("MySQL service $dbname not found\n") unless(defined $sql);
-print Dumper $lol;
+my $acl = Vhffs::Acl::getall_acl_for_user_per_object( $sql , $princ );
-$lol = Vhffs::Acl::getall_acl_for_group_per_object( $sql , $princ );
+print Dumper $acl;
-print Dumper $lol;
+$acl = Vhffs::Acl::getall_acl_for_group_per_object( $sql , $princ );
+
+print Dumper $acl;
Modified: trunk/vhffs-api/src/examples/show_dns_per_group.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dns_per_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dns_per_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,33 +4,19 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Acl;
-use Vhffs::Services::Httpd;
use Vhffs::Panel::DNS;
-my $config;
-my $mysql_config;
-my $services_config;
-my $group;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 groupname\n") unless(@ARGV == 1);
+my ($groupname) = @ARGV;
-$group = new Vhffs::Group( $princ , "sodaproject" , 401) ;
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group $groupname not found\n") unless(defined $group);
-my $lol = Vhffs::Panel::DNS::getall_dns_per_group( $group , $princ );
+print Dumper(Vhffs::Panel::DNS::getall_dns_per_group( $group , $princ ));
-foreach( keys ( %{$lol} ) )
-{
- print $_ ."etat :". $lol->{$_}{'state'};
-}
Modified: trunk/vhffs-api/src/examples/show_dns_per_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dns_per_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dns_per_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,28 +4,18 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Httpd;
-use Vhffs::Acl;
use Vhffs::Panel::DNS;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username\n") unless(@ARGV == 1);
+my ($username) = @ARGV;
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
+my $user = Vhffs::User::get_by_username( $princ, $username );
+die("User $username not found\n") unless(defined $user);
-print Dumper Vhffs::Panel::DNS::getall_dns_per_user( $user , $princ );
+print Dumper( Vhffs::Panel::DNS::getall_dns_per_user( $user , $princ ));
Modified: trunk/vhffs-api/src/examples/show_dumper_cvs.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dumper_cvs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dumper_cvs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -26,11 +27,8 @@
$config = $princ->get_config;
-my $user = new Vhffs::User( $princ , "soda" , '401');
-my $cvs = new Vhffs::Services::Cvs( $princ , $ARGV[0] , $user ) ;
+my $cvs = Vhffs::Services::Cvs::get_by_cvsroot( $princ , $ARGV[0] ) ;
-$cvs->fetch;
-
print Dumper $cvs;
print $cvs->get_description;
Modified: trunk/vhffs-api/src/examples/show_dumper_group.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dumper_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dumper_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,33 +4,17 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Acl;
-use Vhffs::Services::Httpd;
-use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 groupname\n") unless(@ARGV == 1);
+my ($groupname) = @ARGV;
-my $group = new Vhffs::Group( $princ , $ARGV[0] , 401) ;
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group $groupname not found\n") unless(defined $group);
-$group->Vhffs::Group::fetch;
-
-print Dumper $group;
-
-print $group->get_description;
-
+print Dumper($group);
Modified: trunk/vhffs-api/src/examples/show_dumper_object.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dumper_object.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dumper_object.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
@@ -13,24 +14,13 @@
use Vhffs::Services::Httpd;
use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 objectID\n") unless(@ARGV == 1);
+my ($oid) = @ARGV;
-my $obj = new Vhffs::Object( $princ , $ARGV[0] , 401) ;
+my $obj = Vhffs::Object::get_by_oid($princ, $oid);
+die("Object #$oid not found\n") unless(defined $obj);
-$obj->fetch;
-
print Dumper $obj;
-
-print $obj->get_description;
-
Modified: trunk/vhffs-api/src/examples/show_dumper_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_dumper_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_dumper_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,33 +4,18 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Acl;
-use Vhffs::Services::Httpd;
-use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username\n") unless(@ARGV == 1);
+my ($username) = @ARGV;
-$user = new Vhffs::User( $princ , $ARGV[0] , 401) ;
+my $user = Vhffs::User::get_by_username( $princ, $username );
+die("User $username not found\n") unless(defined $user);
-$user->fetch;
-
print Dumper $user;
-print $user->get_description;
-
Modified: trunk/vhffs-api/src/examples/show_groups_per_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_groups_per_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_groups_per_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,33 +4,21 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
-use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Acl;
-use Vhffs::Services::Httpd;
use Vhffs::Panel::Group;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 username\n") unless(@ARGV == 1);
+my ($username) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
+my $user = Vhffs::User::get_by_username($princ, $username);
+die("User $username not found\n") unless(defined $user);
-my $lol = Vhffs::Panel::Group::getall_groups_per_user( $user , $princ );
+my $groups = Vhffs::Panel::Group::getall_groups_per_user( $user , $princ );
-foreach( keys ( %{$lol} ) )
-{
- print $_;
-}
+print Dumper($groups);
+
Modified: trunk/vhffs-api/src/examples/show_last_users.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_last_users.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_last_users.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
Modified: trunk/vhffs-api/src/examples/show_mail_conf.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_mail_conf.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_mail_conf.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
+use lib "/usr/share/vhffs/api/";
use Vhffs::Conf;
use Vhffs::User;
use Vhffs::Group;
Modified: trunk/vhffs-api/src/examples/show_mail_per_group.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_mail_per_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_mail_per_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,31 +4,18 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Group;
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Acl;
-use Vhffs::Services::Httpd;
use Vhffs::Panel::Mail;
-my $config;
-my $mysql_config;
-my $services_config;
-my $group;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 groupname\n") unless(@ARGV == 1);
+my ($groupname) = @ARGV;
-$group = new Vhffs::Group( $princ , "sodaproject" , 401) ;
+my $group = Vhffs::Group::get_by_groupname($princ, $groupname);
+die("Group $groupname not found\n") unless(defined $group);
-my $lol = Vhffs::Panel::Mail::getall_mail_per_group( $group , $princ );
-
-
-print Dumper $lol;
+print Dumper(Vhffs::Panel::Mail::getall_mail_per_group( $group , $princ ));
Modified: trunk/vhffs-api/src/examples/show_members_from_list.pl
===================================================================
--- trunk/vhffs-api/src/examples/show_members_from_list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/show_members_from_list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,57 +4,22 @@
use strict;
use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Mail;
use Vhffs::Services::Mailing;
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
my $princ = init Vhffs::Main;
-$config = $princ->get_config;
+die("Usage: $0 mladdress\n") unless(@ARGV == 1);
+my ($address) = @ARGV;
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-my $group = new Vhffs::Group( $princ , "prout" , 401) ;
+my ($local, $domain) = split(/@/, $address);
+die("$address is not a valid email address\n") unless(defined $local && defined $domain);
-my $mail = new Vhffs::Services::Mailing( $princ , "maliste" , "prout.com" , $user , $group);
+my $ml = Vhffs::Services::Mailing::get_by_mladdress($princ, $local, $domain);
+die("Mailing list $address not found\n") unless(defined $ml);
-if( defined $mail )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
+my $subs = $ml->get_members;
-my $retour = $mail->fetch;
-
-if( $retour < 0 )
-{
- print "fetch error";
-}
-else
-{
- print "fetch success";
-}
-
-my $subs = $mail->get_members;
-
-
-
-use Data::Dumper;
-
print Dumper $subs;
Modified: trunk/vhffs-api/src/examples/stats.pl
===================================================================
--- trunk/vhffs-api/src/examples/stats.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/stats.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,14 +1,12 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Stats;
my $vhffs = init Vhffs::Main;
my $stats = new Vhffs::Stats( $vhffs );
-
-$stats->fetch;
-
print "Users total : ";
print $stats->get_user_total;
print "\n";
Deleted: trunk/vhffs-api/src/examples/test.pl
===================================================================
--- trunk/vhffs-api/src/examples/test.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,60 +0,0 @@
-#!/usr/bin/perl -w -I. /vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-
-
-
-my $princ = init Vhffs::Main;
-
-$dbh = $princ->get_db_object;
-$config = $princ->get_config;
-
-
-$user = new Vhffs::User( $dbh , "prout" ) ;
-
-#on fetche l'utilisateur
-if ( $user->get < 0 )
-{
- print "ce user n'existe pas\n";
-}
-else
-{
- print "ce user existe\n";
- $user->delete;
- print "user supprime\n";
-}
-
-#on le cree dans la base
-if( $user->create( $princ->get_config ) < 0 )
-{
- print "impossible de creer ce user\n";
-}
-else
-{
- print "user cree !\n";
-}
-
-
-#on le supprimer
-#if( $user->delete < 0 )
-#{
-# print "probleme lors de la suppression";
-#}
-#else
-#{
-# print "utilisateur supprime";
-#}
Deleted: trunk/vhffs-api/src/examples/test2.pl
===================================================================
--- trunk/vhffs-api/src/examples/test2.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test2.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +0,0 @@
-#!/usr/bin/perl
-
-use Vhffs::Constants;
-
-my $lol="ACL_VIEW";
-
-print ${Vhffs::Constants::$lol};
Deleted: trunk/vhffs-api/src/examples/test_conf.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_conf.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_conf.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,29 +0,0 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::DNS;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
-my $princ = init Vhffs::Main;
-
-
-my $lol = $princ->get_config->get_service( "dns" );
-
-use Data::Dumper;
-print Dumper $lol;
Deleted: trunk/vhffs-api/src/examples/test_constants.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_constants.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_constants.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,11 +0,0 @@
-#!/usr/bin/perl
-
-use Vhffs::Constants;
-use strict;
-print "constante :";
-
-
-print Vhffs::Constants::ACTIVATED ;
-
-print
-
Deleted: trunk/vhffs-api/src/examples/test_delete.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,41 +0,0 @@
-#!/usr/bin/perl -w -I/home/soda/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
-my $princ = init Vhffs::Main;
-
-$config = $princ->get_config;
-
-
-
-#on le cree dans la base
-$user = new Vhffs::User( $princ , "prefzpojzepfojout" , 401) ;
-
-
-
-#on le supprimer
-my $retour = $user->delete;
-if( $retour < 0 )
-{
- print "probleme lors de la suppression : $retour \n";
-}
-else
-{
- print "utilisateur supprime\n";
-}
Deleted: trunk/vhffs-api/src/examples/test_dns.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,59 +0,0 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::DNS;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-my $group;
-
-my $princ = init Vhffs::Main;
-
-$config = $princ->get_config;
-
-
-$user = new Vhffs::User( $princ , "sodalol" , 401) ;
-$group = new Vhffs::Group( $princ , "sodalol" , 401) ;
-
-
-my $dns = new Vhffs::Services::DNS( $princ , "proutlol4.com" , $user , $group );
-
-if( defined $dns )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
-
-if( $dns->create > 0)
-{
- print "Successfully create dns object in the database\n";
-}
-else
-{
- print "ERROR while create dns object in the database\n";
-}
-
-$dns->commit;
-
-$dns->add_a("prou" , "900.10.10.3");
-
-use Data::Dumper;
-
-print Dumper $dns;
Deleted: trunk/vhffs-api/src/examples/test_fetch_info.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_fetch_info.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_fetch_info.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,55 +0,0 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
-my $princ = init Vhffs::Main;
-
-$config = $princ->get_config;
-
-
-print "login du user\n";
-$user = new Vhffs::User( $princ , "toto" , 401 ) ;
-
-
-#on fetche l'utilisateur
-my $retour;
-print "fetch du user\n";
-$retour = $user->fetch;
-if ( $retour< 0 )
-{
- print "ce user n'existe pas : $retour \n";
-}
-else
-{
- print "ce user existe\n";
- print "username : " . $user->get_username . "\n" ;
- print "name : " . $user->get_firstname . "\n" ;
-}
-
-
-
-exit;
- $user->set_mail( "MAIL" );
- $user->set_firstname( "FIRSTNAME" );
- $user->set_lasttname( "LASTNAME" );
- $user->set_city( "CITY" );
- $user->set_zipcode( "ZIPCODE" );
- $user->set_country( "COUNTRY" );
- $user->set_address( "ADDRESS" );
-
Deleted: trunk/vhffs-api/src/examples/test_httpd.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_httpd.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_httpd.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,54 +0,0 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-use Vhffs::Services::Httpd;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
-my $princ = init Vhffs::Main;
-
-$config = $princ->get_config;
-
-
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-
-my $httpd = new Vhffs::Services::Httpd( $princ , "proutlol2.com" , $user );
-
-if( defined $httpd )
-{
- print "object created\n";
-}
-else
-{
- print "object error\n";
- exit;
-}
-
-if( $httpd->create > 0)
-{
- print "Successfully create httpd object in the database\n";
-}
-else
-{
- print "ERROR while create httpd object in the database\n";
-}
-
-$httpd->fetch;
-
-use Data::Dumper;
-
-print Dumper $httpd;
Deleted: trunk/vhffs-api/src/examples/test_obj.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_obj.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_obj.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,39 +0,0 @@
-#!/usr/bin/perl
-
-use Vhffs::Object;
-use Vhffs::Conf;
-use Vhffs::Main;
-use Vhffs::User;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-
-my $princ = init Vhffs::Main;
-
-$dbh = $princ->get_db_object;
-$config = $princ->get_config;
-
-
-my $test = new Vhffs::Object( $dbh , 30 , 10);
-
-$user = new Vhffs::User($dbh,"soda2");
-$user->get;
-
-
-
-print "object error" if ( ! defined $test );
-my $r = $test->create;
-if ( $r < 0)
-{
- print "erreur : $r";
-}
-else
-{
- print "ok ...";
-}
-
-$test->get;
Deleted: trunk/vhffs-api/src/examples/test_user.pl
===================================================================
--- trunk/vhffs-api/src/examples/test_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-api/src/examples/test_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,85 +0,0 @@
-#!/usr/bin/perl -w -I/vhffs/vhffs-api/src/
-
-
-use strict;
-
-use Data::Dumper;
-use Vhffs::Conf;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Object;
-
-my $config;
-my $mysql_config;
-my $services_config;
-my $user;
-my $dbh;
-my $backend;
-my %infos;
-
-my $princ = init Vhffs::Main;
-
-$config = $princ->get_config;
-
-
-print "new du user\n";
-$user = new Vhffs::User( $princ , "soda" , 401) ;
-
-
-#on fetche l'utilisateur
-my $retour;
-print "fetch du user\n";
-$retour = $user->fetch;
-if ( $retour< 0 )
-{
- print "ce user n'existe pas : $retour \n";
- $user->create;
-}
-else
-{
- print "ce user existe\n";
- print "username : " . $user->get_username . "\n" ;
- $user->delete;
-}
-
-exit;
-
-
-print "creation du user\n";
-
-#on le cree dans la base
-$user = new Vhffs::User( $princ , "proutlolzizi2" , 401) ;
-my $uid = $user->create;
-if( $uid < 0 )
-{
- print "impossible de creer ce user : $uid \n";
-}
-else
-{
- $user->set_password("lol");
-
- $user->commit;
-
- print "user cree avec uid $uid !\n";
-}
-
-$user->set_shell("/usr/bin/lol");
-
-$user->commit;
-
-$user->fetch;
-
-exit;
-
-#
-#on le supprimer
-$retour = $user->delete;
-if( $retour < 0 )
-{
- print "probleme lors de la suppression : $retour \n";
-}
-else
-{
- print "utilisateur supprime\n";
-}
Modified: trunk/vhffs-backend/conf/vhffs.conf
===================================================================
--- trunk/vhffs-backend/conf/vhffs.conf 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-backend/conf/vhffs.conf 2007-04-15 21:17:33 UTC (rev 561)
@@ -55,10 +55,8 @@
use_svn = no
use_postgres = no
use_dns = no
- use_mailling = no
use_mailing = no
use_mailuser = no
- use_largefile = no
use_repository = no
</modules>
@@ -81,6 +79,9 @@
#Is the panel open or not ?
open = yes
+ #Key to crypt the confirmation code, it must be 8 characters long
+ subscribe_code_encrypt_key = AbCdEfGh
+
#Use the public section of VHFFS
use_public = yes
@@ -112,8 +113,7 @@
#################################################
# Backend configuration
#################################################
-<databases>
- <dbread>
+<database>
driver = pg
#Database to use
db_name=vhffs
@@ -125,32 +125,15 @@
db_host=localhost
#Database port
db_port = 5432
- </dbread>
+</database>
- <dbwrite>
- driver = pg
- #Database to use
- db_name=vhffs
- #Read Write User Name
- db_username=vhffs
- #Password
- db_password=vhffs
- #DataBase Server
- db_host=localhost
- #Database port
- db_port = 5432
- </dbwrite>
-</databases>
-
-
################################################
# USERS AND GROUPS
################################################
#the default configuration for users
<users>
minuid = 10000
- homedir = /home/
shell = /usr/bin/tuxshell
mingid = 10000
default_quota = 50
@@ -246,8 +229,8 @@
20 = mx2.hoster.org
</mx>
<ns>
- ns1.tf.o
- zefz
+ ns1.hoster.org
+ ns2.hoster.org
</ns>
</init>
</dns>
@@ -267,11 +250,13 @@
host = localhost
username = root
password = vhffs
+ mysqldump_path = /usr/bin/mysqldump
</mysql>
<postgresql>
host = localhost
username = vhffs
password = zepojf
+ pgdump_path = /usr/bin/pg_dump
</postgresql>
<subversion>
svnweb_url = "http://svnweb.hoster"
@@ -319,27 +304,6 @@
</listengine>
- #Configuration of largefile (not complete, please do not use it)
- <largefile>
- upload-host = "largefile.myhost"
- <mirrors>
- <server>
- name = "MIRROR1"
- country = fr
- logo = http://blabla
- url = http://mirror1/download/myservice/
- link = http://mirror1.com
- </server>
- <server>
- name = "MIRROR2"
- country = en
- logo = http://blibli
- url = http://download.mirror2.net/mirror/
- link = http://mirror2.net
- </server>
- </mirrors>
- </largefile>
-
#Configuration of download repository
<repository>
# Prefix of URL displayed in the panel
Deleted: trunk/vhffs-backend/src/pgsql/alter_from4.0pre1_tocurrent.sql
===================================================================
--- trunk/vhffs-backend/src/pgsql/alter_from4.0pre1_tocurrent.sql 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-backend/src/pgsql/alter_from4.0pre1_tocurrent.sql 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,52 +0,0 @@
-/*
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-*/
-
-CREATE TABLE vhffs_repository
-(
- repository_id serial,
- name varchar NOT NULL,
- owner_uid int4 NOT NULL,
- owner_gid int4 NOT NULL,
- quota int4 NOT NULL,
- quota_used int4 NOT NULL DEFAULT 0,
- object_id int4 NOT NULL,
- CONSTRAINT vhffs_repository_pkey PRIMARY KEY (repository_id)
-) WITH OIDS;
-
-ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid) ON DELETE CASCADE;
-ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid) ON DELETE CASCADE;
-ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-
-CREATE VIEW vhffs_forum AS
-SELECT users.username, users.passwd, user_info.firstname, user_info.lastname, user_info.mail, user_info.date_creation, object.state
-FROM vhffs_users users, vhffs_user_info user_info, vhffs_object object
-WHERE user_info.uid=users.uid AND object.object_id=users.object_id;
Modified: trunk/vhffs-backend/src/pgsql/initdb.sql
===================================================================
--- trunk/vhffs-backend/src/pgsql/initdb.sql 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-backend/src/pgsql/initdb.sql 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,10 +33,11 @@
CREATE TABLE vhffs_object
(
object_id serial,
- owner_uid int4 NOT NULL,
+ owner_uid int4,
date_creation timestamp,
- state varchar NOT NULL,
+ state int4 NOT NULL,
description TEXT,
+ type int4 DEFAULT 0,
CONSTRAINT vhffs_object_pkey PRIMARY KEY (object_id)
) WITH OIDS;
@@ -58,22 +59,40 @@
quota int4 NOT NULL,
quota_used int4 NOT NULL DEFAULT 0,
object_id int4 NOT NULL,
+ owner_uid int4,
+ uid_mod int4,
CONSTRAINT vhffs_groups_pkey PRIMARY KEY (gid)
) WITH OIDS;
+SELECT setval('vhffs_groups_gid_seq', 10000);
+
CREATE TABLE vhffs_users
(
uid serial,
- gid int4 NOT NULL,
+ gid int4,
username varchar(50) NOT NULL DEFAULT ' ',
shell varchar(20) NOT NULL DEFAULT ' ',
passwd varchar(40) NOT NULL DEFAULT ' ',
homedir varchar(40) NOT NULL DEFAULT ' ',
admin int4 NOT NULL,
object_id int4 NOT NULL,
+ date_creation timestamp,
+ firstname varchar(250),
+ lastname varchar(250),
+ address text,
+ zipcode varchar(16),
+ city varchar(250),
+ country varchar(250),
+ mail varchar(200),
+ gpg_key varchar(250),
+ note int4 DEFAULT '0',
+ language varchar(16),
+ theme varchar(250),
CONSTRAINT vhffs_users_pkey PRIMARY KEY (uid)
) WITH OIDS;
+SELECT setval('vhffs_users_uid_seq', 10000) ;
+
CREATE TABLE vhffs_boxes
(
domain varchar,
@@ -87,17 +106,6 @@
CONSTRAINT vhffs_boxes_pkey PRIMARY KEY (domain,local_part)
) WITH OIDS;
-
-CREATE TABLE vhffs_confirmation
-(
- cid SERIAL,
- code varchar(10),
- CONSTRAINT vhffs_confirmation_pkey PRIMARY KEY (cid)
-) WITH OIDS;
-
-
-
-
CREATE TABLE vhffs_cvs
(
cvs_id serial,
@@ -109,14 +117,22 @@
CONSTRAINT vhffs_cvs_pkey PRIMARY KEY (cvs_id)
) WITH OIDS;
-CREATE TABLE vhffs_dns_global
+CREATE TABLE vhffs_dns
(
dns_id serial,
domain varchar(255) NOT NULL,
owner_gid int4,
owner_uid int4,
object_id int4,
- CONSTRAINT vhffs_dns_pkey4 PRIMARY KEY ( dns_id )
+ ns varchar(255) NOT NULL,
+ mbox varchar(255) NOT NULL,
+ serial INTEGER NOT NULL DEFAULT 1,
+ refresh INTEGER NOT NULL DEFAULT 28800,
+ retry INTEGER NOT NULL DEFAULT 7200,
+ expire INTEGER NOT NULL DEFAULT 604800,
+ minimum INTEGER NOT NULL DEFAULT 86400,
+ ttl INTEGER NOT NULL DEFAULT 86400,
+ CONSTRAINT vhffs_dns_pkey4 PRIMARY KEY (dns_id)
) WITH OIDS;
CREATE TABLE vhffs_dns_rr (
@@ -130,22 +146,6 @@
CONSTRAINT vhffs_dns_rr_pkey PRIMARY KEY (id)
) WITH OIDS;
-CREATE TABLE vhffs_dns_soa
-(
- id serial,
- origin varchar(255) NOT NULL,
- ns varchar(255) NOT NULL,
- mbox varchar(255) NOT NULL,
- serial INTEGER NOT NULL DEFAULT 1,
- refresh INTEGER NOT NULL DEFAULT 28800,
- retry INTEGER NOT NULL DEFAULT 7200,
- expire INTEGER NOT NULL DEFAULT 604800,
- minimum INTEGER NOT NULL DEFAULT 86400,
- ttl INTEGER NOT NULL DEFAULT 86400,
- active INTEGER,
- CONSTRAINT vhffs_dns_soa_pkey PRIMARY KEY (id)
-) WITH OIDS;
-
CREATE TABLE vhffs_forward
(
domain varchar NOT NULL,
@@ -155,14 +155,6 @@
CONSTRAINT vhffs_forward_pkey PRIMARY KEY (domain , local_part)
) WITH OIDS;
-CREATE TABLE vhffs_groups_info
-(
- gid int4 NOT NULL,
- owner_uid int4,
- uid_mod int4,
- CONSTRAINT vhffs_groups_info_pkey PRIMARY KEY (gid)
-) WITH OIDS;
-
CREATE TABLE vhffs_httpd
(
httpd_id serial,
@@ -179,29 +171,6 @@
CONSTRAINT vhffs_httpd_pkey PRIMARY KEY (httpd_id)
) WITH OIDS;
-CREATE TABLE vhffs_largefile
-(
- file_id SERIAL,
- filename varchar NOT NULL,
- size int4 NOT NULL,
- type varchar NOT NULL,
- licence varchar,
- hash varchar,
- creating_date DATE,
- last_check DATE,
- end_date DATE,
- username varchar,
- password varchar,
- home varchar,
- ncheck int4 DEFAULT '0',
- virtual_uid int4,
- virtual_gid int4,
- owner_uid int4,
- owner_gid int4,
- object_id int4,
- CONSTRAINT vhffs_largefile_pkey PRIMARY KEY( filename , owner_gid)
-) WITH OIDS;
-
CREATE TABLE vhffs_repository
(
repository_id serial,
@@ -228,7 +197,7 @@
CREATE TABLE vhffs_mxdomain
(
mxdomain_id serial,
- domain varchar UNIQUE,
+ domain varchar,
unix_user varchar NOT NULL,
boxes_path varchar NOT NULL,
max_popbox int4 NOT NULL,
@@ -242,46 +211,32 @@
CREATE TABLE vhffs_ml
(
ml_id serial,
- local_part VARCHAR NOT NULL,
- domain VARCHAR REFERENCES vhffs_mxdomain( domain ),
- prefix VARCHAR ,
+ local_part varchar(256) NOT NULL,
+ domain varchar(256),
+ prefix varchar(32),
owner_uid int4,
owner_gid int4,
object_id int4,
+ admin varchar(250) NOT NULL,
+ sub_ctrl int4,
+ post_ctrl int4,
+ reply_to boolean,
+ open_archive boolean,
+ signature varchar(250),
CONSTRAINT vhffs_ml_pkey PRIMARY KEY (ml_id)
) WITH OIDS;
-CREATE TABLE vhffs_ml_prefs
-(
- ml_id int4 REFERENCES vhffs_ml( ml_id ) PRIMARY KEY,
- admin VARCHAR NOT NULL,
- open_post int4 NOT NULL,
- open_archive int4 NOT NULL,
- open_sub int4 NOT NULL,
- reply_to int4,
- moderated int4 NOT NULL,
- url VARCHAR
-) WITH OIDS;
-
CREATE TABLE vhffs_ml_subscribers
(
sub_id serial,
- member VARCHAR NOT NULL,
+ member varchar(256) NOT NULL,
perm int4 NOT NULL,
- active int4 NOT NULL,
- hash varchar NOT NULL,
+ hash varchar,
ml_id int4 NOT NULL,
+ language varchar(16),
CONSTRAINT vhffs_ml_subscribers_pkey PRIMARY KEY (sub_id)
) WITH OIDS;
-CREATE TABLE vhffs_ml_lang
-(
-/* TODO use an int4 and link it to vhffs_ml_subscribers(sub_id) */
- member VARCHAR NOT NULL,
- lang VARCHAR NOT NULL,
- CONSTRAINT vhffs_ml_lang_pkey PRIMARY KEY (member)
-) WITH OIDS;
-
CREATE TABLE vhffs_mysql
(
mysql_id serial,
@@ -294,13 +249,6 @@
CONSTRAINT vhffs_mysql_pkey PRIMARY KEY (mysql_id)
) WITH OIDS;
-CREATE TABLE vhffs_notes
-(
- object_id int4 NOT NULL,
- note int4 DEFAULT '0',
- CONSTRAINT vhffs_notes_pkey PRIMARY KEY(object_id)
-) WITH OIDS;
-
CREATE TABLE vhffs_history
(
history_id serial,
@@ -310,20 +258,12 @@
CONSTRAINT vhffs_history_pkey PRIMARY KEY (history_id)
) WITH OIDS;
-CREATE TABLE vhffs_panel_user_prefs
-(
- uid int4,
- language varchar,
- theme varchar,
- CONSTRAINT vhffs_panel_user_prefs_pkey PRIMARY KEY (uid)
-) WITH OIDS;
-
CREATE TABLE vhffs_pgsql
(
pgsql_id serial,
dbname varchar(200) NOT NULL,
- dbuser VARCHAR(16) NOT NULL,
- dbpass VARCHAR(32) NOT NULL,
+ dbuser varchar(16) NOT NULL,
+ dbpass varchar(32) NOT NULL,
owner_uid int4,
owner_gid int4,
object_id int4,
@@ -349,22 +289,28 @@
CONSTRAINT vhffs_user_group_pkey PRIMARY KEY (uid,gid)
)WITH OIDS;
-CREATE TABLE vhffs_user_info
-(
- uid int4 NOT NULL,
- date_creation timestamp,
- firstname varchar(250),
- lastname varchar(250),
- address text,
- zipcode int4,
- city varchar(250),
- country varchar(250),
- mail varchar(200),
- gpg_key varchar(250),
- CONSTRAINT vhffs_user_info_pkey PRIMARY KEY (uid)
-) WITH OIDS;
+/****** Indexes and unique constraints *******/
+ALTER TABLE vhffs_users ADD CONSTRAINT vhffs_users_unique_username UNIQUE (username);
+ALTER TABLE vhffs_groups ADD CONSTRAINT vhffs_groups_unique_groupname UNIQUE (groupname);
+ALTER TABLE vhffs_cvs ADD CONSTRAINT vhffs_cvs_unique_cvsroot UNIQUE (cvsroot);
+ALTER TABLE vhffs_httpd ADD CONSTRAINT vhffs_httpd_unique_servername UNIQUE (servername);
+ALTER TABLE vhffs_mxdomain ADD CONSTRAINT vhffs_mxdomain_unique_domainname UNIQUE (domain);
+ALTER TABLE vhffs_mysql ADD CONSTRAINT vhffs_mysql_unique_dbname UNIQUE (dbname);
+ALTER TABLE vhffs_mysql ADD CONSTRAINT vhffs_mysql_unique_dbuser UNIQUE (dbuser);
+ALTER TABLE vhffs_pgsql ADD CONSTRAINT vhffs_pgsql_unique_dbname UNIQUE (dbname);
+ALTER TABLE vhffs_pgsql ADD CONSTRAINT vhffs_pgsql_unique_dbuser UNIQUE (dbuser);
+ALTER TABLE vhffs_repository ADD CONSTRAINT vhffs_repository_unique_name UNIQUE (name);
+ALTER TABLE vhffs_svn ADD CONSTRAINT vhffs_svn_unique_reponame UNIQUE (reponame);
+ALTER TABLE vhffs_dns ADD CONSTRAINT vhffs_dns_unique_domain UNIQUE (domain);
+ALTER TABLE vhffs_ml ADD CONSTRAINT vhffs_ml_unique_address UNIQUE (local_part, domain);
+ALTER TABLE vhffs_ml_subscribers ADD CONSTRAINT vhffs_ml_subscribers_member_list UNIQUE (ml_id, member);
+-- This index drastically improves performances on get_used_letters
+CREATE INDEX idx_vhffs_httpd_servername_firstletter ON vhffs_httpd(substr(servername, 1, 1));
+-- state is massively used in WHERE clause, this index improves overall performances
+CREATE INDEX idx_vhffs_object_state ON vhffs_object(state);
+
/****** Non primary key constraints.
Defining foreign keys here allow to create tables in any order.
*******/
@@ -373,6 +319,7 @@
ALTER TABLE vhffs_acl ADD CONSTRAINT fk_vhffs_acl_vhffs_object_src FOREIGN KEY (oid_src) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
ALTER TABLE vhffs_groups ADD CONSTRAINT fk_vhffs_group_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
+ALTER TABLE vhffs_groups ADD CONSTRAINT fk_vhffs_group_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users (uid);
ALTER TABLE vhffs_users ADD CONSTRAINT fk_vhffs_users_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object (object_id) ON DELETE CASCADE;
@@ -380,23 +327,16 @@
ALTER TABLE vhffs_cvs ADD CONSTRAINT fk_vhffs_cvs_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_cvs ADD CONSTRAINT fk_vhffs_cvs_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_dns_global ADD CONSTRAINT fk_vhffs_dns_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
-ALTER TABLE vhffs_dns_global ADD CONSTRAINT fk_vhffs_dns_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
-ALTER TABLE vhffs_dns_global ADD CONSTRAINT fk_vhffs_dns_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
+ALTER TABLE vhffs_dns ADD CONSTRAINT fk_vhffs_dns_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
+ALTER TABLE vhffs_dns ADD CONSTRAINT fk_vhffs_dns_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
+ALTER TABLE vhffs_dns ADD CONSTRAINT fk_vhffs_dns_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_dns_rr ADD CONSTRAINT fk_vhffs_dns_rr_vhffs_dns FOREIGN KEY (zone) REFERENCES vhffs_dns_global(dns_id) ON DELETE CASCADE;
+ALTER TABLE vhffs_dns_rr ADD CONSTRAINT fk_vhffs_dns_rr_vhffs_dns FOREIGN KEY (zone) REFERENCES vhffs_dns(dns_id) ON DELETE CASCADE;
ALTER TABLE vhffs_dns_rr ADD CONSTRAINT fk_vhffs_dns_rr_chk_type CHECK (type='A' OR type='AAAA' OR type='CNAME' OR type='HINFO' OR type='MX' OR type='NS' OR type='PTR' OR type='RP' OR type='SRV' OR type='TXT');
-ALTER TABLE vhffs_groups_info ADD CONSTRAINT fk_vhffs_groups_info_vhffs_groups FOREIGN KEY (gid) REFERENCES vhffs_groups (gid);
-ALTER TABLE vhffs_groups_info ADD CONSTRAINT fk_vhffs_groups_info_vhffs_users FOREIGN KEY (uid_mod) REFERENCES vhffs_users (uid);
-
ALTER TABLE vhffs_httpd ADD CONSTRAINT fk_vhffs_httpd_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
ALTER TABLE vhffs_httpd ADD CONSTRAINT fk_vhffs_httpd_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
-ALTER TABLE vhffs_largefile ADD CONSTRAINT fk_vhffs_largefile_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
-ALTER TABLE vhffs_largefile ADD CONSTRAINT fk_vhffs_largefile_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
-ALTER TABLE vhffs_largefile ADD CONSTRAINT fk_vhffs_largefile_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-
ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_repository ADD CONSTRAINT fk_vhffs_vhffs_repository_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
@@ -409,18 +349,14 @@
ALTER TABLE vhffs_ml ADD CONSTRAINT fk_vhffs_ml_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_ml ADD CONSTRAINT fk_vhffs_ml_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_ml_subscribers ADD CONSTRAINT fk_vhffs_ml_subscribers_vhffs_ml FOREIGN KEY (ml_id) REFERENCES vhffs_ml(ml_id);
+ALTER TABLE vhffs_ml_subscribers ADD CONSTRAINT fk_vhffs_ml_subscribers_vhffs_ml FOREIGN KEY (ml_id) REFERENCES vhffs_ml(ml_id) ON DELETE CASCADE;
ALTER TABLE vhffs_mysql ADD CONSTRAINT fk_vhffs_mysql_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
ALTER TABLE vhffs_mysql ADD CONSTRAINT fk_vhffs_mysql_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_mysql ADD CONSTRAINT fk_vhffs_mysql_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_notes ADD CONSTRAINT fk_vhffs_notes FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-
ALTER TABLE vhffs_history ADD CONSTRAINT fk_vhffs_history_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_user_info ADD CONSTRAINT fk_vhffs_user_info_vhffs_users FOREIGN KEY (uid) REFERENCES vhffs_users (uid) ON UPDATE CASCADE ON DELETE CASCADE;
-
ALTER TABLE vhffs_pgsql ADD CONSTRAINT fk_vhffs_pgsql_vhffs_users FOREIGN KEY (owner_uid) REFERENCES vhffs_users(uid);
ALTER TABLE vhffs_pgsql ADD CONSTRAINT fk_vhffs_pgsql_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_pgsql ADD CONSTRAINT fk_vhffs_pgsql_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
@@ -429,12 +365,10 @@
ALTER TABLE vhffs_svn ADD CONSTRAINT fk_vhffs_svn_vhffs_groups FOREIGN KEY (owner_gid) REFERENCES vhffs_groups(gid);
ALTER TABLE vhffs_svn ADD CONSTRAINT fk_vhffs_svn_vhffs_object FOREIGN KEY (object_id) REFERENCES vhffs_object(object_id) ON DELETE CASCADE;
-ALTER TABLE vhffs_user_group ADD CONSTRAINT fk_vhffs_user_group_vhffs_users FOREIGN KEY (uid) REFERENCES vhffs_users (uid) ON UPDATE CASCADE ON DELETE CASCADE;
-ALTER TABLE vhffs_user_group ADD CONSTRAINT fk_vhffs_user_group_vhffs_groups FOREIGN KEY (gid) REFERENCES vhffs_groups (gid) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE vhffs_user_group ADD CONSTRAINT fk_vhffs_user_group_vhffs_users FOREIGN KEY (uid) REFERENCES vhffs_users (uid) ON DELETE CASCADE;
+ALTER TABLE vhffs_user_group ADD CONSTRAINT fk_vhffs_user_group_vhffs_groups FOREIGN KEY (gid) REFERENCES vhffs_groups (gid) ON DELETE CASCADE;
-ALTER TABLE vhffs_panel_user_prefs ADD CONSTRAINT fk_vhffs_panel_user_prefs_vhffs_users FOREIGN KEY (uid) REFERENCES vhffs_users(uid) ON DELETE CASCADE;
-
CREATE VIEW vhffs_passwd AS
SELECT uid, gid, username, shell, '*'::character varying AS passwd, homedir
FROM vhffs_users;
@@ -444,6 +378,10 @@
FROM vhffs_users;
CREATE VIEW vhffs_forum AS
-SELECT users.username, users.passwd, user_info.firstname, user_info.lastname, user_info.mail, user_info.date_creation, object.state
-FROM vhffs_users users, vhffs_user_info user_info, vhffs_object object
-WHERE user_info.uid=users.uid AND object.object_id=users.object_id;
+SELECT users.username, users.passwd, users.firstname, users.lastname, users.mail, users.date_creation, object.state
+FROM vhffs_users users, vhffs_object object
+WHERE object.object_id=users.object_id;
+
+CREATE VIEW vhffs_dns_soa AS
+SELECT dns.dns_id AS id, dns.domain || '.' AS origin , dns.ns, dns.mbox, dns.serial, dns.refresh, dns.retry, dns.expire, dns.minimum, dns.ttl, (o.state = 6) AS active
+FROM vhffs_dns dns, vhffs_object o WHERE o.object_id=dns.object_id;
Copied: trunk/vhffs-compat (from rev 555, branches/vhffs_4.1/vhffs-compat)
Modified: trunk/vhffs-doc/config/exim4-mx1/exim4.conf
===================================================================
--- trunk/vhffs-doc/config/exim4-mx1/exim4.conf 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-doc/config/exim4-mx1/exim4.conf 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,7 +6,7 @@
PGSQL_VIRTUAL_FORWARD_DATA = ${lookup pgsql{select remote_name from vhffs_forward, vhffs_mxdomain where local_part = '$local_part' and vhffs_forward.domain = vhffs_mxdomain.domain and vhffs_mxdomain.domain = '$domain'}}
PGSQL_ML_EXIST = ${lookup pgsql{select domain from vhffs_ml where local_part='$local_part' and domain='$domain'}}
PGSQL_VIRTUAL_CATCHALL = ${lookup pgsql{select catchall from vhffs_mxdomain where domain = '$domain' and catchall != ''}}
-PGSQL_GET_TX_USER = ${lookup pgsql{select vhffs_user_info.mail from vhffs_user_info, vhffs_users where vhffs_users.uid=vhffs_user_info.uid and vhffs_users.username='$local_part' and 'tuxfamily.org'='$domain'}}
+PGSQL_GET_TX_USER = ${lookup pgsql{select mail from vhffs_users where username='$local_part' and 'tuxfamily.org'='$domain'}}
#PGSQL_VIRTUAL_LOCAL_QUOTA = ${lookup pgsql{select quota from popbox where local_part = "$local_part" and domaine = "$domain"}}
#PGSQL_VIRTUAL_LOCAL_QFILE = ${lookup pgsql{select quota_f from popbox where local_part = "$local_part" and domain = "$domain"}}
#PGSQL_VIRTUAL_LOCAL_Q_WARN = ${lookup pgsql{select quota_warn from popbox where local_part = "$local_part" and domain = "$domain"}}
Modified: trunk/vhffs-doc/config/exim4-mx1/exim4.conf.hash
===================================================================
--- trunk/vhffs-doc/config/exim4-mx1/exim4.conf.hash 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-doc/config/exim4-mx1/exim4.conf.hash 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,7 +6,7 @@
PGSQL_VIRTUAL_FORWARD_DATA = ${lookup pgsql{select remote_name from vhffs_forward, vhffs_mxdomain where local_part = '$local_part' and vhffs_forward.domain = vhffs_mxdomain.domain and vhffs_mxdomain.domain = '$domain'}}
PGSQL_ML_EXIST = ${lookup pgsql{select domain from mail_list where listname = '$local_part' and domain = '$domain'}}
PGSQL_VIRTUAL_CATCHALL = ${lookup pgsql{select catchall from vhffs_mxdomain where domain = '$domain' and catchall != ''}}
-PGSQL_GET_TX_USER = ${lookup pgsql{select vhffs_user_info.mail from vhffs_user_info, vhffs_users where vhffs_users.uid=vhffs_user_info.uid and vhffs_users.username='$local_part' and 'tuxfamily.org'='$domain'}}
+PGSQL_GET_TX_USER = ${lookup pgsql{select mail from vhffs_users where username='$local_part' and 'tuxfamily.org'='$domain'}}
#PGSQL_VIRTUAL_LOCAL_QUOTA = ${lookup pgsql{select quota from popbox where local_part = "$local_part" and domaine = "$domain"}}
#PGSQL_VIRTUAL_LOCAL_QFILE = ${lookup pgsql{select quota_f from popbox where local_part = "$local_part" and domain = "$domain"}}
#PGSQL_VIRTUAL_LOCAL_Q_WARN = ${lookup pgsql{select quota_warn from popbox where local_part = "$local_part" and domain = "$domain"}}
Copied: trunk/vhffs-intl/compile_po.sh (from rev 555, branches/vhffs_4.1/vhffs-intl/compile_po.sh)
Modified: trunk/vhffs-intl/result/es_ES/vhffs.mo
===================================================================
(Binary files differ)
Modified: trunk/vhffs-intl/result/fr_FR/vhffs.mo
===================================================================
(Binary files differ)
Property changes on: trunk/vhffs-intl/src
___________________________________________________________________
Name: svn:ignore
+ fr.po.old
es.po.old
Copied: trunk/vhffs-intl/src/es.po (from rev 555, branches/vhffs_4.1/vhffs-intl/src/es.po)
Copied: trunk/vhffs-intl/src/fr.po (from rev 555, branches/vhffs_4.1/vhffs-intl/src/fr.po)
Modified: trunk/vhffs-intl/src/vhffs.pot
===================================================================
--- trunk/vhffs-intl/src/vhffs.pot 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-intl/src/vhffs.pot 2007-04-15 21:17:33 UTC (rev 561)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-07 16:01+0200\n"
+"POT-Creation-Date: 2007-03-25 19:16+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -16,1647 +16,1654 @@
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:38
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:68
msgid "\t\t\t\t RIGHT can be subscriber or admin\n"
msgstr ""
-#: ../vhffs-panel/public/index.pl:32
+#: ../vhffs-panel/admin/moderation_submit.pl:105 ../vhffs-irc/modobot.pl:397
+msgid ""
+" was accepted\n"
+"Please wait while we are creating your object\n"
+msgstr ""
+
+#: ../vhffs-panel/public/index.pl:61
#, perl-format
msgid "%s public area"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:125
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:269
#, perl-format
+msgid "%s's Panel"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:155
+#, perl-format
msgid "%s-request@%s with subject : \"help\"\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:121
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:123
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:151
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:153
msgid "------\n"
msgstr ""
-#: ../vhffs-panel/web/create.pl:38
+#: ../vhffs-panel/web/create.pl:69
msgid "<new site>."
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:356
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:386
#, perl-format
msgid "A mail to moderate is on the list %s.\n"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:116
+#: ../vhffs-panel/acl/view.pl:148
msgid "ACL Administration for : "
msgstr ""
-#: ../vhffs-panel/acl/view.pl:135
+#: ../vhffs-panel/acl/view.pl:167
msgid "ACL level"
msgstr ""
-#: ../vhffs-panel/acl/add_acl_user.pl:79
-#: ../vhffs-panel/acl/add_acl_group.pl:79
+#: ../vhffs-panel/acl/add_acl_group.pl:106
+#: ../vhffs-panel/acl/add_acl_user.pl:106
msgid "ACL successfully added"
msgstr ""
-#: ../vhffs-panel/acl/submit.pl:81
+#: ../vhffs-panel/acl/submit.pl:108
msgid "ACL successfully deleted"
msgstr ""
-#: ../vhffs-panel/acl/submit.pl:92
+#: ../vhffs-panel/acl/submit.pl:119
msgid "ACL successfully modified"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:84
-#: ../vhffs-panel/admin/moderation.pl:126
-#: ../vhffs-panel/admin/moderation.pl:167
-#: ../vhffs-panel/admin/moderation.pl:211
-#: ../vhffs-panel/admin/moderation.pl:254
-#: ../vhffs-panel/admin/moderation.pl:299
-#: ../vhffs-panel/admin/moderation.pl:344
-#: ../vhffs-panel/admin/moderation.pl:387
-#: ../vhffs-panel/admin/moderation.pl:429
-#: ../vhffs-panel/admin/moderation.pl:470
+#: ../vhffs-panel/admin/moderation.pl:115
+#: ../vhffs-panel/admin/moderation.pl:157
+#: ../vhffs-panel/admin/moderation.pl:198
+#: ../vhffs-panel/admin/moderation.pl:242
+#: ../vhffs-panel/admin/moderation.pl:285
+#: ../vhffs-panel/admin/moderation.pl:330
+#: ../vhffs-panel/admin/moderation.pl:375
+#: ../vhffs-panel/admin/moderation.pl:418
+#: ../vhffs-panel/admin/moderation.pl:460
+#: ../vhffs-panel/admin/moderation.pl:502
msgid "Accept"
msgstr ""
-#: ../vhffs-panel/logout.pl:31 ../vhffs-panel/auth.pl:34
+#: ../vhffs-panel/logout.pl:60 ../vhffs-panel/auth.pl:60
msgid "Access to panel"
msgstr ""
-#: ../vhffs-panel/mail/delete_box.pl:82
+#: ../vhffs-panel/mail/delete_box.pl:105
msgid "Account successfully deleted"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:75
+#: ../vhffs-panel/mail/prefs.pl:106
msgid "Accounts"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:138
+#: ../vhffs-panel/user/prefs.pl:175
#, perl-format
msgid "Activate %s@%s email"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:348
-#: ../vhffs-panel/admin/mail/edit.pl:129 ../vhffs-panel/admin/dns/list.pl:80
-#: ../vhffs-panel/admin/pgsql/edit.pl:88 ../vhffs-panel/admin/pgsql/list.pl:82
-#: ../vhffs-panel/admin/cvs/edit.pl:97 ../vhffs-panel/admin/group/edit.pl:90
-#: ../vhffs-panel/admin/mysql/edit.pl:88 ../vhffs-panel/admin/mysql/list.pl:82
-#: ../vhffs-panel/admin/object/edit.pl:88
-#: ../vhffs-panel/admin/object/list.pl:77 ../vhffs-panel/admin/web/edit.pl:101
-#: ../vhffs-panel/admin/user/edit.pl:112
+#: ../vhffs-panel/admin/user/edit.pl:143
+#: ../vhffs-panel/admin/pgsql/edit.pl:119
+#: ../vhffs-panel/admin/group/edit.pl:119
+#: ../vhffs-panel/admin/repository/edit.pl:119
+#: ../vhffs-panel/admin/object/edit.pl:119
+#: ../vhffs-panel/admin/web/edit.pl:132 ../vhffs-panel/admin/mysql/edit.pl:120
+#: ../vhffs-panel/admin/cvs/edit.pl:128 ../vhffs-panel/admin/mail/edit.pl:160
msgid "Activated"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:112 ../vhffs-panel/mailinglist/prefs.pl:96
+#: ../vhffs-panel/mailinglist/prefs.pl:131 ../vhffs-panel/dns/prefs.pl:143
msgid "Add !"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:125
+#: ../vhffs-panel/dns/prefs.pl:156
msgid "Add a CNAME field to your domain"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:117
+#: ../vhffs-panel/dns/prefs.pl:148
msgid "Add a MX field to your domain"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:133
+#: ../vhffs-panel/dns/prefs.pl:164
msgid "Add a NS field to your domain"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:86 ../vhffs-panel/mail/prefs.pl:96
+#: ../vhffs-panel/mail/prefs.pl:117 ../vhffs-panel/mail/prefs.pl:127
msgid "Add a forward on this domain"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:94
+#: ../vhffs-panel/mailinglist/prefs.pl:129
msgid "Add a member"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:95
+#: ../vhffs-panel/mail/prefs.pl:126
msgid "Add a popbox to this domain"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:74
+#: ../vhffs-panel/group/prefs.pl:105
msgid "Add a user in this group"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:87
+#: ../vhffs-panel/dns/prefs.pl:118
msgid "Add an A record"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:77
+#: ../vhffs-panel/mail/prefs.pl:108
msgid "Add an account"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:75
+#: ../vhffs-panel/group/prefs.pl:106
msgid "Add this user !"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:83
+#: ../vhffs-panel/group/join_group.pl:110
msgid "Add this user to this group"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:73 ../vhffs-panel/admin/user/show.pl:73
-#: ../vhffs-panel/user/prefs.pl:53 ../vhffs-panel/subscribe.pl:43
+#: ../vhffs-panel/subscribe.pl:205 ../vhffs-panel/user/prefs.pl:84
+#: ../vhffs-panel/admin/user/edit.pl:104 ../vhffs-panel/admin/user/show.pl:104
msgid "Address"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:64
+#: ../vhffs-panel/web/prefs.pl:95
msgid "Address (Servername)"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:146
-#: ../vhffs-panel/admin/user/edit.pl:70 ../vhffs-panel/admin/user/edit.pl:100
-#: ../vhffs-panel/admin/user/show.pl:70 ../vhffs-panel/admin/user/show.pl:105
+#: ../vhffs-panel/mailinglist/prefs.pl:181
+#: ../vhffs-panel/admin/user/edit.pl:101 ../vhffs-panel/admin/user/edit.pl:131
+#: ../vhffs-panel/admin/user/show.pl:101 ../vhffs-panel/admin/user/show.pl:136
msgid "Admin"
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:68
+#: ../vhffs-panel/cvs/prefs.pl:99
msgid "Admin CVS Repository"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:79
+#: ../vhffs-panel/dns/prefs.pl:110
msgid "Admin DNS"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:92 ../vhffs-panel/web/prefs.pl:91
-#: ../vhffs-panel/mail/prefs.pl:106
+#: ../vhffs-panel/repository/prefs.pl:96
+msgid "Admin Download repository"
+msgstr ""
+
+#: ../vhffs-panel/dns/prefs.pl:123 ../vhffs-panel/web/prefs.pl:122
+#: ../vhffs-panel/mail/prefs.pl:137
msgid "Admin Rights on this object (ACL)"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:83
+#: ../vhffs-panel/svn/prefs.pl:113
msgid "Admin Subversion Repository"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:40
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:73
msgid "Admin account : "
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:76
+#: ../vhffs-panel/mailinglist/prefs.pl:107
msgid "Administration for list "
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:38
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:68
msgid "Administrator Menu"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:92
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:122
#, perl-format
msgid "Adress %s is already a subscriber for this list.\n"
msgstr ""
-#: ../vhffs-panel/web/create.pl:43
+#: ../vhffs-panel/web/create.pl:74
msgid "Adress (ServerName directive)"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:66 ../vhffs-panel/admin/web/show.pl:65
+#: ../vhffs-panel/admin/web/edit.pl:97 ../vhffs-panel/admin/web/show.pl:96
msgid "Alert Limit"
msgstr ""
-#: ../vhffs-panel/alert_submit.pl:42
+#: ../vhffs-panel/alert_submit.pl:73
msgid "Alert on Vhffs platform"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:67 ../vhffs-panel/admin/web/show.pl:66
+#: ../vhffs-panel/admin/web/edit.pl:98 ../vhffs-panel/admin/web/show.pl:97
msgid "Alert state"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:83
+#: ../vhffs-panel/public/allwebsites.pl:71
+#: ../vhffs-panel/public/allgroups.pl:67
+msgid "All"
+msgstr ""
+
+#: ../vhffs-panel/dns/prefs.pl:114
msgid "All A TYPE for you domain name"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:124
+#: ../vhffs-panel/dns/prefs.pl:155
msgid "All CNAME TYPE for your domain name"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:85
+#: ../vhffs-panel/dns/prefs.pl:116
msgid "All CNAME for you domain name"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:84
+#: ../vhffs-panel/dns/prefs.pl:115
msgid "All MX TYPE for you domain name"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:116
+#: ../vhffs-panel/dns/prefs.pl:147
msgid "All MX TYPE for your domain name"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:132
+#: ../vhffs-panel/dns/prefs.pl:163
msgid "All NS TYPE for your domain name"
msgstr ""
-#: ../vhffs-panel/admin/svn/list.pl:51
+#: ../vhffs-panel/admin/svn/list.pl:73
msgid "All Subversion repositories lists"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:19
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:49
msgid "All commands can be sent as mail subject.\n"
msgstr ""
-#: ../vhffs-panel/public/allgroups.pl:33
+#: ../vhffs-panel/public/allgroups.pl:65
#, perl-format
msgid "All groups on %s"
msgstr ""
-#: ../vhffs-panel/admin/largefile/list.pl:49
-msgid "All hosted files lists"
-msgstr ""
-
-#: ../vhffs-panel/admin/broadcast_list.pl:45
+#: ../vhffs-panel/admin/broadcast_list.pl:76
msgid "All mailings sent to hosted"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:21
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:51
msgid ""
"All mails with commands must be sent on \n"
" YOURLIST-request@xxxxxxxxxx list.\n"
msgstr ""
-#: ../vhffs-panel/admin/object/list.pl:52
+#: ../vhffs-panel/admin/object/list.pl:84
msgid "All objects List"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:95
+#: ../vhffs-panel/group/prefs.pl:126
msgid "All users in this group"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:34
-#: ../vhffs-panel/public/websearch.pl:42
+#: ../vhffs-panel/public/allwebsites.pl:69
+#: ../vhffs-panel/public/websearch.pl:74
#, perl-format
msgid "All websites on %s"
msgstr ""
-#: ../vhffs-panel/mail/add_forward.pl:65
+#: ../vhffs-panel/mail/add_forward.pl:95
#, perl-format
msgid "Already exists for this domain or bad parameters. Check your domain"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:95
+#: ../vhffs-panel/mailinglist/submit.pl:114
msgid "An error occured while adding an ACL for the group"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:148
+#: ../vhffs-panel/user/prefs_save.pl:184
msgid "An error occured while adding the box"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:152
+#: ../vhffs-panel/user/prefs_save.pl:188
msgid "An error occured while adding the box (anti-spam adding)"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:156
+#: ../vhffs-panel/user/prefs_save.pl:192
msgid "An error occured while adding the box (anti-virus adding)"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:243
+#: ../vhffs-panel/user/prefs_save.pl:260
msgid "An error occured while adding the forwarding"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:91
+#: ../vhffs-panel/mailinglist/submit.pl:112
msgid "An error occured while adding yourself to the ACL"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:83
-msgid "An error occured while applying changes"
-msgstr ""
-
-#: ../vhffs-panel/user/delete.pl:52
+#: ../vhffs-panel/user/delete.pl:83
msgid "An error occured while applying changes. This user will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/web/delete.pl:61
+#: ../vhffs-panel/web/delete.pl:92
msgid ""
"An error occured while applying changes. This web area will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:87
+#: ../vhffs-panel/mailinglist/submit.pl:110
msgid "An error occured while creating the list"
msgstr ""
-#: ../vhffs-panel/mail/submit.pl:57
+#: ../vhffs-panel/mail/submit.pl:86
msgid "An error occured while creating the mail area"
msgstr ""
-#: ../vhffs-panel/admin/mailing/mailing_submit.pl:53
+#: ../vhffs-panel/admin/mailing/mailing_submit.pl:84
msgid "An error occured while creating the message in the database"
msgstr ""
-#: ../vhffs-panel/svn/svn_submit.pl:59 ../vhffs-panel/mysql/submit.pl:74
+#: ../vhffs-panel/svn/svn_submit.pl:80 ../vhffs-panel/mysql/submit.pl:103
msgid "An error occured while creating the object"
msgstr ""
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:70
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:99
#, perl-format
msgid "An error occured while creating the object %s %s"
msgstr ""
-#: ../vhffs-panel/largefile/submit.pl:66
+#: ../vhffs-panel/dns/dns_submit.pl:78
msgid ""
-"An error occured while creating the object. Parameters are invalid or the "
-"file already exists."
-msgstr ""
-
-#: ../vhffs-panel/dns/dns_submit.pl:52
-msgid ""
"An error occured while creating the object. The domain is not correct or "
"aleady exists in Vhffs database"
msgstr ""
-#: ../vhffs-panel/cvs/cvs_submit.pl:63
+#: ../vhffs-panel/repository/repository_submit.pl:93
+#: ../vhffs-panel/cvs/cvs_submit.pl:92
msgid "An error occured while creating the object.It probably already exists"
msgstr ""
-#: ../vhffs-panel/cvs/delete.pl:68
+#: ../vhffs-panel/cvs/delete.pl:99
msgid "An error occured while deleting the CVS repository"
msgstr ""
-#: ../vhffs-panel/svn/delete.pl:67 ../vhffs-panel/largefile/delete.pl:66
+#: ../vhffs-panel/repository/delete.pl:99
+msgid "An error occured while deleting the Download repository"
+msgstr ""
+
+#: ../vhffs-panel/svn/delete.pl:98
msgid "An error occured while deleting the Subversion repository"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_delete.pl:64
+#: ../vhffs-panel/admin/broadcast_delete.pl:95
msgid "An error occured while deleting this mailing"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:81
-msgid "An error occured while fetching information about this mailing list"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Robots/Mysql.pm:140
+#: ../vhffs-api/src/Vhffs/Robots/Mysql.pm:108
msgid "An error occured while granting privileges to an admin user"
msgstr ""
-#: ../vhffs-panel/mailinglist/change_right.pl:80
+#: ../vhffs-panel/mailinglist/change_right.pl:107
msgid "An error occured while modifying the rights"
msgstr ""
-#: ../vhffs-panel/svn/svn_submit.pl:55
+#: ../vhffs-panel/svn/svn_submit.pl:78
msgid "An error occured while setting up the ACL"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:255
+#: ../vhffs-panel/user/prefs_save.pl:272
msgid "An error occured while the forwarding"
msgstr ""
-#: ../vhffs-panel/mailinglist/del_member.pl:74
+#: ../vhffs-panel/mailinglist/del_member.pl:101
msgid "An error occured while unsubscribing the user"
msgstr ""
-#: ../vhffs-panel/admin/user/edit_submit.pl:100
+#: ../vhffs-panel/admin/user/edit_submit.pl:131
msgid "An error occured while updating"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:243
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:273
#, perl-format
msgid ""
"An error occured while updating language for the following address: %s.\n"
msgstr ""
-#: ../vhffs-panel/cvs/prefs_save.pl:82
+#: ../vhffs-panel/cvs/prefs_save.pl:112
msgid "An error occured while updating the CVS repository"
msgstr ""
-#: ../vhffs-panel/svn/prefs_save.pl:76
+#: ../vhffs-panel/repository/prefs_save.pl:96
+msgid "An error occured while updating the Download repository"
+msgstr ""
+
+#: ../vhffs-panel/svn/prefs_save.pl:107
msgid "An error occured while updating the Subversion repository"
msgstr ""
-#: ../vhffs-panel/mail/save_catchall.pl:65
+#: ../vhffs-panel/mail/save_catchall.pl:96
msgid "An error occured while updating the mail domain"
msgstr ""
-#: ../vhffs-panel/admin/object/edit_submit.pl:58
+#: ../vhffs-panel/admin/object/edit_submit.pl:89
msgid "An error occured while updating the object"
msgstr ""
-#: ../vhffs-panel/group/prefs_save.pl:65 ../vhffs-panel/group/delete.pl:58
+#: ../vhffs-panel/group/delete.pl:89 ../vhffs-panel/group/prefs_save.pl:91
msgid "An error occured while updating the project"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:97
+#: ../vhffs-panel/user/prefs_save.pl:128
msgid "An error occured while updating the user account"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:151
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:181
#, perl-format
msgid "An error occurs while you subscribed to the list %s \n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:385
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:415
msgid "April"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:62
-#: ../vhffs-listengine/src/archives/archives.pl:116
+#: ../vhffs-listengine/src/archives/archives.pl:147
+#: ../vhffs-listengine/src/archives/show_msg.pl:93
msgid "Archive are not open for this list"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:129
-#: ../vhffs-listengine/src/archives/archives.pl:166
-#: ../vhffs-listengine/src/archives/archives.pl:188
-#: ../vhffs-listengine/src/archives/archives.pl:212
+#: ../vhffs-listengine/src/archives/archives.pl:160
+#: ../vhffs-listengine/src/archives/archives.pl:197
+#: ../vhffs-listengine/src/archives/archives.pl:219
+#: ../vhffs-listengine/src/archives/archives.pl:243
msgid "Archives"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:200
+#: ../vhffs-listengine/src/archives/archives.pl:231
msgid "Archives for "
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:224
+#: ../vhffs-listengine/src/archives/archives.pl:255
msgid "Archives for year"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:94 ../vhffs-panel/largefile/prefs.pl:101
+#: ../vhffs-panel/svn/prefs.pl:124
msgid "Are you SURE you want DELETE this subversion repository ?"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:167 ../vhffs-panel/mail/prefs.pl:101
+#: ../vhffs-panel/mailinglist/prefs.pl:202 ../vhffs-panel/mail/prefs.pl:132
msgid "Are you SURE you want DELETE this Mail Area ?"
msgstr ""
-#: ../vhffs-panel/mysql/prefs.pl:85
+#: ../vhffs-panel/mysql/prefs.pl:116
msgid "Are you SURE you want DELETE this MySQL database ?"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:78
+#: ../vhffs-panel/pgsql/prefs.pl:109
msgid "Are you SURE you want DELETE this PostgreSQL database ?"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:97
+#: ../vhffs-panel/web/prefs.pl:128
msgid "Are you SURE you want DELETE this Web Area ?"
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:77
+#: ../vhffs-panel/cvs/prefs.pl:108
msgid "Are you SURE you want DELETE this cvs repository ?"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:100
+#: ../vhffs-panel/dns/prefs.pl:131
msgid "Are you SURE you want DELETE this domain ?"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:68
+#: ../vhffs-panel/repository/prefs.pl:104
+msgid "Are you SURE you want DELETE this download repository ?"
+msgstr ""
+
+#: ../vhffs-panel/group/prefs.pl:99
msgid "Are you SURE you want DELETE this project ?"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:74
+#: ../vhffs-panel/user/prefs.pl:103
msgid "Are you SURE you want DELETE this user?"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:401
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:431
msgid "August"
msgstr ""
-#: ../vhffs-panel/admin/object/delete_avatar.pl:68
+#: ../vhffs-panel/admin/object/delete_avatar.pl:99
msgid "Avatar deleted"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:163
+#: ../vhffs-panel/admin/object/edit.pl:194
msgid "Avatar management"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:65
-#: ../vhffs-panel/admin/broadcast_list.pl:64
+#: ../vhffs-panel/admin/broadcast_list.pl:95
+#: ../vhffs-panel/admin/broadcast_view.pl:96
msgid "Awaiting sending"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:45 ../vhffs-panel/subscribe_complete.pl:214
+#: ../vhffs-panel/subscribe.pl:169 ../vhffs-panel/subscribe.pl:207
msgid "Back to Login"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:160
+#: ../vhffs-listengine/src/archives/archives.pl:191
#, perl-format
msgid "Back to archives by month ( %s )"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:189
+#: ../vhffs-listengine/src/archives/archives.pl:220
#, perl-format
msgid "Back to archives by year ( %s )"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:130
+#: ../vhffs-listengine/src/archives/archives.pl:161
msgid "Back to list by day"
msgstr ""
-#: ../vhffs-panel/lost.pl:28
+#: ../vhffs-panel/lost.pl:56
msgid "Back to login page"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:40
+#: ../vhffs-listengine/src/archives/show_msg.pl:71
msgid "Bad listname"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:100
+#: ../vhffs-listengine/src/archives/archives.pl:131
#, perl-format
msgid "Bad listname %s"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:56
+#: ../vhffs-listengine/src/archives/show_msg.pl:87
msgid "Bad message-id"
msgstr ""
-#: ../vhffs-panel/mysql/prefs.pl:67
+#: ../vhffs-panel/mysql/prefs.pl:98
msgid ""
"Be careful ! If you click on modify, VHFFS will stop the database and set a "
"new password for this database."
msgstr ""
-#: ../vhffs-panel/dns/create.pl:35
+#: ../vhffs-panel/dns/create.pl:36
msgid ""
"Be careful ! You must give the reason why you want to host this domain on "
"our servers."
msgstr ""
-#: ../vhffs-panel/web/create.pl:44
+#: ../vhffs-panel/web/create.pl:75
msgid ""
"Be careful, if you want create www.domain.tld, you should create a webspace "
"with servername as domain.tld. VHFFS redirect all request from www.domain."
"tld to domain.tld"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:57
+#: ../vhffs-panel/admin/broadcast_view.pl:88
msgid "Body"
msgstr ""
-#: ../vhffs-panel/lost.pl:25
+#: ../vhffs-panel/lost.pl:53
msgid ""
"But fortunately we're smart, so just type your login here<br/>and a new "
"password will be sent to you by email!"
msgstr ""
-#: ../vhffs-panel/mail/delete_forward.pl:53
-#: ../vhffs-panel/mail/change_forward.pl:59 ../vhffs-panel/mail/spambox.pl:59
-#: ../vhffs-panel/mail/spamvirus.pl:59 ../vhffs-panel/mail/delete_box.pl:56
-#: ../vhffs-panel/mail/password_box.pl:59
-#: ../vhffs-panel/mail/add_forward.pl:48 ../vhffs-panel/mail/delete.pl:43
-#: ../vhffs-panel/mail/add_account.pl:51
-#: ../vhffs-panel/admin/mail/delete_forward.pl:59
-#: ../vhffs-panel/admin/mail/change_forward.pl:60
-#: ../vhffs-panel/admin/mail/delete_box.pl:59
-#: ../vhffs-panel/admin/mail/password_box.pl:60
+#: ../vhffs-panel/admin/mail/delete_box.pl:82
+#: ../vhffs-panel/admin/mail/password_box.pl:83
+#: ../vhffs-panel/admin/mail/delete_forward.pl:83
+#: ../vhffs-panel/admin/mail/change_forward.pl:83
+#: ../vhffs-panel/mail/delete.pl:74 ../vhffs-panel/mail/delete_box.pl:79
+#: ../vhffs-panel/mail/add_account.pl:82
+#: ../vhffs-panel/mail/password_box.pl:82
+#: ../vhffs-panel/mail/delete_forward.pl:79
+#: ../vhffs-panel/mail/add_forward.pl:78
+#: ../vhffs-panel/mail/change_forward.pl:82
+#: ../vhffs-panel/mail/spamvirus.pl:82 ../vhffs-panel/mail/spambox.pl:82
msgid "CGI ERROR"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:50 ../vhffs-panel/admin/mail/show.pl:50
-#: ../vhffs-panel/admin/pgsql/edit.pl:48
-#: ../vhffs-panel/admin/pgsql/edit_submit.pl:48
-#: ../vhffs-panel/admin/pgsql/show.pl:48 ../vhffs-panel/admin/cvs/edit.pl:48
-#: ../vhffs-panel/admin/cvs/edit_submit.pl:50
-#: ../vhffs-panel/admin/cvs/show.pl:48
-#: ../vhffs-panel/admin/group/edit_submit.pl:53
-#: ../vhffs-panel/admin/mysql/edit.pl:48
-#: ../vhffs-panel/admin/mysql/edit_submit.pl:48
-#: ../vhffs-panel/admin/mysql/show.pl:47
-#: ../vhffs-panel/admin/object/edit.pl:48
-#: ../vhffs-panel/admin/object/edit_submit.pl:46
-#: ../vhffs-panel/admin/object/delete_avatar.pl:50
-#: ../vhffs-panel/admin/web/edit.pl:48
-#: ../vhffs-panel/admin/web/edit_submit.pl:48
-#: ../vhffs-panel/admin/web/show.pl:48 ../vhffs-panel/admin/user/edit.pl:48
-#: ../vhffs-panel/admin/user/edit_submit.pl:60
-#: ../vhffs-panel/admin/user/edit_note.pl:50
-#: ../vhffs-panel/admin/user/show.pl:50
+#: ../vhffs-panel/admin/user/edit_submit.pl:91
+#: ../vhffs-panel/admin/user/edit.pl:79 ../vhffs-panel/admin/user/show.pl:81
+#: ../vhffs-panel/admin/user/edit_note.pl:81
+#: ../vhffs-panel/admin/pgsql/edit_submit.pl:79
+#: ../vhffs-panel/admin/pgsql/edit.pl:79 ../vhffs-panel/admin/pgsql/show.pl:79
+#: ../vhffs-panel/admin/group/edit_submit.pl:83
+#: ../vhffs-panel/admin/group/edit.pl:77
+#: ../vhffs-panel/admin/repository/edit_submit.pl:81
+#: ../vhffs-panel/admin/repository/edit.pl:79
+#: ../vhffs-panel/admin/repository/show.pl:79
+#: ../vhffs-panel/admin/object/edit_submit.pl:77
+#: ../vhffs-panel/admin/object/delete_avatar.pl:81
+#: ../vhffs-panel/admin/object/edit.pl:79
+#: ../vhffs-panel/admin/web/edit_submit.pl:79
+#: ../vhffs-panel/admin/web/edit.pl:79 ../vhffs-panel/admin/web/show.pl:79
+#: ../vhffs-panel/admin/mysql/edit_submit.pl:78
+#: ../vhffs-panel/admin/mysql/edit.pl:79 ../vhffs-panel/admin/mysql/show.pl:78
+#: ../vhffs-panel/admin/cvs/edit_submit.pl:81
+#: ../vhffs-panel/admin/cvs/edit.pl:79 ../vhffs-panel/admin/cvs/show.pl:79
+#: ../vhffs-panel/admin/mail/edit.pl:81 ../vhffs-panel/admin/mail/show.pl:81
msgid "CGI ERROR !"
msgstr ""
-#: ../vhffs-panel/admin/group/edit.pl:48 ../vhffs-panel/admin/group/show.pl:48
+#: ../vhffs-panel/admin/group/show.pl:78
#, perl-format
msgid "CGI ERROR ! %s"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:48 ../vhffs-panel/public/group.pl:39
-#: ../vhffs-panel/public/user.pl:38
+#: ../vhffs-panel/public/user.pl:66 ../vhffs-panel/public/group.pl:71
msgid "CGI ERROR!"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:39
-#: ../vhffs-panel/group/remove_user_from_group.pl:40
-#: ../vhffs-panel/acl/submit.pl:54 ../vhffs-panel/svn/prefs.pl:52
-#: ../vhffs-panel/svn/create.pl:33 ../vhffs-panel/mailinglist/submit.pl:65
-#: ../vhffs-panel/mail/submit.pl:43 ../vhffs-panel/largefile/prefs.pl:53
+#: ../vhffs-panel/mailinglist/submit.pl:96 ../vhffs-panel/svn/prefs.pl:82
+#: ../vhffs-panel/svn/create.pl:64 ../vhffs-panel/acl/submit.pl:85
+#: ../vhffs-panel/group/remove_user_from_group.pl:71
+#: ../vhffs-panel/group/join_group.pl:70 ../vhffs-panel/mail/submit.pl:74
msgid "CGI Error"
msgstr ""
-#: ../vhffs-panel/acl/add_acl_user.pl:55
-#: ../vhffs-panel/acl/add_acl_group.pl:55
+#: ../vhffs-panel/acl/add_acl_group.pl:86
+#: ../vhffs-panel/acl/add_acl_user.pl:86
msgid "CGI Error "
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:42 ../vhffs-panel/group/prefs_save.pl:48
-#: ../vhffs-panel/svn/svn_submit.pl:41 ../vhffs-panel/svn/delete.pl:42
-#: ../vhffs-panel/pgsql/delete.pl:50
-#: ../vhffs-panel/admin/mailing/mailing_submit.pl:47
-#: ../vhffs-panel/admin/group/edit_submit.pl:65
-#: ../vhffs-panel/admin/broadcast_delete.pl:52
-#: ../vhffs-panel/admin/broadcast_submit.pl:52
-#: ../vhffs-panel/admin/broadcast_view.pl:47
-#: ../vhffs-panel/largefile/delete.pl:41 ../vhffs-panel/largefile/submit.pl:44
-#: ../vhffs-panel/mysql/prefs_save.pl:48 ../vhffs-panel/mysql/prefs.pl:40
-#: ../vhffs-panel/mysql/delete.pl:45 ../vhffs-panel/mysql/submit.pl:44
-#: ../vhffs-panel/history.pl:53
+#: ../vhffs-panel/svn/delete.pl:73 ../vhffs-panel/svn/svn_submit.pl:71
+#: ../vhffs-panel/history.pl:84 ../vhffs-panel/pgsql/delete.pl:81
+#: ../vhffs-panel/group/prefs_save.pl:74 ../vhffs-panel/repository/prefs.pl:72
+#: ../vhffs-panel/admin/mailing/mailing_submit.pl:78
+#: ../vhffs-panel/admin/broadcast_submit.pl:83
+#: ../vhffs-panel/admin/broadcast_delete.pl:83
+#: ../vhffs-panel/admin/group/edit_submit.pl:95
+#: ../vhffs-panel/admin/broadcast_view.pl:78 ../vhffs-panel/mysql/delete.pl:76
+#: ../vhffs-panel/mysql/prefs.pl:71 ../vhffs-panel/mysql/submit.pl:75
+#: ../vhffs-panel/mysql/prefs_save.pl:79 ../vhffs-panel/cvs/prefs.pl:73
msgid "CGI Error !"
msgstr ""
-#: ../vhffs-panel/cvs/prefs_save.pl:43 ../vhffs-panel/cvs/delete.pl:43
-#: ../vhffs-panel/svn/prefs_save.pl:43
+#: ../vhffs-panel/svn/prefs_save.pl:74 ../vhffs-panel/repository/delete.pl:74
+#: ../vhffs-panel/repository/prefs_save.pl:74 ../vhffs-panel/cvs/delete.pl:74
+#: ../vhffs-panel/cvs/prefs_save.pl:74
#, perl-format
msgid "CGI Error ! %s"
msgstr ""
-#: ../vhffs-panel/dns/delete_cname.pl:48 ../vhffs-panel/dns/delete_mx.pl:48
-#: ../vhffs-panel/dns/add_ns.pl:48 ../vhffs-panel/dns/prefs.pl:47
-#: ../vhffs-panel/dns/add_cname.pl:49 ../vhffs-panel/dns/add_a.pl:52
-#: ../vhffs-panel/dns/modif_cname.pl:49 ../vhffs-panel/dns/add_mx.pl:49
-#: ../vhffs-panel/dns/modif_a.pl:49 ../vhffs-panel/dns/modif_mx.pl:49
-#: ../vhffs-panel/dns/delete_ns.pl:47 ../vhffs-panel/dns/delete_a.pl:49
-#: ../vhffs-panel/dns/delete.pl:48
-#: ../vhffs-panel/mailinglist/save_options.pl:53
-#: ../vhffs-panel/mailinglist/del_member.pl:48
-#: ../vhffs-panel/mailinglist/add_sub.pl:48
-#: ../vhffs-panel/mailinglist/change_right.pl:50
-#: ../vhffs-panel/mailinglist/change_right.pl:74
-#: ../vhffs-panel/mailinglist/delete.pl:47 ../vhffs-panel/web/web_submit.pl:41
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:42
-#: ../vhffs-panel/user/prefs_save.pl:60
+#: ../vhffs-panel/mailinglist/delete.pl:78
+#: ../vhffs-panel/mailinglist/save_sig.pl:77
+#: ../vhffs-panel/mailinglist/add_sub.pl:79
+#: ../vhffs-panel/mailinglist/save_options.pl:84
+#: ../vhffs-panel/mailinglist/change_right.pl:81
+#: ../vhffs-panel/mailinglist/change_right.pl:101
+#: ../vhffs-panel/mailinglist/del_member.pl:79
+#: ../vhffs-panel/user/prefs_save.pl:91 ../vhffs-panel/dns/delete.pl:79
+#: ../vhffs-panel/dns/add_mx.pl:80 ../vhffs-panel/dns/prefs.pl:78
+#: ../vhffs-panel/dns/modif_a.pl:80 ../vhffs-panel/dns/add_ns.pl:79
+#: ../vhffs-panel/dns/add_cname.pl:80 ../vhffs-panel/dns/delete_a.pl:50
+#: ../vhffs-panel/dns/delete_ns.pl:78 ../vhffs-panel/dns/delete_mx.pl:79
+#: ../vhffs-panel/dns/modif_cname.pl:81 ../vhffs-panel/dns/modif_mx.pl:81
+#: ../vhffs-panel/dns/add_a.pl:84 ../vhffs-panel/dns/delete_cname.pl:79
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:73 ../vhffs-panel/web/web_submit.pl:72
msgid "CGI Error!"
msgstr ""
-#: ../vhffs-panel/group/project_submit.pl:39
+#: ../vhffs-panel/group/project_submit.pl:70
msgid "CGI Errror!"
msgstr ""
-#: ../vhffs-panel/admin/moderation_submit.pl:59
+#: ../vhffs-panel/admin/moderation_submit.pl:90
msgid "CGI problem"
msgstr ""
-#: ../vhffs-panel/dns/modif_cname.pl:73
+#: ../vhffs-panel/dns/modif_cname.pl:105
msgid "CNAME field successfully updated"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:116
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:145
msgid "CVS Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:118
+#: ../vhffs-panel/admin/cvs/list.pl:89
+msgid "CVS Root"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:147
msgid "CVS Search"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:349
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:425
msgid "CVS repositories for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:90
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:118
msgid "CVS repository"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:186
+#: ../vhffs-panel/admin/moderation.pl:217
msgid "CVS repository awaiting validation"
msgstr ""
-#: ../vhffs-panel/public/group.pl:114
+#: ../vhffs-panel/public/group.pl:146
msgid "CVS repository for this group"
msgstr ""
-#: ../vhffs-panel/cvs/prefs_save.pl:86
+#: ../vhffs-panel/cvs/prefs_save.pl:116
msgid "CVS repository updated"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:88
+#: ../vhffs-panel/admin/stats.pl:119
msgid "CVS stats"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:107
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:136
msgid "CVSweb"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:133 ../vhffs-panel/acl/view.pl:158
-#: ../vhffs-panel/acl/view.pl:206
+#: ../vhffs-panel/acl/view.pl:165 ../vhffs-panel/acl/view.pl:189
+#: ../vhffs-panel/acl/view.pl:236
msgid "Can destroy this service"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:132 ../vhffs-panel/acl/view.pl:157
-#: ../vhffs-panel/acl/view.pl:205
+#: ../vhffs-panel/acl/view.pl:164 ../vhffs-panel/acl/view.pl:188
+#: ../vhffs-panel/acl/view.pl:235
msgid "Can manage ACL for this service"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:131 ../vhffs-panel/acl/view.pl:156
-#: ../vhffs-panel/acl/view.pl:204
+#: ../vhffs-panel/acl/view.pl:163 ../vhffs-panel/acl/view.pl:187
+#: ../vhffs-panel/acl/view.pl:234
msgid "Can modify this service"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:130 ../vhffs-panel/acl/view.pl:155
-#: ../vhffs-panel/acl/view.pl:203
+#: ../vhffs-panel/acl/view.pl:162 ../vhffs-panel/acl/view.pl:186
+#: ../vhffs-panel/acl/view.pl:233
msgid "Can view this service"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:129 ../vhffs-panel/acl/view.pl:154
-#: ../vhffs-panel/acl/view.pl:202
+#: ../vhffs-panel/acl/view.pl:161 ../vhffs-panel/acl/view.pl:185
+#: ../vhffs-panel/acl/view.pl:232
msgid "Can't access"
msgstr ""
-#: ../vhffs-panel/mail/password_box.pl:81
+#: ../vhffs-panel/mail/password_box.pl:104
msgid "Can't change password"
msgstr ""
-#: ../vhffs-panel/mail/delete_box.pl:78
+#: ../vhffs-panel/mail/delete_box.pl:101
#, perl-format
msgid "Can't delete box %s"
msgstr ""
-#: ../vhffs-panel/mail/change_forward.pl:81
-#: ../vhffs-panel/admin/mail/change_forward.pl:82
-msgid "Can't modify forwarding"
-msgstr ""
-
-#: ../vhffs-panel/admin/web/edit_submit.pl:68
+#: ../vhffs-panel/admin/web/edit_submit.pl:100
msgid "Can't modify object ..."
msgstr ""
-#: ../vhffs-panel/admin/cvs/edit_submit.pl:69
-#: ../vhffs-panel/admin/group/edit_submit.pl:80
+#: ../vhffs-panel/admin/group/edit_submit.pl:110
+#: ../vhffs-panel/admin/repository/edit_submit.pl:101
+#: ../vhffs-panel/admin/cvs/edit_submit.pl:100
msgid "Can't modify object..."
msgstr ""
-#: ../vhffs-panel/dns/add_ns.pl:68 ../vhffs-panel/dns/add_cname.pl:69
-#: ../vhffs-panel/dns/add_a.pl:76 ../vhffs-panel/dns/add_a.pl:92
-#: ../vhffs-panel/dns/add_mx.pl:69
+#: ../vhffs-panel/dns/add_mx.pl:98 ../vhffs-panel/dns/add_ns.pl:96
+#: ../vhffs-panel/dns/add_cname.pl:100 ../vhffs-panel/dns/add_a.pl:108
+#: ../vhffs-panel/dns/add_a.pl:124
msgid "Cannot add this ressource to this domain"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:55
+#: ../vhffs-panel/group/join_group.pl:82
msgid "Cannot add this user in this group"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:200
+#: ../vhffs-panel/subscribe.pl:162
msgid "Cannot apply changes to the user"
msgstr ""
-#: ../vhffs-panel/admin/moderation_submit.pl:106
+#: ../vhffs-panel/admin/moderation_submit.pl:136
msgid "Cannot apply modifications"
msgstr ""
-#: ../vhffs-panel/mailinglist/save_options.pl:57
-#: ../vhffs-panel/mailinglist/del_member.pl:52
-#: ../vhffs-panel/mailinglist/add_sub.pl:52
-#: ../vhffs-panel/mailinglist/change_right.pl:54
-#: ../vhffs-panel/mailinglist/delete.pl:51
-msgid "Cannot build object"
-msgstr ""
-
-#: ../vhffs-panel/mailinglist/delete.pl:75
+#: ../vhffs-panel/mailinglist/delete.pl:102
msgid "Cannot commit changes on this object, will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:179
+#: ../vhffs-panel/subscribe.pl:152
msgid "Cannot create user, the username you entered already exists"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:212
-msgid ""
-"Cannot create user. Your username should contain at least 3 characters which "
-"are only lower case and digits."
-msgstr ""
-
-#: ../vhffs-panel/dns/delete_cname.pl:68 ../vhffs-panel/dns/delete_mx.pl:68
-#: ../vhffs-panel/dns/delete_ns.pl:67 ../vhffs-panel/dns/delete_a.pl:69
+#: ../vhffs-panel/dns/delete_a.pl:70 ../vhffs-panel/dns/delete_ns.pl:98
+#: ../vhffs-panel/dns/delete_mx.pl:99 ../vhffs-panel/dns/delete_cname.pl:97
msgid "Cannot delete it."
msgstr ""
-#: ../vhffs-panel/admin/object/delete_avatar.pl:64
+#: ../vhffs-panel/admin/object/delete_avatar.pl:95
msgid "Cannot delete this avatar"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:56 ../vhffs-panel/admin/mail/show.pl:56
-#: ../vhffs-panel/admin/pgsql/edit.pl:54 ../vhffs-panel/admin/pgsql/show.pl:54
-#: ../vhffs-panel/admin/cvs/edit.pl:54 ../vhffs-panel/admin/cvs/show.pl:54
-#: ../vhffs-panel/admin/group/edit.pl:54
-#: ../vhffs-panel/admin/group/edit_submit.pl:59
-#: ../vhffs-panel/admin/group/show.pl:54 ../vhffs-panel/admin/mysql/edit.pl:54
-#: ../vhffs-panel/admin/mysql/show.pl:53
-#: ../vhffs-panel/admin/object/edit.pl:53
-#: ../vhffs-panel/admin/object/edit_submit.pl:50
-#: ../vhffs-panel/admin/object/delete_avatar.pl:54
-#: ../vhffs-panel/admin/web/edit.pl:54
-#: ../vhffs-panel/admin/web/edit_submit.pl:54
-#: ../vhffs-panel/admin/web/show.pl:54 ../vhffs-panel/admin/user/edit.pl:54
-#: ../vhffs-panel/admin/user/edit_submit.pl:65
-#: ../vhffs-panel/admin/user/edit_note.pl:55
-#: ../vhffs-panel/admin/user/show.pl:56
+#: ../vhffs-panel/admin/user/edit_submit.pl:96
+#: ../vhffs-panel/admin/user/edit.pl:85 ../vhffs-panel/admin/user/show.pl:87
+#: ../vhffs-panel/admin/user/edit_note.pl:86
+#: ../vhffs-panel/admin/pgsql/edit.pl:85 ../vhffs-panel/admin/pgsql/show.pl:85
+#: ../vhffs-panel/admin/group/edit_submit.pl:89
+#: ../vhffs-panel/admin/group/edit.pl:83 ../vhffs-panel/admin/group/show.pl:84
+#: ../vhffs-panel/admin/repository/edit.pl:85
+#: ../vhffs-panel/admin/repository/show.pl:85
+#: ../vhffs-panel/admin/object/edit_submit.pl:81
+#: ../vhffs-panel/admin/object/delete_avatar.pl:85
+#: ../vhffs-panel/admin/object/edit.pl:84
+#: ../vhffs-panel/admin/web/edit_submit.pl:85
+#: ../vhffs-panel/admin/web/edit.pl:85 ../vhffs-panel/admin/web/show.pl:85
+#: ../vhffs-panel/admin/mysql/edit.pl:85 ../vhffs-panel/admin/mysql/show.pl:84
+#: ../vhffs-panel/admin/cvs/edit.pl:85 ../vhffs-panel/admin/cvs/show.pl:85
+#: ../vhffs-panel/admin/mail/edit.pl:87 ../vhffs-panel/admin/mail/show.pl:87
msgid "Cannot fetch object"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit_submit.pl:54
-#: ../vhffs-panel/admin/cvs/edit_submit.pl:56
-#: ../vhffs-panel/admin/mysql/edit_submit.pl:54
+#: ../vhffs-panel/admin/pgsql/edit_submit.pl:85
+#: ../vhffs-panel/admin/repository/edit_submit.pl:87
+#: ../vhffs-panel/admin/mysql/edit_submit.pl:84
+#: ../vhffs-panel/admin/cvs/edit_submit.pl:87
#, perl-format
msgid "Cannot fetch object %s"
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:70
+#: ../vhffs-panel/object/upavatar.pl:101
msgid "Cannot find object"
msgstr ""
-#: ../vhffs-panel/admin/mail/delete_box.pl:52
-#: ../vhffs-panel/admin/mail/password_box.pl:53 ../vhffs-panel/history.pl:60
+#: ../vhffs-panel/history.pl:91
msgid "Cannot get information on this object"
msgstr ""
-#: ../vhffs-panel/dns/delete_cname.pl:53 ../vhffs-panel/dns/delete_mx.pl:53
-#: ../vhffs-panel/dns/add_ns.pl:53 ../vhffs-panel/dns/prefs.pl:54
-#: ../vhffs-panel/dns/add_cname.pl:54 ../vhffs-panel/dns/add_a.pl:56
-#: ../vhffs-panel/dns/modif_cname.pl:54 ../vhffs-panel/dns/add_mx.pl:54
-#: ../vhffs-panel/dns/modif_a.pl:54 ../vhffs-panel/dns/modif_mx.pl:54
-#: ../vhffs-panel/dns/delete_ns.pl:52 ../vhffs-panel/dns/delete_a.pl:54
-#: ../vhffs-panel/dns/delete.pl:53 ../vhffs-panel/cvs/prefs.pl:48
-#: ../vhffs-panel/svn/prefs.pl:63
-#: ../vhffs-panel/mailinglist/save_options.pl:61
-#: ../vhffs-panel/mailinglist/del_member.pl:56
-#: ../vhffs-panel/mailinglist/prefs.pl:55
-#: ../vhffs-panel/mailinglist/add_sub.pl:56
-#: ../vhffs-panel/mailinglist/change_right.pl:58
-#: ../vhffs-panel/mailinglist/delete.pl:55 ../vhffs-panel/web/prefs.pl:41
-#: ../vhffs-panel/mail/delete_forward.pl:48
-#: ../vhffs-panel/mail/change_forward.pl:52
-#: ../vhffs-panel/mail/save_catchall.pl:43 ../vhffs-panel/mail/spambox.pl:52
-#: ../vhffs-panel/mail/spamvirus.pl:52 ../vhffs-panel/mail/delete_box.pl:49
-#: ../vhffs-panel/mail/password_box.pl:52
-#: ../vhffs-panel/mail/add_forward.pl:43 ../vhffs-panel/mail/prefs.pl:46
-#: ../vhffs-panel/mail/delete.pl:47 ../vhffs-panel/mail/add_account.pl:44
-#: ../vhffs-panel/pgsql/prefs.pl:40
-#: ../vhffs-panel/admin/mail/delete_forward.pl:52
-#: ../vhffs-panel/admin/mail/change_forward.pl:53
-#: ../vhffs-panel/largefile/prefs.pl:64 ../vhffs-panel/mysql/prefs.pl:46
+#: ../vhffs-panel/mailinglist/delete.pl:82
+#: ../vhffs-panel/mailinglist/save_sig.pl:81
+#: ../vhffs-panel/mailinglist/add_sub.pl:83
+#: ../vhffs-panel/mailinglist/prefs.pl:86
+#: ../vhffs-panel/mailinglist/save_options.pl:88
+#: ../vhffs-panel/mailinglist/change_right.pl:85
+#: ../vhffs-panel/mailinglist/del_member.pl:83 ../vhffs-panel/svn/prefs.pl:93
+#: ../vhffs-panel/dns/delete.pl:84 ../vhffs-panel/dns/add_mx.pl:83
+#: ../vhffs-panel/dns/prefs.pl:85 ../vhffs-panel/dns/modif_a.pl:83
+#: ../vhffs-panel/dns/add_ns.pl:81 ../vhffs-panel/dns/add_cname.pl:85
+#: ../vhffs-panel/dns/delete_a.pl:55 ../vhffs-panel/dns/delete_ns.pl:83
+#: ../vhffs-panel/dns/delete_mx.pl:84 ../vhffs-panel/dns/modif_cname.pl:86
+#: ../vhffs-panel/dns/modif_mx.pl:86 ../vhffs-panel/dns/add_a.pl:88
+#: ../vhffs-panel/dns/delete_cname.pl:82 ../vhffs-panel/pgsql/prefs.pl:71
+#: ../vhffs-panel/repository/prefs.pl:76 ../vhffs-panel/web/prefs.pl:72
+#: ../vhffs-panel/mysql/prefs.pl:77 ../vhffs-panel/cvs/prefs.pl:79
+#: ../vhffs-panel/mail/add_account.pl:75
+#: ../vhffs-panel/mail/save_catchall.pl:74
+#: ../vhffs-panel/mail/add_forward.pl:73
msgid "Cannot get informations on this object"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:102
+#: ../vhffs-panel/acl/view.pl:134
#, perl-format
msgid "Cannot get informations on this object %s %s"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:42
+#: ../vhffs-panel/admin/stats.pl:73
msgid "Cannot get statistics"
msgstr ""
-#: ../vhffs-panel/mail/delete_forward.pl:43
-#: ../vhffs-panel/mail/change_forward.pl:45 ../vhffs-panel/mail/spambox.pl:45
-#: ../vhffs-panel/mail/spamvirus.pl:45 ../vhffs-panel/mail/delete_box.pl:42
-#: ../vhffs-panel/mail/password_box.pl:45
-#: ../vhffs-panel/admin/mail/delete_forward.pl:45
-#: ../vhffs-panel/admin/mail/change_forward.pl:46
-#: ../vhffs-panel/admin/mail/delete_box.pl:45
-#: ../vhffs-panel/admin/mail/password_box.pl:46
-#, perl-format
-msgid "Cannot instanciate object %s"
-msgstr ""
-
-#: ../vhffs-panel/dns/modif_a.pl:73
+#: ../vhffs-panel/dns/modif_a.pl:102
msgid "Cannot modify this ressource on this domain"
msgstr ""
-#: ../vhffs-panel/admin/moderation_submit.pl:63
-msgid "Cannot obtain information about this object"
-msgstr ""
-
-#: ../vhffs-panel/group/remove_user_from_group.pl:52
+#: ../vhffs-panel/group/remove_user_from_group.pl:83
msgid "Cannot remove the owner from a group"
msgstr ""
-#: ../vhffs-panel/cvs/prefs_save.pl:47 ../vhffs-panel/cvs/delete.pl:47
+#: ../vhffs-panel/cvs/delete.pl:78 ../vhffs-panel/cvs/prefs_save.pl:77
msgid "Cannot retrieve informations about this CVS repository"
msgstr ""
-#: ../vhffs-panel/svn/prefs_save.pl:47
+#: ../vhffs-panel/repository/delete.pl:78
+#: ../vhffs-panel/repository/prefs_save.pl:78
+msgid "Cannot retrieve informations about this Download repository"
+msgstr ""
+
+#: ../vhffs-panel/svn/prefs_save.pl:78
msgid "Cannot retrieve informations about this Subversion repository"
msgstr ""
-#: ../vhffs-panel/svn/delete.pl:46 ../vhffs-panel/largefile/delete.pl:45
+#: ../vhffs-panel/svn/delete.pl:77
msgid "Cannot retrieve informations about this repository"
msgstr ""
-#: ../vhffs-panel/mailinglist/save_options.pl:123
+#: ../vhffs-panel/mailinglist/save_sig.pl:95
+#: ../vhffs-panel/mailinglist/save_options.pl:150
msgid "Cannot save"
msgstr ""
-#: ../vhffs-panel/alert_submit.pl:53
+#: ../vhffs-panel/alert_submit.pl:84
msgid "Cannot send message, CGI error..."
msgstr ""
-#: ../vhffs-panel/dns/modif_cname.pl:69
+#: ../vhffs-panel/dns/modif_cname.pl:101
msgid "Cannot update CNAME on this domain"
msgstr ""
-#: ../vhffs-panel/dns/modif_mx.pl:69
+#: ../vhffs-panel/dns/modif_mx.pl:101
msgid "Cannot update MX on this domain"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:67 ../vhffs-panel/admin/mail/show.pl:67
+#: ../vhffs-panel/admin/mail/edit.pl:98 ../vhffs-panel/admin/mail/show.pl:98
msgid "Catchall"
msgstr ""
-#: ../vhffs-panel/mail/save_catchall.pl:69
-msgid "Catchall address successfully added"
+#: ../vhffs-panel/mail/prefs.pl:101
+msgid "Catchall address"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:70
-msgid "Catchall adress"
+#: ../vhffs-panel/mail/save_catchall.pl:100
+msgid "Catchall address successfully changed"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:73
+#: ../vhffs-panel/mail/prefs.pl:104
msgid "Catchall mail"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:77
+#: ../vhffs-listengine/src/archives/show_msg.pl:108
msgid "Cc: "
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:179
+#: ../vhffs-panel/mail/prefs.pl:210
msgid "Change Forward"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:120 ../vhffs-panel/admin/mail/edit.pl:111
+#: ../vhffs-panel/admin/mail/edit.pl:142 ../vhffs-panel/mail/prefs.pl:151
msgid "Change Password"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:207 ../vhffs-panel/user/prefs_save.pl:219
+#: ../vhffs-panel/user/prefs_save.pl:234
msgid "Change anti-virus status for your account\n"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:94
+#: ../vhffs-panel/mail/prefs.pl:125
msgid "Change catchall forward"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:97
+#: ../vhffs-panel/admin/mail/edit.pl:128
msgid "Change forward"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:88
+#: ../vhffs-listengine/src/archives/archives.pl:119
msgid "Change language"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:132
+#: ../vhffs-panel/mailinglist/prefs.pl:167
msgid "Change rights\n"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:180 ../vhffs-panel/user/prefs_save.pl:191
+#: ../vhffs-panel/user/prefs_save.pl:216
msgid "Change spam protection status for your account\n"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:87
+#: ../vhffs-listengine/src/archives/archives.pl:118
msgid "Change theme"
msgstr ""
-#: ../vhffs-panel/admin/web/list.pl:78
+#: ../vhffs-panel/admin/web/list.pl:91
msgid "Change this Website"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:58 ../vhffs-panel/admin/su.pl:45
+#: ../vhffs-panel/admin/su.pl:76 ../vhffs-api/src/Vhffs/Panel/Admin.pm:87
msgid "Change user-id"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:49
-#: ../vhffs-robots/src/refused_cvs.pl:50
-#: ../vhffs-robots/src/refused_postgres.pl:49
-#: ../vhffs-robots/src/refused_web.pl:49
-#: ../vhffs-robots/src/refused_mail.pl:49
-#: ../vhffs-robots/src/refused_dns.pl:49
-#: ../vhffs-robots/src/refused_mysql.pl:49
-#: ../vhffs-robots/src/refused_svn.pl:49 ../vhffs-robots/src/refused_ml.pl:49
-#: ../vhffs-robots/src/refused_groups.pl:49 ../vhffs-irc/modobot.pl:369
-#: ../vhffs-panel/admin/moderation_submit.pl:77
+#: ../vhffs-robots/src/refused_ml.pl:77 ../vhffs-robots/src/refused_mail.pl:79
+#: ../vhffs-robots/src/refused_postgres.pl:80
+#: ../vhffs-robots/src/refused_cvs.pl:76 ../vhffs-robots/src/refused_web.pl:75
+#: ../vhffs-robots/src/refused_mysql.pl:50
+#: ../vhffs-robots/src/refused_svn.pl:46
+#: ../vhffs-robots/src/refused_groups.pl:75
+#: ../vhffs-robots/src/refused_repository.pl:80
+#: ../vhffs-robots/src/refused_dns.pl:79
msgid "Cheers,"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:74 ../vhffs-panel/admin/user/show.pl:74
-#: ../vhffs-panel/user/prefs.pl:52 ../vhffs-panel/subscribe.pl:41
+#: ../vhffs-panel/admin/moderation_submit.pl:106 ../vhffs-irc/modobot.pl:398
+msgid ""
+"Cheers,\n"
+"The Moderator and Admin team\n"
+msgstr ""
+
+#: ../vhffs-panel/subscribe.pl:203 ../vhffs-panel/user/prefs.pl:83
+#: ../vhffs-panel/admin/user/edit.pl:105 ../vhffs-panel/admin/user/show.pl:105
msgid "City"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:46
+#: ../vhffs-panel/subscribe.pl:212
msgid "Code confirmation"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:66
+#: ../vhffs-panel/subscribe.pl:85
msgid "Codes do not match"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:56
+#: ../vhffs-panel/user/prefs.pl:87
msgid "Confirm Password"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:200
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:230
msgid "Confirmation code was wrong.\n"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:76 ../vhffs-panel/admin/user/show.pl:76
-#: ../vhffs-panel/user/prefs.pl:54 ../vhffs-panel/subscribe.pl:42
+#: ../vhffs-panel/subscribe.pl:204 ../vhffs-panel/user/prefs.pl:85
+#: ../vhffs-panel/admin/user/edit.pl:107 ../vhffs-panel/admin/user/show.pl:107
msgid "Country"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:65 ../vhffs-panel/admin/web/show.pl:64
+#: ../vhffs-panel/admin/web/edit.pl:96 ../vhffs-panel/admin/web/show.pl:95
msgid "Crawl"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:110
-#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:116
-#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:98
-#: ../vhffs-api/src/Vhffs/Panel/Web.pm:105
-#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:115
-#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:121
-#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:84
-#: ../vhffs-api/src/Vhffs/Panel/LargeFile.pm:33
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:89
-#: ../vhffs-api/src/Vhffs/Panel/Group.pm:114
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:142
+#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:147
+#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:146
+#: ../vhffs-api/src/Vhffs/Panel/Web.pm:136
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:117
+#: ../vhffs-api/src/Vhffs/Panel/Repository.pm:119
+#: ../vhffs-api/src/Vhffs/Panel/Group.pm:163
+#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:140
+#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:118
+#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:151
msgid "Create"
msgstr ""
-#: ../vhffs-panel/cvs/create.pl:33
+#: ../vhffs-panel/cvs/create.pl:64
msgid "Create a CVS Repository"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:33
+#: ../vhffs-panel/dns/create.pl:34
msgid "Create a DNS "
msgstr ""
-#: ../vhffs-panel/mysql/create.pl:33
+#: ../vhffs-panel/repository/create.pl:64
+msgid "Create a Download Repository"
+msgstr ""
+
+#: ../vhffs-panel/mysql/create.pl:64
msgid "Create a MySQL database"
msgstr ""
-#: ../vhffs-panel/pgsql/create.pl:33
+#: ../vhffs-panel/pgsql/create.pl:64
msgid "Create a Postgres database"
msgstr ""
-#: ../vhffs-panel/group/create.pl:30
+#: ../vhffs-panel/group/create.pl:61
msgid "Create a Project"
msgstr ""
-#: ../vhffs-panel/svn/create.pl:39
+#: ../vhffs-panel/svn/create.pl:70
msgid "Create a Subversion Repository"
msgstr ""
-#: ../vhffs-panel/mail/create.pl:33
+#: ../vhffs-panel/mail/create.pl:64
msgid "Create a mail space"
msgstr ""
-#: ../vhffs-panel/mailinglist/create.pl:56
+#: ../vhffs-panel/mailinglist/create.pl:87
msgid "Create a new mailing list"
msgstr ""
-#: ../vhffs-panel/web/create.pl:42
+#: ../vhffs-panel/web/create.pl:73
msgid "Create a web space"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:344
-#: ../vhffs-panel/admin/mail/edit.pl:130 ../vhffs-panel/admin/pgsql/edit.pl:89
-#: ../vhffs-panel/admin/cvs/edit.pl:98 ../vhffs-panel/admin/group/edit.pl:91
-#: ../vhffs-panel/admin/mysql/edit.pl:89
-#: ../vhffs-panel/admin/object/edit.pl:89 ../vhffs-panel/admin/web/edit.pl:102
-#: ../vhffs-panel/admin/user/edit.pl:113
+#: ../vhffs-panel/admin/user/edit.pl:144
+#: ../vhffs-panel/admin/pgsql/edit.pl:120
+#: ../vhffs-panel/admin/group/edit.pl:120
+#: ../vhffs-panel/admin/repository/edit.pl:120
+#: ../vhffs-panel/admin/object/edit.pl:120
+#: ../vhffs-panel/admin/web/edit.pl:133 ../vhffs-panel/admin/mysql/edit.pl:121
+#: ../vhffs-panel/admin/cvs/edit.pl:129 ../vhffs-panel/admin/mail/edit.pl:161
msgid "Created"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:340
-#: ../vhffs-panel/admin/mail/edit.pl:128 ../vhffs-panel/admin/pgsql/edit.pl:87
-#: ../vhffs-panel/admin/cvs/edit.pl:96 ../vhffs-panel/admin/group/edit.pl:89
-#: ../vhffs-panel/admin/mysql/edit.pl:87
-#: ../vhffs-panel/admin/object/edit.pl:87 ../vhffs-panel/admin/web/edit.pl:100
-#: ../vhffs-panel/admin/user/edit.pl:111
+#: ../vhffs-panel/admin/user/edit.pl:142
+#: ../vhffs-panel/admin/pgsql/edit.pl:118
+#: ../vhffs-panel/admin/group/edit.pl:118
+#: ../vhffs-panel/admin/repository/edit.pl:118
+#: ../vhffs-panel/admin/object/edit.pl:118
+#: ../vhffs-panel/admin/web/edit.pl:131 ../vhffs-panel/admin/mysql/edit.pl:119
+#: ../vhffs-panel/admin/cvs/edit.pl:127 ../vhffs-panel/admin/mail/edit.pl:159
msgid "Creating error"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:80 ../vhffs-panel/user/prefs.pl:80
+#: ../vhffs-panel/user/prefs.pl:113 ../vhffs-panel/group/prefs.pl:111
msgid "Current avatar"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:529
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:612
#, perl-format
msgid "Current group: %s"
msgstr ""
-#: ../vhffs-panel/admin/cvs/edit.pl:64 ../vhffs-panel/admin/cvs/show.pl:63
+#: ../vhffs-panel/admin/cvs/edit.pl:95 ../vhffs-panel/admin/cvs/show.pl:94
msgid "Cvsroot"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:131
+#: ../vhffs-panel/admin/pgsql/list.pl:87 ../vhffs-panel/admin/mysql/list.pl:88
+msgid "DB Name"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:160
msgid "DB Search"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:122
+#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:152
msgid "DNS"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:144
+#: ../vhffs-panel/admin/moderation.pl:175
msgid "DNS awaiting validation"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:36
+#: ../vhffs-panel/dns/create.pl:37
msgid "DNS servers:"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:80
+#: ../vhffs-panel/admin/stats.pl:111
msgid "DNS stats"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:112
-#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:86
+#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:142
+#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:120
msgid "Database Access"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit.pl:64 ../vhffs-panel/admin/pgsql/show.pl:63
+#: ../vhffs-panel/admin/pgsql/edit.pl:95 ../vhffs-panel/admin/pgsql/show.pl:94
msgid "Database Name"
msgstr ""
-#: ../vhffs-panel/mysql/submit.pl:52
+#: ../vhffs-panel/mysql/submit.pl:83
msgid "Database name must contain at least 3 caracters"
msgstr ""
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:54
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:85
msgid "Database name must contain between 3 and 16 characters"
msgstr ""
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:46
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:77
msgid "Database password must contains at least 3 characters"
msgstr ""
-#: ../vhffs-panel/pgsql/delete.pl:54
+#: ../vhffs-panel/pgsql/delete.pl:85
msgid "Database will NOT be deleted !"
msgstr ""
-#: ../vhffs-panel/pgsql/delete.pl:66
+#: ../vhffs-panel/pgsql/delete.pl:97
msgid "Database will be DELETE"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:54
+#: ../vhffs-panel/admin/broadcast_view.pl:85
msgid "Date"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:64
+#: ../vhffs-panel/admin/object/edit.pl:95
msgid "Date of creation"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:417
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:447
msgid "December"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:103 ../vhffs-panel/dns/prefs.pl:153
-#: ../vhffs-panel/dns/prefs.pl:174 ../vhffs-panel/dns/prefs.pl:194
-#: ../vhffs-panel/dns/prefs.pl:215 ../vhffs-panel/cvs/prefs.pl:80
-#: ../vhffs-panel/group/prefs.pl:71 ../vhffs-panel/svn/prefs.pl:97
-#: ../vhffs-panel/mailinglist/prefs.pl:170 ../vhffs-panel/web/prefs.pl:100
-#: ../vhffs-panel/mail/prefs.pl:104 ../vhffs-panel/pgsql/prefs.pl:81
-#: ../vhffs-panel/largefile/prefs.pl:104 ../vhffs-panel/mysql/prefs.pl:88
-#: ../vhffs-panel/user/prefs.pl:77
+#: ../vhffs-panel/mailinglist/prefs.pl:205 ../vhffs-panel/svn/prefs.pl:127
+#: ../vhffs-panel/user/prefs.pl:106 ../vhffs-panel/dns/prefs.pl:134
+#: ../vhffs-panel/dns/prefs.pl:184 ../vhffs-panel/dns/prefs.pl:205
+#: ../vhffs-panel/dns/prefs.pl:225 ../vhffs-panel/dns/prefs.pl:246
+#: ../vhffs-panel/pgsql/prefs.pl:112 ../vhffs-panel/group/prefs.pl:102
+#: ../vhffs-panel/repository/prefs.pl:107 ../vhffs-panel/web/prefs.pl:131
+#: ../vhffs-panel/mysql/prefs.pl:119 ../vhffs-panel/cvs/prefs.pl:111
+#: ../vhffs-panel/mail/prefs.pl:135
msgid "Delete"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:72
+#: ../vhffs-panel/user/prefs.pl:101
msgid "Delete YOUR user"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:164
+#: ../vhffs-panel/admin/object/edit.pl:195
msgid "Delete avatar for this object"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:131
+#: ../vhffs-panel/mailinglist/prefs.pl:166
msgid "Delete from list"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:76
+#: ../vhffs-panel/pgsql/prefs.pl:107
msgid "Delete this PostgreSQL database"
msgstr ""
-#: ../vhffs-panel/mysql/prefs.pl:83
+#: ../vhffs-panel/mysql/prefs.pl:114
msgid "Delete this database"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:98
+#: ../vhffs-panel/dns/prefs.pl:129
msgid "Delete this domain name from the VHFFS platform"
msgstr ""
-#: ../vhffs-panel/largefile/prefs.pl:99
-msgid "Delete this file from servers"
-msgstr ""
-
-#: ../vhffs-panel/mail/prefs.pl:180 ../vhffs-panel/admin/mail/edit.pl:113
+#: ../vhffs-panel/admin/mail/edit.pl:144 ../vhffs-panel/mail/prefs.pl:211
msgid "Delete this forward"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:165
+#: ../vhffs-panel/mailinglist/prefs.pl:200
msgid "Delete this list"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:121 ../vhffs-panel/admin/mail/edit.pl:98
+#: ../vhffs-panel/admin/mail/edit.pl:129 ../vhffs-panel/mail/prefs.pl:152
msgid "Delete this mail account"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:99
+#: ../vhffs-panel/mail/prefs.pl:130
msgid "Delete this mail domain"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_list.pl:57
+#: ../vhffs-panel/admin/broadcast_list.pl:88
msgid "Delete this mailing"
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:75 ../vhffs-panel/group/prefs.pl:66
+#: ../vhffs-panel/group/prefs.pl:97 ../vhffs-panel/repository/prefs.pl:102
+#: ../vhffs-panel/cvs/prefs.pl:106
msgid "Delete this project"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:92
+#: ../vhffs-panel/svn/prefs.pl:122
msgid "Delete this repository"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:95
+#: ../vhffs-panel/web/prefs.pl:126
msgid "Delete this web area"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:41 ../vhffs-panel/cvs/create.pl:40
-#: ../vhffs-panel/group/create.pl:35 ../vhffs-panel/svn/create.pl:46
-#: ../vhffs-panel/public/allgroups.pl:46 ../vhffs-panel/public/group.pl:57
-#: ../vhffs-panel/public/lastgroups.pl:46 ../vhffs-panel/pgsql/create.pl:43
-#: ../vhffs-panel/admin/mail/edit.pl:71 ../vhffs-panel/admin/mail/show.pl:71
-#: ../vhffs-panel/admin/pgsql/edit.pl:70 ../vhffs-panel/admin/pgsql/show.pl:68
-#: ../vhffs-panel/admin/cvs/edit.pl:69 ../vhffs-panel/admin/cvs/show.pl:68
-#: ../vhffs-panel/admin/group/edit.pl:70 ../vhffs-panel/admin/group/show.pl:69
-#: ../vhffs-panel/admin/mysql/edit.pl:70 ../vhffs-panel/admin/mysql/show.pl:67
-#: ../vhffs-panel/admin/object/edit.pl:66 ../vhffs-panel/admin/web/edit.pl:73
-#: ../vhffs-panel/admin/web/show.pl:70 ../vhffs-panel/largefile/create.pl:42
-#: ../vhffs-panel/mysql/create.pl:41
+#: ../vhffs-panel/svn/create.pl:77 ../vhffs-panel/dns/create.pl:42
+#: ../vhffs-panel/pgsql/create.pl:74 ../vhffs-panel/group/create.pl:66
+#: ../vhffs-panel/repository/create.pl:72
+#: ../vhffs-panel/admin/pgsql/edit.pl:101
+#: ../vhffs-panel/admin/pgsql/show.pl:99 ../vhffs-panel/admin/group/edit.pl:99
+#: ../vhffs-panel/admin/group/show.pl:99
+#: ../vhffs-panel/admin/repository/edit.pl:99
+#: ../vhffs-panel/admin/repository/show.pl:98
+#: ../vhffs-panel/admin/object/edit.pl:97 ../vhffs-panel/admin/web/edit.pl:104
+#: ../vhffs-panel/admin/web/show.pl:101 ../vhffs-panel/admin/mysql/edit.pl:102
+#: ../vhffs-panel/admin/mysql/show.pl:98 ../vhffs-panel/admin/cvs/edit.pl:100
+#: ../vhffs-panel/admin/cvs/show.pl:99 ../vhffs-panel/admin/mail/edit.pl:102
+#: ../vhffs-panel/admin/mail/show.pl:102
+#: ../vhffs-panel/public/lastgroups.pl:75 ../vhffs-panel/public/group.pl:89
+#: ../vhffs-panel/public/allgroups.pl:82 ../vhffs-panel/mysql/create.pl:72
+#: ../vhffs-panel/cvs/create.pl:71
msgid "Description"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:68
+#: ../vhffs-panel/web/prefs.pl:99
msgid "Description of your webarea"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:127
+#: ../vhffs-panel/dns/prefs.pl:158
msgid "Destination"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:134
+#: ../vhffs-panel/mail/prefs.pl:165
msgid "Disable anti-spam"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:153
+#: ../vhffs-panel/mail/prefs.pl:184
msgid "Disable anti-virus"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:118
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:91
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:144
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:119
msgid "Documentation"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:92
+#: ../vhffs-panel/group/join_group.pl:119
msgid "Doe not exist in the VHFFS database"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:55
-msgid "Does not support largefile"
-msgstr ""
-
-#: ../vhffs-panel/mail/create.pl:34 ../vhffs-panel/admin/mail/edit.pl:66
-#: ../vhffs-panel/admin/mail/show.pl:66
+#: ../vhffs-panel/admin/mail/edit.pl:97 ../vhffs-panel/admin/mail/show.pl:97
+#: ../vhffs-panel/mail/create.pl:65
msgid "Domain"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:34
+#: ../vhffs-panel/dns/create.pl:35 ../vhffs-panel/admin/dns/list.pl:87
+#: ../vhffs-panel/admin/mail/list.pl:87
msgid "Domain Name"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:480
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:555
msgid "Domains for this group"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:72 ../vhffs-panel/admin/web/show.pl:86
+#: ../vhffs-panel/admin/web/edit.pl:103 ../vhffs-panel/admin/web/show.pl:117
msgid "Don't use Crawl"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:113
-msgid "Download"
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:530
+msgid "Download repositories for this group"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:78
-#, perl-format
-msgid "Download %s"
+#: ../vhffs-api/src/Vhffs/Panel/Repository.pm:120
+msgid "Download repository"
msgstr ""
-#: ../vhffs-panel/admin/cvs/edit.pl:61
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:224
+msgid "Download repository admin"
+msgstr ""
+
+#: ../vhffs-panel/admin/moderation.pl:477
+msgid "Download repository awaiting validation"
+msgstr ""
+
+#: ../vhffs-panel/repository/prefs_save.pl:100
+msgid "Download repository updated"
+msgstr ""
+
+#: ../vhffs-panel/admin/cvs/edit.pl:92
msgid "Edit CVS"
msgstr ""
-#: ../vhffs-panel/admin/group/edit.pl:61
+#: ../vhffs-panel/admin/repository/edit.pl:92
+msgid "Edit Download repository"
+msgstr ""
+
+#: ../vhffs-panel/admin/group/edit.pl:90
msgid "Edit Group"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:63
+#: ../vhffs-panel/admin/mail/edit.pl:94
msgid "Edit Mail Domain"
msgstr ""
-#: ../vhffs-panel/admin/mysql/edit.pl:61
+#: ../vhffs-panel/admin/mysql/edit.pl:92
msgid "Edit MySQL database"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:59
+#: ../vhffs-panel/admin/object/edit.pl:90
msgid "Edit Object"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit.pl:61
+#: ../vhffs-panel/admin/pgsql/edit.pl:92
msgid "Edit PostgreSQL database"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:61
+#: ../vhffs-panel/admin/user/edit.pl:92
msgid "Edit User"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:61
+#: ../vhffs-panel/admin/web/edit.pl:92
msgid "Edit Web Area"
msgstr ""
-#: ../vhffs-panel/admin/object/list.pl:88
+#: ../vhffs-panel/admin/object/list.pl:96
msgid "Edit this object"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:95
+#: ../vhffs-panel/mailinglist/prefs.pl:130
msgid "Email adress"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:138
+#: ../vhffs-panel/mail/prefs.pl:169
msgid "Enable anti-spam"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:157
+#: ../vhffs-panel/mail/prefs.pl:188
msgid "Enable anti-virus"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:72
+#: ../vhffs-panel/mail/prefs.pl:103
msgid "Enter a mail address to catch all email for this domain"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_submit.pl:64
+#: ../vhffs-panel/admin/broadcast_submit.pl:95
msgid "Error !"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:144
+#: ../vhffs-panel/user/prefs_save.pl:180
msgid ""
"Error ! You MUST provide a password in your account when you create your "
"popable account"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:184 ../vhffs-panel/user/prefs_save.pl:195
+#: ../vhffs-panel/group/project_submit.pl:83
+msgid "Error creating group (maybe a group with the same name already exists)"
+msgstr ""
+
+#: ../vhffs-panel/user/prefs_save.pl:221
msgid "Error for spam protection\n"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:211 ../vhffs-panel/user/prefs_save.pl:223
+#: ../vhffs-panel/user/prefs_save.pl:239
msgid "Error for virus protection\n"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:45
-#: ../vhffs-listengine/src/archives/archives.pl:105
+#: ../vhffs-listengine/src/archives/archives.pl:136
+#: ../vhffs-listengine/src/archives/show_msg.pl:76
msgid "Error in listname"
msgstr ""
-#: ../vhffs-panel/mail/spambox.pl:87 ../vhffs-panel/mail/spamvirus.pl:87
-msgid "Error when applying changes"
-msgstr ""
-
-#: ../vhffs-panel/object/upavatar.pl:99
+#: ../vhffs-panel/object/upavatar.pl:130
msgid "Error when upload avatar for this object"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:99
+#: ../vhffs-panel/mailinglist/submit.pl:116
msgid "Error while creating list (unknow problem)"
msgstr ""
-#: ../vhffs-panel/web/web_submit.pl:61
-msgid "Error while creating the user. The username already exists"
+#: ../vhffs-panel/web/web_submit.pl:90
+msgid "Error while creating the webarea, it probably already exists !"
msgstr ""
-#: ../vhffs-panel/group/project_submit.pl:64
-msgid "Error while creation !"
-msgstr ""
-
-#: ../vhffs-panel/dns/delete.pl:71
+#: ../vhffs-panel/dns/delete.pl:102
msgid "Error while switching state. DNS will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/mysql/prefs_save.pl:52
+#: ../vhffs-panel/mysql/prefs_save.pl:83
msgid "Error, password can be only alphanumeric caracters"
msgstr ""
-#: ../vhffs-panel/group/delete.pl:51
+#: ../vhffs-panel/group/delete.pl:82
msgid ""
"Error, your group is not empty. Please remove all objects from this group "
"and try again"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:39
+#: ../vhffs-panel/group/prefs.pl:70
msgid "Error. This group doesn't exists"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:137
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:227
msgid "Expired session ! Please login again"
msgstr ""
-#: ../vhffs-panel/admin/user/edit_note.pl:70
+#: ../vhffs-panel/admin/user/edit_note.pl:101
msgid "Failed to modify note"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:377
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:407
msgid "February"
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:87
+#: ../vhffs-panel/object/upavatar.pl:118
msgid "File to big. Max size if 5000 bytes for an avatar"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:79 ../vhffs-panel/public/largefile.pl:84
-msgid "File type"
+#: ../vhffs-panel/object/upavatar.pl:114
+msgid "Filetype not supported"
msgstr ""
-#: ../vhffs-panel/largefile/prefs.pl:87 ../vhffs-panel/largefile/create.pl:34
-msgid "Filename"
+#: ../vhffs-panel/subscribe.pl:200 ../vhffs-panel/user/prefs.pl:80
+#: ../vhffs-panel/admin/user/edit.pl:96 ../vhffs-panel/admin/user/show.pl:97
+#: ../vhffs-panel/public/user.pl:83 ../vhffs-panel/public/lastusers.pl:78
+msgid "Firstname"
msgstr ""
-#: ../vhffs-panel/largefile/submit.pl:48
-msgid "Filename is too short. Must contains at least 3 caracters"
+#: ../vhffs-panel/admin/mail/delete_forward.pl:109
+#, perl-format
+msgid "Forward %s deleted"
msgstr ""
-#: ../vhffs-panel/admin/largefile/list.pl:82
-msgid "Filename(size in Mb/type)"
+#: ../vhffs-panel/admin/mail/change_forward.pl:109
+#, perl-format
+msgid "Forward %s successfully added"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:445
-msgid "Files awaiting validation"
-msgstr ""
-
-#: ../vhffs-panel/largefile/create.pl:36
-msgid "Filetype (extension, ...)"
-msgstr ""
-
-#: ../vhffs-panel/object/upavatar.pl:83
-msgid "Filetype not supported"
-msgstr ""
-
-#: ../vhffs-panel/public/lastusers.pl:46 ../vhffs-panel/public/user.pl:55
-#: ../vhffs-panel/admin/user/edit.pl:65 ../vhffs-panel/admin/user/show.pl:66
-#: ../vhffs-panel/user/prefs.pl:49 ../vhffs-panel/subscribe.pl:38
-msgid "Firstname"
-msgstr ""
-
-#: ../vhffs-panel/user/prefs.pl:142
+#: ../vhffs-panel/user/prefs.pl:179
#, perl-format
msgid "Forward emails from %s@%s to %s"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:84 ../vhffs-panel/admin/mail/show.pl:84
+#: ../vhffs-panel/admin/mail/edit.pl:115 ../vhffs-panel/admin/mail/show.pl:115
msgid "Forward for"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:89
+#: ../vhffs-panel/mail/prefs.pl:120
msgid "Forward mail"
msgstr ""
-#: ../vhffs-panel/mail/change_forward.pl:91
-#: ../vhffs-panel/admin/mail/change_forward.pl:92
-msgid "Forwarding successfully added"
+#: ../vhffs-panel/mail/change_forward.pl:108
+msgid "Forward successfully added"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:84
+#: ../vhffs-panel/mail/delete_forward.pl:100
+msgid "Forward successfully deleted"
+msgstr ""
+
+#: ../vhffs-panel/mail/prefs.pl:115
msgid "Forwards"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:75
+#: ../vhffs-listengine/src/archives/show_msg.pl:106
msgid "From: "
msgstr ""
-#: ../vhffs-panel/admin/group/edit.pl:65 ../vhffs-panel/admin/group/show.pl:64
-#: ../vhffs-panel/admin/user/edit.pl:72 ../vhffs-panel/admin/user/show.pl:72
+#: ../vhffs-panel/admin/user/edit.pl:103 ../vhffs-panel/admin/user/show.pl:103
+#: ../vhffs-panel/admin/group/edit.pl:94 ../vhffs-panel/admin/group/show.pl:94
msgid "GID"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:78 ../vhffs-panel/admin/user/show.pl:78
+#: ../vhffs-panel/admin/user/edit.pl:109 ../vhffs-panel/admin/user/show.pl:109
msgid "GPG key"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:53
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:82
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:87
msgid "General"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:54
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:83
msgid "Get Statistics"
msgstr ""
-#: ../vhffs-panel/lost.pl:27
-msgid "Give me a new password... "
+#: ../vhffs-panel/lost.pl:55
+msgid "Give me a new password"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:58
-#: ../vhffs-panel/public/lastusers.pl:81 ../vhffs-panel/public/index.pl:51
-#: ../vhffs-panel/public/allgroups.pl:74 ../vhffs-panel/public/group.pl:217
-#: ../vhffs-panel/public/user.pl:85 ../vhffs-panel/public/lastgroups.pl:73
+#: ../vhffs-panel/public/user.pl:114 ../vhffs-panel/public/lastgroups.pl:102
+#: ../vhffs-panel/public/lastusers.pl:111
+#: ../vhffs-panel/public/allwebsites.pl:98 ../vhffs-panel/public/index.pl:80
+#: ../vhffs-panel/public/group.pl:222 ../vhffs-panel/public/allgroups.pl:110
msgid "Go on login page"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:282
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:306
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:332
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:247
+msgid "Go to Login"
+msgstr ""
+
#: ../vhffs-api/src/Vhffs/Panel/Main.pm:358
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:384
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:411
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:437
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:464
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:489
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:382
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:408
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:434
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:460
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:487
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:513
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:539
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:564
msgid "Go to admin"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:230 ../vhffs-panel/svn/prefs.pl:122
-#: ../vhffs-panel/mailinglist/prefs.pl:180
-#: ../vhffs-panel/largefile/prefs.pl:114
+#: ../vhffs-panel/login.pl:88 ../vhffs-panel/login.pl:118
+msgid "Go to login page"
+msgstr ""
+
+#: ../vhffs-panel/mailinglist/prefs.pl:215 ../vhffs-panel/svn/prefs.pl:152
+#: ../vhffs-panel/dns/prefs.pl:261
msgid "Go to object-part admin"
msgstr ""
-#: ../vhffs-panel/auth.pl:54
+#: ../vhffs-panel/auth.pl:79
msgid "Go to public area"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:58 ../vhffs-panel/largefile/prefs.pl:59
+#: ../vhffs-panel/svn/prefs.pl:88
msgid "Grant an user access to this repository"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:68 ../vhffs-panel/admin/mail/show.pl:68
-#: ../vhffs-panel/admin/pgsql/edit.pl:67 ../vhffs-panel/admin/pgsql/show.pl:65
-#: ../vhffs-panel/admin/cvs/edit.pl:66 ../vhffs-panel/admin/cvs/show.pl:65
-#: ../vhffs-panel/admin/mysql/edit.pl:67 ../vhffs-panel/admin/mysql/show.pl:64
-#: ../vhffs-panel/admin/web/edit.pl:68 ../vhffs-panel/admin/web/show.pl:67
+#: ../vhffs-panel/admin/svn/list.pl:77 ../vhffs-panel/admin/mailing/list.pl:87
+#: ../vhffs-panel/admin/dns/list.pl:88 ../vhffs-panel/admin/pgsql/edit.pl:98
+#: ../vhffs-panel/admin/pgsql/show.pl:96 ../vhffs-panel/admin/pgsql/list.pl:88
+#: ../vhffs-panel/admin/repository/edit.pl:96
+#: ../vhffs-panel/admin/repository/show.pl:95
+#: ../vhffs-panel/admin/repository/list.pl:89
+#: ../vhffs-panel/admin/web/edit.pl:99 ../vhffs-panel/admin/web/show.pl:98
+#: ../vhffs-panel/admin/web/list.pl:79 ../vhffs-panel/admin/mysql/edit.pl:99
+#: ../vhffs-panel/admin/mysql/show.pl:95 ../vhffs-panel/admin/mysql/list.pl:89
+#: ../vhffs-panel/admin/cvs/edit.pl:97 ../vhffs-panel/admin/cvs/show.pl:96
+#: ../vhffs-panel/admin/cvs/list.pl:90 ../vhffs-panel/admin/mail/edit.pl:99
+#: ../vhffs-panel/admin/mail/show.pl:99 ../vhffs-panel/admin/mail/list.pl:88
msgid "Group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:265
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:341
#, perl-format
msgid "Group %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:78
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:107
msgid "Group Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:260
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:336
msgid "Group error"
msgstr ""
-#: ../vhffs-panel/largefile/create.pl:39
-msgid "Group for this new file"
-msgstr ""
-
-#: ../vhffs-panel/cvs/create.pl:35
+#: ../vhffs-panel/cvs/create.pl:66
msgid "Group owning this CVS"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:37
+#: ../vhffs-panel/dns/create.pl:38
msgid "Group owning this DNS"
msgstr ""
-#: ../vhffs-panel/svn/create.pl:41
+#: ../vhffs-panel/svn/create.pl:72
msgid "Group owning this Subversion repository"
msgstr ""
-#: ../vhffs-panel/pgsql/create.pl:36 ../vhffs-panel/mysql/create.pl:35
+#: ../vhffs-panel/pgsql/create.pl:67 ../vhffs-panel/mysql/create.pl:66
msgid "Group owning this database"
msgstr ""
-#: ../vhffs-panel/mailinglist/create.pl:58
+#: ../vhffs-panel/mailinglist/create.pl:89
msgid "Group owning this mailing list"
msgstr ""
-#: ../vhffs-panel/web/create.pl:45 ../vhffs-panel/mail/create.pl:35
+#: ../vhffs-panel/repository/create.pl:66
+msgid "Group owning this repository"
+msgstr ""
+
+#: ../vhffs-panel/web/create.pl:76 ../vhffs-panel/mail/create.pl:66
msgid "Group owning this web space"
msgstr ""
-#: ../vhffs-panel/public/index.pl:41
+#: ../vhffs-panel/public/index.pl:70
msgid "Group public area"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:119 ../vhffs-panel/public/allgroups.pl:42
-#: ../vhffs-panel/public/group.pl:56 ../vhffs-panel/public/lastgroups.pl:42
-#: ../vhffs-panel/admin/group/edit.pl:64 ../vhffs-panel/admin/group/show.pl:63
+#: ../vhffs-panel/acl/view.pl:151 ../vhffs-panel/admin/group/edit.pl:93
+#: ../vhffs-panel/admin/group/show.pl:93 ../vhffs-panel/admin/group/list.pl:89
+#: ../vhffs-panel/public/lastgroups.pl:71 ../vhffs-panel/public/group.pl:88
+#: ../vhffs-panel/public/allgroups.pl:78
msgid "Groupname"
msgstr ""
-#: ../vhffs-panel/public/lastusers.pl:50 ../vhffs-panel/public/user.pl:59
+#: ../vhffs-panel/public/user.pl:87 ../vhffs-panel/public/lastusers.pl:82
msgid "Groups"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:57
+#: ../vhffs-panel/admin/moderation.pl:88
msgid "Groups awaiting validation"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:202
+#: ../vhffs-panel/admin/user/edit.pl:233
msgid "Groups of this user"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:67
+#: ../vhffs-panel/admin/stats.pl:98
msgid "Groups stats"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:81 ../vhffs-panel/largefile/create.pl:40
-msgid "Hash"
-msgstr ""
-
-#: ../vhffs-panel/user/prefs_save.pl:91
+#: ../vhffs-panel/user/prefs_save.pl:122
#, perl-format
msgid ""
"Hello %s %s,\n"
@@ -1669,1778 +1676,1744 @@
"VHFFS administrators\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:17
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:47
msgid "Hello and welcome on listengine help\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:55
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:89
msgid "Help"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:24
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:54
msgid "Here are the basic listengine commands:\n"
msgstr ""
-#: ../vhffs-panel/alert.pl:37
+#: ../vhffs-panel/alert.pl:68
msgid "Here, you can report a bug to the admin team"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:126
-#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:135
-#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:133
-#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:142
-#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:116
-#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:123
-#: ../vhffs-api/src/Vhffs/Panel/Web.pm:121
-#: ../vhffs-api/src/Vhffs/Panel/Web.pm:130
-#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:130
-#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:138
-#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:141
-#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:101
-#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:110
-#: ../vhffs-api/src/Vhffs/Panel/LargeFile.pm:49
-#: ../vhffs-api/src/Vhffs/Panel/LargeFile.pm:56
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:105
-#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:116
-#: ../vhffs-panel/admin/mail/edit.pl:73 ../vhffs-panel/admin/mail/show.pl:72
-#: ../vhffs-panel/admin/pgsql/edit.pl:72 ../vhffs-panel/admin/pgsql/show.pl:69
-#: ../vhffs-panel/admin/cvs/edit.pl:71 ../vhffs-panel/admin/cvs/show.pl:69
-#: ../vhffs-panel/admin/group/edit.pl:72 ../vhffs-panel/admin/group/show.pl:70
-#: ../vhffs-panel/admin/mysql/edit.pl:72 ../vhffs-panel/admin/mysql/show.pl:69
-#: ../vhffs-panel/admin/object/list.pl:68 ../vhffs-panel/admin/web/edit.pl:75
-#: ../vhffs-panel/admin/web/show.pl:71 ../vhffs-panel/admin/user/edit.pl:79
-#: ../vhffs-panel/admin/user/show.pl:80 ../vhffs-panel/history.pl:74
+#: ../vhffs-panel/history.pl:105 ../vhffs-panel/admin/user/edit.pl:110
+#: ../vhffs-panel/admin/user/show.pl:111
+#: ../vhffs-panel/admin/pgsql/edit.pl:103
+#: ../vhffs-panel/admin/pgsql/show.pl:100
+#: ../vhffs-panel/admin/group/edit.pl:101
+#: ../vhffs-panel/admin/group/show.pl:100
+#: ../vhffs-panel/admin/repository/edit.pl:101
+#: ../vhffs-panel/admin/repository/show.pl:99
+#: ../vhffs-panel/admin/object/list.pl:90
+#: ../vhffs-panel/admin/object/list.pl:97 ../vhffs-panel/admin/web/edit.pl:106
+#: ../vhffs-panel/admin/web/show.pl:102 ../vhffs-panel/admin/mysql/edit.pl:104
+#: ../vhffs-panel/admin/mysql/show.pl:100 ../vhffs-panel/admin/cvs/edit.pl:102
+#: ../vhffs-panel/admin/cvs/show.pl:100 ../vhffs-panel/admin/mail/edit.pl:104
+#: ../vhffs-panel/admin/mail/show.pl:103
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:159
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:171
+#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:162
+#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:170
+#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:161
+#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:166
+#: ../vhffs-api/src/Vhffs/Panel/Web.pm:152
+#: ../vhffs-api/src/Vhffs/Panel/Web.pm:161
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:133
+#: ../vhffs-api/src/Vhffs/Panel/Cvs.pm:145
+#: ../vhffs-api/src/Vhffs/Panel/Repository.pm:133
+#: ../vhffs-api/src/Vhffs/Panel/Repository.pm:144
+#: ../vhffs-api/src/Vhffs/Panel/Group.pm:178
+#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:156
+#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:165
+#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:135
+#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:144
+#: ../vhffs-api/src/Vhffs/Panel/DNS.pm:171
msgid "History"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:166
+#: ../vhffs-panel/admin/object/edit.pl:197
msgid "History of this object"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:69 ../vhffs-panel/admin/user/show.pl:69
+#: ../vhffs-panel/admin/user/edit.pl:100 ../vhffs-panel/admin/user/show.pl:100
msgid "Home"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:57
-#: ../vhffs-panel/public/lastusers.pl:80 ../vhffs-panel/public/index.pl:50
-#: ../vhffs-panel/public/allgroups.pl:73 ../vhffs-panel/public/group.pl:216
-#: ../vhffs-panel/public/user.pl:84 ../vhffs-panel/public/lastgroups.pl:72
+#: ../vhffs-panel/public/user.pl:113 ../vhffs-panel/public/lastgroups.pl:101
+#: ../vhffs-panel/public/lastusers.pl:110
+#: ../vhffs-panel/public/allwebsites.pl:97 ../vhffs-panel/public/index.pl:79
+#: ../vhffs-panel/public/group.pl:221 ../vhffs-panel/public/allgroups.pl:109
msgid "Homepage of public area"
msgstr ""
-#: ../vhffs-panel/largefile/create.pl:33
-msgid "Host a file"
-msgstr ""
-
-#: ../vhffs-panel/admin/user/edit.pl:101 ../vhffs-panel/admin/user/show.pl:109
+#: ../vhffs-panel/admin/user/edit.pl:132 ../vhffs-panel/admin/user/show.pl:140
msgid "Hosted"
msgstr ""
-#: ../vhffs-panel/largefile/prefs.pl:84
-msgid "Hosted file administration"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/LargeFile.pm:34
-msgid "Hosted files"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:195
-msgid "Hosted files admin"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:455 ../vhffs-panel/public/group.pl:167
-msgid "Hosted files for this group"
-msgstr ""
-
-#: ../vhffs-panel/admin/stats.pl:138
-msgid "Hosted files stats"
-msgstr ""
-
-#: ../vhffs-panel/auth.pl:35
+#: ../vhffs-panel/auth.pl:61
msgid "I've lost my password"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:110
+#: ../vhffs-panel/dns/prefs.pl:141
msgid "IP"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:134
+#: ../vhffs-panel/dns/prefs.pl:165
msgid "IP/host of your NS"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:59
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:76
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:89
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:106
msgid ""
"If this mail is an error and you don't ask to be a subscriber to this list, "
"please do not answer to this mail\n"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:48
-#: ../vhffs-robots/src/refused_cvs.pl:49
-#: ../vhffs-robots/src/refused_postgres.pl:48
-#: ../vhffs-robots/src/refused_web.pl:48
-#: ../vhffs-robots/src/refused_mail.pl:48
-#: ../vhffs-robots/src/refused_dns.pl:48
-#: ../vhffs-robots/src/refused_mysql.pl:48
-#: ../vhffs-robots/src/refused_svn.pl:48 ../vhffs-robots/src/refused_ml.pl:48
-#: ../vhffs-robots/src/refused_groups.pl:48
+#: ../vhffs-robots/src/refused_ml.pl:76 ../vhffs-robots/src/refused_mail.pl:78
+#: ../vhffs-robots/src/refused_postgres.pl:79
+#: ../vhffs-robots/src/refused_cvs.pl:75 ../vhffs-robots/src/refused_web.pl:74
+#: ../vhffs-robots/src/refused_mysql.pl:49
+#: ../vhffs-robots/src/refused_svn.pl:45
+#: ../vhffs-robots/src/refused_groups.pl:74
+#: ../vhffs-robots/src/refused_repository.pl:79
+#: ../vhffs-robots/src/refused_dns.pl:78
#, perl-format
msgid "If you encounters problem, please mail: %s\n"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:58
+#: ../vhffs-panel/group/prefs.pl:89
msgid ""
"If you want more disk space for your project, you must fill a form in the "
"bug report section, in the menu. Don't forget to mention the name of the "
"group."
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:42
-#: ../vhffs-robots/src/refused_cvs.pl:43
-#: ../vhffs-robots/src/refused_postgres.pl:42
-#: ../vhffs-robots/src/refused_web.pl:42
-#: ../vhffs-robots/src/refused_mail.pl:42
-#: ../vhffs-robots/src/refused_dns.pl:42
-#: ../vhffs-robots/src/refused_mysql.pl:42
-#: ../vhffs-robots/src/refused_svn.pl:42 ../vhffs-robots/src/refused_ml.pl:42
-#: ../vhffs-robots/src/refused_groups.pl:42
+#: ../vhffs-robots/src/refused_ml.pl:70 ../vhffs-robots/src/refused_mail.pl:72
+#: ../vhffs-robots/src/refused_postgres.pl:73
+#: ../vhffs-robots/src/refused_cvs.pl:70 ../vhffs-robots/src/refused_web.pl:69
+#: ../vhffs-robots/src/refused_mysql.pl:43
+#: ../vhffs-robots/src/refused_svn.pl:40
+#: ../vhffs-robots/src/refused_groups.pl:69
+#: ../vhffs-robots/src/refused_repository.pl:73
+#: ../vhffs-robots/src/refused_dns.pl:72
msgid "In hope to keep you in our hosting service"
msgstr ""
-#: ../vhffs-panel/dns/add_a.pl:88 ../vhffs-panel/dns/modif_a.pl:69
+#: ../vhffs-panel/dns/modif_a.pl:98 ../vhffs-panel/dns/add_a.pl:120
msgid "Invalid IP"
msgstr ""
-#: ../vhffs-panel/dns/dns_submit.pl:42
+#: ../vhffs-panel/dns/dns_submit.pl:72
msgid "Invalid domain name"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:70
-msgid "Invalid file"
+#: ../vhffs-panel/mail/submit.pl:78
+msgid "Invalid mail domain"
msgstr ""
-#: ../vhffs-panel/mail/submit.pl:47
-msgid "Invalid mail domain"
+#: ../vhffs-panel/subscribe.pl:93
+msgid ""
+"Invalid username, it must contain between 3 and 12 alphanumeric characters, "
+"all in lowercase"
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:71
+#: ../vhffs-panel/cvs/prefs.pl:102
msgid "Is this CVS repository public ??"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:88
+#: ../vhffs-panel/svn/prefs.pl:118
msgid "Is this a public repository ?"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:373
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:403
msgid "January"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:397
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:427
msgid "July"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:393
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:423
msgid "June"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:57
+#: ../vhffs-panel/user/prefs.pl:88
msgid "Language"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:60
-#: ../vhffs-panel/public/lastusers.pl:83 ../vhffs-panel/public/index.pl:53
-#: ../vhffs-panel/public/allgroups.pl:76 ../vhffs-panel/public/group.pl:219
-#: ../vhffs-panel/public/user.pl:87 ../vhffs-panel/public/lastgroups.pl:75
+#: ../vhffs-panel/public/user.pl:116 ../vhffs-panel/public/lastgroups.pl:104
+#: ../vhffs-panel/public/lastusers.pl:113
+#: ../vhffs-panel/public/allwebsites.pl:100 ../vhffs-panel/public/index.pl:82
+#: ../vhffs-panel/public/group.pl:224 ../vhffs-panel/public/allgroups.pl:112
msgid "Last groups"
msgstr ""
-#: ../vhffs-panel/public/lastgroups.pl:33
+#: ../vhffs-panel/public/lastgroups.pl:62
#, perl-format
msgid "Last groups on %s"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:61
-#: ../vhffs-panel/public/lastusers.pl:84 ../vhffs-panel/public/index.pl:54
-#: ../vhffs-panel/public/allgroups.pl:77 ../vhffs-panel/public/group.pl:220
-#: ../vhffs-panel/public/user.pl:88 ../vhffs-panel/public/lastgroups.pl:76
+#: ../vhffs-panel/public/user.pl:117 ../vhffs-panel/public/lastgroups.pl:105
+#: ../vhffs-panel/public/lastusers.pl:114
+#: ../vhffs-panel/public/allwebsites.pl:101 ../vhffs-panel/public/index.pl:83
+#: ../vhffs-panel/public/group.pl:225 ../vhffs-panel/public/allgroups.pl:113
msgid "Last users"
msgstr ""
-#: ../vhffs-panel/public/lastusers.pl:36
+#: ../vhffs-panel/public/lastusers.pl:68
#, perl-format
msgid "Last users on %s"
msgstr ""
-#: ../vhffs-panel/public/lastusers.pl:48 ../vhffs-panel/public/user.pl:57
-#: ../vhffs-panel/admin/user/edit.pl:66 ../vhffs-panel/admin/user/show.pl:67
-#: ../vhffs-panel/user/prefs.pl:50 ../vhffs-panel/subscribe.pl:39
+#: ../vhffs-panel/subscribe.pl:201 ../vhffs-panel/user/prefs.pl:81
+#: ../vhffs-panel/admin/user/edit.pl:97 ../vhffs-panel/admin/user/show.pl:98
+#: ../vhffs-panel/public/user.pl:85 ../vhffs-panel/public/lastusers.pl:80
msgid "Lastname"
msgstr ""
-#: ../vhffs-panel/largefile/prefs.pl:90 ../vhffs-panel/largefile/create.pl:37
-msgid "License"
-msgstr ""
-
-#: ../vhffs-panel/largefile/submit.pl:52
-msgid ""
-"License is too short. Please tell us about legal aspects concerning the use "
-"of this new file."
-msgstr ""
-
-#: ../vhffs-panel/public/largefile.pl:82
-msgid "License of this file"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:117
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:146
msgid "List all CVS"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:130
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:159
msgid "List all DBs"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:170
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:199
msgid "List all Postgres DB"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:103
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:132
msgid "List all SVN repo"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:76
+#: ../vhffs-panel/mail/prefs.pl:107
msgid "List all accounts"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:86
+#: ../vhffs-panel/dns/prefs.pl:117
msgid "List all all A reccords"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:144
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:173
msgid "List all domain names"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:183
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:212
msgid "List all domains"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:85
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:225
+msgid "List all download repositories"
+msgstr ""
+
+#: ../vhffs-panel/mail/prefs.pl:116
msgid "List all forwardings for this domain"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:79
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:108
msgid "List all groups"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:196
-msgid "List all hosted files"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:157
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:186
msgid "List all lists"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:93
+#: ../vhffs-panel/mailinglist/prefs.pl:128
msgid "List all members"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:61
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:90
msgid "List all objects"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:71
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:100
msgid "List all users"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:230
+#: ../vhffs-panel/admin/moderation.pl:261
msgid "List awaiting validation"
msgstr ""
-#: ../vhffs-panel/admin/cvs/list.pl:53
+#: ../vhffs-panel/admin/cvs/list.pl:86
msgid "List of all CVS repositories"
msgstr ""
-#: ../vhffs-panel/admin/mysql/list.pl:53
+#: ../vhffs-panel/admin/repository/list.pl:85
+msgid "List of all Download repositories"
+msgstr ""
+
+#: ../vhffs-panel/admin/mysql/list.pl:85
msgid "List of all MySQL databases"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/list.pl:53
+#: ../vhffs-panel/admin/pgsql/list.pl:84
msgid "List of all PostgreSQL databases"
msgstr ""
-#: ../vhffs-panel/admin/dns/list.pl:53
+#: ../vhffs-panel/admin/dns/list.pl:84
msgid "List of all domains"
msgstr ""
-#: ../vhffs-panel/admin/group/list.pl:49
+#: ../vhffs-panel/admin/group/list.pl:81
msgid "List of all groups"
msgstr ""
-#: ../vhffs-panel/admin/mail/list.pl:53
+#: ../vhffs-panel/admin/mail/list.pl:84
msgid "List of all mail-domain"
msgstr ""
-#: ../vhffs-panel/admin/mailing/list.pl:54
+#: ../vhffs-panel/admin/mailing/list.pl:83
msgid "List of all mailing-list"
msgstr ""
-#: ../vhffs-panel/admin/user/list.pl:53
+#: ../vhffs-panel/admin/user/list.pl:76
msgid "List of all users"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:59
-#: ../vhffs-panel/public/lastusers.pl:82 ../vhffs-panel/public/index.pl:52
-#: ../vhffs-panel/public/allgroups.pl:75 ../vhffs-panel/public/group.pl:218
-#: ../vhffs-panel/public/user.pl:86 ../vhffs-panel/public/lastgroups.pl:74
-#: ../vhffs-panel/admin/web/list.pl:53
+#: ../vhffs-panel/admin/web/list.pl:75 ../vhffs-panel/public/user.pl:115
+#: ../vhffs-panel/public/lastgroups.pl:103
+#: ../vhffs-panel/public/lastusers.pl:112
+#: ../vhffs-panel/public/allwebsites.pl:99 ../vhffs-panel/public/index.pl:81
+#: ../vhffs-panel/public/group.pl:223 ../vhffs-panel/public/allgroups.pl:111
msgid "List of all websites"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:89
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:118
msgid "List websites"
msgstr ""
-#: ../vhffs-panel/mailinglist/delete.pl:67
+#: ../vhffs-panel/mailinglist/delete.pl:94
msgid "List will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/public/group.pl:194
+#: ../vhffs-panel/public/group.pl:199
msgid "List(s) for this group"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:129
+#: ../vhffs-panel/admin/stats.pl:160
msgid "Listengine stats"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:88
+#: ../vhffs-panel/mail/prefs.pl:119
msgid "Local Part"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:79
+#: ../vhffs-panel/mail/prefs.pl:110
msgid "Local Part for this account"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:170 ../vhffs-panel/login.pl:59
-#: ../vhffs-panel/login.pl:100 ../vhffs-panel/lost_ack.pl:41
-#: ../vhffs-panel/lost_ack.pl:52
+#: ../vhffs-panel/lost_ack.pl:70 ../vhffs-panel/lost_ack.pl:81
msgid "Login"
msgstr ""
-#: ../vhffs-panel/login.pl:89
+#: ../vhffs-panel/login.pl:107
msgid "Login OK, please wait..."
msgstr ""
-#: ../vhffs-panel/login.pl:58 ../vhffs-panel/login.pl:99
+#: ../vhffs-panel/login.pl:87 ../vhffs-panel/login.pl:117
msgid "Login failed !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:57
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:91
msgid "Logout"
msgstr ""
-#: ../vhffs-panel/dns/modif_mx.pl:73
+#: ../vhffs-panel/dns/modif_mx.pl:105
msgid "MX successfully changed"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:129
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:158
msgid "MYSQL Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:116
-#: ../vhffs-panel/admin/user/edit.pl:77 ../vhffs-panel/admin/user/show.pl:77
+#: ../vhffs-panel/admin/user/edit.pl:108 ../vhffs-panel/admin/user/show.pl:108
+#: ../vhffs-api/src/Vhffs/Panel/Mail.pm:148
msgid "Mail"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:143
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:172
msgid "Mail Admin"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:67
+#: ../vhffs-panel/mail/prefs.pl:98
msgid "Mail Administration for domain "
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:319
+#: ../vhffs-panel/admin/moderation.pl:350
msgid "Mail Area awaiting validation"
msgstr ""
-#: ../vhffs-panel/mail/submit.pl:53
+#: ../vhffs-panel/mail/submit.pl:82
msgid "Mail area successfully created !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:428
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:504
msgid "Mail domain for this group"
msgstr ""
-#: ../vhffs-panel/mailinglist/create.pl:57
+#: ../vhffs-panel/mailinglist/create.pl:88
msgid "Mail for the list"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:102
+#: ../vhffs-panel/admin/stats.pl:133
msgid "Mail stats"
msgstr ""
-#: ../vhffs-panel/admin/mailing/mailing_submit.pl:57
+#: ../vhffs-panel/admin/mailing/mailing_submit.pl:88
msgid "Mail successfully sent"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:59
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:88
msgid "Mail to all hosted people"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:322
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:352
#, perl-format
msgid "Mail with id %s"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:90
+#: ../vhffs-panel/user/prefs_save.pl:121
msgid "Mailbox modified"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:161
+#: ../vhffs-panel/user/prefs_save.pl:197
msgid "Mailbox successfully added"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:99
+#: ../vhffs-panel/admin/mailing/list.pl:86
+#: ../vhffs-api/src/Vhffs/Panel/Mailinglist.pm:147
msgid "Mailing List"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_submit.pl:60
+#: ../vhffs-panel/admin/broadcast_submit.pl:91
msgid "Mailing successfully added"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_delete.pl:60
+#: ../vhffs-panel/admin/broadcast_delete.pl:91
msgid "Mailing successfully deleted"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:78
+#: ../vhffs-panel/mailinglist/submit.pl:108
msgid "Mailing-list successfully created !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:156
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:185
msgid "Mailing-lists Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:402
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:478
msgid "Mailing-lists for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:60
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:89
msgid "Manage mailings"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:92
+#: ../vhffs-panel/mailinglist/prefs.pl:127
msgid "Manage members"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:74
+#: ../vhffs-panel/group/join_group.pl:101
msgid "Many users matched your query. Please choose between them"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:381
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:411
msgid "March"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:389
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:419
msgid "May"
msgstr ""
-#: ../vhffs-panel/admin/broadcast.pl:48
+#: ../vhffs-panel/admin/broadcast.pl:79
msgid "Message"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:89
+#: ../vhffs-listengine/src/archives/show_msg.pl:120
#, perl-format
msgid "Message from list %s"
msgstr ""
-#: ../vhffs-panel/alert_submit.pl:43
+#: ../vhffs-panel/alert_submit.pl:74
msgid "Message sent by the following account"
msgstr ""
-#: ../vhffs-panel/alert_submit.pl:49
+#: ../vhffs-panel/alert_submit.pl:80
msgid "Message sent successfully"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:291
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:306
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:321
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:336
#, perl-format
msgid "Message with id: %s"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:99
-msgid "Mirrors"
-msgstr ""
-
-#: ../vhffs-panel/mailinglist/prefs.pl:82
+#: ../vhffs-panel/mailinglist/prefs.pl:113
msgid "Moderated"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:55
-#: ../vhffs-panel/admin/moderation.pl:53
+#: ../vhffs-panel/admin/moderation.pl:84
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:84
msgid "Moderation"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:99 ../vhffs-panel/admin/user/show.pl:101
+#: ../vhffs-panel/admin/user/edit.pl:130 ../vhffs-panel/admin/user/show.pl:132
msgid "Moderator"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:44
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:77
msgid "Moderator account : "
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:368
-#: ../vhffs-panel/admin/mail/edit.pl:135 ../vhffs-panel/admin/pgsql/edit.pl:94
-#: ../vhffs-panel/admin/cvs/edit.pl:103 ../vhffs-panel/admin/group/edit.pl:96
-#: ../vhffs-panel/admin/mysql/edit.pl:94
-#: ../vhffs-panel/admin/object/edit.pl:94 ../vhffs-panel/admin/web/edit.pl:107
-#: ../vhffs-panel/admin/user/edit.pl:118
+#: ../vhffs-panel/admin/user/edit.pl:149
+#: ../vhffs-panel/admin/pgsql/edit.pl:125
+#: ../vhffs-panel/admin/group/edit.pl:125
+#: ../vhffs-panel/admin/repository/edit.pl:125
+#: ../vhffs-panel/admin/object/edit.pl:125
+#: ../vhffs-panel/admin/web/edit.pl:138 ../vhffs-panel/admin/mysql/edit.pl:126
+#: ../vhffs-panel/admin/cvs/edit.pl:134 ../vhffs-panel/admin/mail/edit.pl:166
msgid "Modification applied"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:364
-#: ../vhffs-panel/admin/mail/edit.pl:134 ../vhffs-panel/admin/pgsql/edit.pl:93
-#: ../vhffs-panel/admin/cvs/edit.pl:102 ../vhffs-panel/admin/group/edit.pl:95
-#: ../vhffs-panel/admin/mysql/edit.pl:93
-#: ../vhffs-panel/admin/object/edit.pl:93 ../vhffs-panel/admin/web/edit.pl:106
-#: ../vhffs-panel/admin/user/edit.pl:117
+#: ../vhffs-panel/admin/user/edit.pl:148
+#: ../vhffs-panel/admin/pgsql/edit.pl:124
+#: ../vhffs-panel/admin/group/edit.pl:124
+#: ../vhffs-panel/admin/repository/edit.pl:124
+#: ../vhffs-panel/admin/object/edit.pl:124
+#: ../vhffs-panel/admin/web/edit.pl:137 ../vhffs-panel/admin/mysql/edit.pl:125
+#: ../vhffs-panel/admin/cvs/edit.pl:133 ../vhffs-panel/admin/mail/edit.pl:165
msgid "Modification error"
msgstr ""
-#: ../vhffs-panel/admin/moderation_submit.pl:110
+#: ../vhffs-panel/admin/moderation_submit.pl:140
msgid "Modifications applied successfully"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs_save.pl:69
+#: ../vhffs-panel/pgsql/prefs_save.pl:100
msgid "Modifications applied to your database"
msgstr ""
-#: ../vhffs-panel/web/prefs_save.pl:64
+#: ../vhffs-panel/web/prefs_save.pl:95
msgid "Modifications applied to your webarea"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit_submit.pl:71
-#: ../vhffs-panel/admin/cvs/edit_submit.pl:73
-#: ../vhffs-panel/admin/group/edit_submit.pl:84
-#: ../vhffs-panel/admin/mysql/edit_submit.pl:71
+#: ../vhffs-panel/admin/pgsql/edit_submit.pl:102
+#: ../vhffs-panel/admin/group/edit_submit.pl:114
+#: ../vhffs-panel/admin/repository/edit_submit.pl:105
+#: ../vhffs-panel/admin/mysql/edit_submit.pl:106
+#: ../vhffs-panel/admin/cvs/edit_submit.pl:104
msgid "Modifications successfully added"
msgstr ""
-#: ../vhffs-panel/admin/web/edit_submit.pl:72
-#: ../vhffs-panel/admin/user/edit_submit.pl:104
+#: ../vhffs-panel/admin/user/edit_submit.pl:135
+#: ../vhffs-panel/admin/web/edit_submit.pl:104
msgid "Modifications successfully applied"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:154 ../vhffs-panel/dns/prefs.pl:175
-#: ../vhffs-panel/dns/prefs.pl:195 ../vhffs-panel/cvs/prefs.pl:74
-#: ../vhffs-panel/group/prefs.pl:65 ../vhffs-panel/svn/prefs.pl:91
-#: ../vhffs-panel/web/prefs.pl:88 ../vhffs-panel/pgsql/prefs.pl:75
-#: ../vhffs-panel/mysql/prefs.pl:82 ../vhffs-panel/user/prefs.pl:59
+#: ../vhffs-panel/svn/prefs.pl:121 ../vhffs-panel/user/prefs.pl:90
+#: ../vhffs-panel/dns/prefs.pl:185 ../vhffs-panel/dns/prefs.pl:206
+#: ../vhffs-panel/dns/prefs.pl:226 ../vhffs-panel/pgsql/prefs.pl:106
+#: ../vhffs-panel/group/prefs.pl:96 ../vhffs-panel/web/prefs.pl:119
+#: ../vhffs-panel/mysql/prefs.pl:113 ../vhffs-panel/cvs/prefs.pl:105
msgid "Modify"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:159 ../vhffs-panel/acl/view.pl:207
+#: ../vhffs-panel/acl/view.pl:190 ../vhffs-panel/acl/view.pl:237
msgid "Modify this ACL"
msgstr ""
-#: ../vhffs-panel/admin/cvs/list.pl:79
+#: ../vhffs-panel/admin/cvs/list.pl:97
msgid "Modify this CVS repository"
msgstr ""
-#: ../vhffs-panel/admin/mysql/list.pl:94
+#: ../vhffs-panel/admin/repository/list.pl:101
+msgid "Modify this Download repository"
+msgstr ""
+
+#: ../vhffs-panel/admin/mysql/list.pl:100
msgid "Modify this MySQL area"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/list.pl:94
+#: ../vhffs-panel/admin/pgsql/list.pl:101
msgid "Modify this PostgreSQL database"
msgstr ""
-#: ../vhffs-panel/admin/svn/list.pl:76
+#: ../vhffs-panel/admin/svn/list.pl:87
msgid "Modify this Subversion repository"
msgstr ""
-#: ../vhffs-panel/admin/dns/list.pl:93
+#: ../vhffs-panel/admin/dns/list.pl:100
msgid "Modify this domain"
msgstr ""
-#: ../vhffs-panel/admin/group/list.pl:81
+#: ../vhffs-panel/admin/group/list.pl:101
msgid "Modify this group"
msgstr ""
-#: ../vhffs-panel/admin/largefile/list.pl:77
-msgid "Modify this hosted file"
-msgstr ""
-
-#: ../vhffs-panel/admin/mailing/list.pl:87
+#: ../vhffs-panel/admin/mailing/list.pl:97
msgid "Modify this list"
msgstr ""
-#: ../vhffs-panel/admin/mail/list.pl:79
+#: ../vhffs-panel/admin/mail/list.pl:103
msgid "Modify this mail domain"
msgstr ""
-#: ../vhffs-panel/admin/user/list.pl:82
+#: ../vhffs-panel/admin/user/list.pl:91
msgid "Modify this user"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:107
+#: ../vhffs-panel/dns/prefs.pl:138
msgid "Must we redirect the DNS on our servers ?"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Group.pm:112
+#: ../vhffs-api/src/Vhffs/Panel/Group.pm:162
msgid "My Projects"
msgstr ""
-#: ../vhffs-panel/mysql/prefs.pl:66
+#: ../vhffs-panel/mysql/prefs.pl:97
msgid "MySQL Administration"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:111
+#: ../vhffs-api/src/Vhffs/Panel/Mysql.pm:141
msgid "MySQL Databases"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:362
+#: ../vhffs-panel/admin/moderation.pl:393
msgid "MySQL database awaiting validation"
msgstr ""
-#: ../vhffs-panel/mysql/create.pl:37
+#: ../vhffs-panel/mysql/create.pl:68
msgid "MySQL database name "
msgstr ""
-#: ../vhffs-panel/mysql/create.pl:38
+#: ../vhffs-panel/mysql/create.pl:69
msgid "MySQL password for this database "
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:114
+#: ../vhffs-panel/admin/stats.pl:145
msgid "MySQL stats"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:297
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:373
msgid "Mysql database for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:182
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:211
msgid "NS Admin"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:131
+#: ../vhffs-panel/dns/prefs.pl:162
msgid "NS TYPE"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:111
+#: ../vhffs-panel/admin/repository/edit.pl:95
+#: ../vhffs-panel/admin/repository/show.pl:94
+msgid "Name"
+msgstr ""
+
+#: ../vhffs-panel/dns/prefs.pl:142
msgid "Name for reccord"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:62 ../vhffs-panel/mysql/prefs.pl:69
+#: ../vhffs-panel/pgsql/prefs.pl:93 ../vhffs-panel/mysql/prefs.pl:100
msgid "Name of the database"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:118
+#: ../vhffs-panel/dns/prefs.pl:149
msgid "Name of your MX"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:230
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:260
#, perl-format
msgid "New language is: %s\n"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:109 ../vhffs-panel/cvs/prefs.pl:73
-#: ../vhffs-panel/svn/prefs.pl:90 ../vhffs-panel/web/prefs.pl:85
-#: ../vhffs-panel/admin/cvs/edit.pl:73 ../vhffs-panel/admin/cvs/show.pl:77
+#: ../vhffs-panel/svn/prefs.pl:120 ../vhffs-panel/dns/prefs.pl:140
+#: ../vhffs-panel/admin/cvs/edit.pl:104 ../vhffs-panel/admin/cvs/show.pl:108
+#: ../vhffs-panel/web/prefs.pl:116 ../vhffs-panel/cvs/prefs.pl:104
msgid "No"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:162
+#: ../vhffs-panel/dns/prefs.pl:193
msgid "No A type found"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:203
+#: ../vhffs-panel/dns/prefs.pl:234
msgid "No CNAME available on this domain"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:366
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:442
msgid "No CVS repository for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:497
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:572
msgid "No DNS domain for this group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:176
+#: ../vhffs-panel/admin/moderation.pl:207
msgid "No DNS to validate"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:93
+#: ../vhffs-panel/admin/moderation.pl:124
msgid "No Group to validate"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:183
+#: ../vhffs-panel/dns/prefs.pl:214
msgid "No MX reccord for this domain"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:353
+#: ../vhffs-panel/admin/moderation.pl:384
msgid "No Mail Area to validate"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:445
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:521
msgid "No Mail domain for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:419
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:495
msgid "No Mailing-list for this group"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:223
+#: ../vhffs-panel/dns/prefs.pl:254
msgid "No NS available on this domain"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:340
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:416
msgid "No PostgreSQL database for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:392
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:468
msgid "No SVN repository for this group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:135
+#: ../vhffs-panel/admin/moderation.pl:166
msgid "No Web Area to validate"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:127
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:217
msgid "No cookie found, please accept the cookie and then please login again !"
msgstr ""
-#: ../vhffs-panel/public/group.pl:129
+#: ../vhffs-panel/public/group.pl:161
msgid "No cvs repository available for this group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:396
-#: ../vhffs-panel/admin/moderation.pl:438
+#: ../vhffs-panel/admin/moderation.pl:427
+#: ../vhffs-panel/admin/moderation.pl:469
msgid "No database to validate"
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:74
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:547
+msgid "No download repository for this group"
+msgstr ""
+
+#: ../vhffs-panel/object/upavatar.pl:105
msgid "No enough rights"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:172 ../vhffs-panel/history.pl:84
+#: ../vhffs-panel/history.pl:115 ../vhffs-panel/admin/object/edit.pl:203
msgid "No event about this object"
msgstr ""
-#: ../vhffs-panel/public/group.pl:185
-msgid "No file available for this group"
+#: ../vhffs-panel/public/allgroups.pl:70
+msgid "No group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:479
-msgid "No files to validate"
-msgstr ""
-
-#: ../vhffs-panel/public/lastusers.pl:62 ../vhffs-panel/public/allgroups.pl:56
-#: ../vhffs-panel/public/group.pl:69 ../vhffs-panel/public/user.pl:69
-#: ../vhffs-panel/public/lastgroups.pl:55
+#: ../vhffs-panel/public/user.pl:98 ../vhffs-panel/public/lastgroups.pl:84
+#: ../vhffs-panel/public/lastusers.pl:92 ../vhffs-panel/public/allgroups.pl:92
msgid "No group for this user"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:89
-msgid "No hash"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:472
-msgid "No hosted files for this group"
-msgstr ""
-
-#: ../vhffs-panel/public/group.pl:209
+#: ../vhffs-panel/public/group.pl:214
msgid "No list available for this group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:263
+#: ../vhffs-panel/admin/moderation.pl:294
msgid "No list to validate"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:161
+#: ../vhffs-panel/mailinglist/prefs.pl:196
msgid "No member on this list"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:559
+#: ../vhffs-listengine/src/listengine.pl:570
msgid "No message to moderate"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs_save.pl:65
+#: ../vhffs-panel/pgsql/prefs_save.pl:96
msgid "No modification can be applied. Please check your fields."
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:314
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:390
msgid "No mysql database for this group"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:220
-#: ../vhffs-panel/admin/moderation.pl:308
+#: ../vhffs-panel/admin/moderation.pl:251
+#: ../vhffs-panel/admin/moderation.pl:339
+#: ../vhffs-panel/admin/moderation.pl:511
msgid "No repository to validate"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:105
-msgid "No server"
-msgstr ""
-
-#: ../vhffs-panel/public/group.pl:156
+#: ../vhffs-panel/public/group.pl:188
msgid "No subversion repository available for this group"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:62 ../vhffs-panel/public/group.pl:46
+#: ../vhffs-panel/public/group.pl:78
msgid "No such group"
msgstr ""
-#: ../vhffs-panel/public/user.pl:45
+#: ../vhffs-panel/public/user.pl:73
msgid "No such user"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:43
-msgid "No such user on Vhffs"
+#: ../vhffs-panel/public/group.pl:101
+msgid "No user for this group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:290
+#: ../vhffs-panel/public/allwebsites.pl:74
+msgid "No webarea"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:366
msgid "No webarea for this group"
msgstr ""
-#: ../vhffs-panel/public/group.pl:105
+#: ../vhffs-panel/public/group.pl:137
msgid "No website available for this group"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:102 ../vhffs-panel/web/prefs.pl:99
-#: ../vhffs-panel/user/prefs.pl:76
+#: ../vhffs-panel/user/prefs.pl:105 ../vhffs-panel/dns/prefs.pl:133
+#: ../vhffs-panel/web/prefs.pl:130
msgid "No, I'm not sure, I prefer to keep it."
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:79 ../vhffs-panel/group/prefs.pl:70
-#: ../vhffs-panel/svn/prefs.pl:96 ../vhffs-panel/mailinglist/prefs.pl:169
-#: ../vhffs-panel/mail/prefs.pl:103 ../vhffs-panel/pgsql/prefs.pl:80
-#: ../vhffs-panel/largefile/prefs.pl:103 ../vhffs-panel/mysql/prefs.pl:87
+#: ../vhffs-panel/mailinglist/prefs.pl:204 ../vhffs-panel/svn/prefs.pl:126
+#: ../vhffs-panel/pgsql/prefs.pl:111 ../vhffs-panel/group/prefs.pl:101
+#: ../vhffs-panel/repository/prefs.pl:106 ../vhffs-panel/mysql/prefs.pl:118
+#: ../vhffs-panel/cvs/prefs.pl:110 ../vhffs-panel/mail/prefs.pl:134
msgid "No, I'm not sure, I prefer to keep this project."
msgstr ""
-#: ../vhffs-panel/mailinglist/del_member.pl:68
-#: ../vhffs-panel/mailinglist/add_sub.pl:68
-#: ../vhffs-panel/mailinglist/change_right.pl:70
+#: ../vhffs-panel/mailinglist/add_sub.pl:95
+#: ../vhffs-panel/mailinglist/change_right.pl:97
+#: ../vhffs-panel/mailinglist/del_member.pl:95
msgid "Not valid mail"
msgstr ""
-#: ../vhffs-panel/admin/user/edit_note.pl:66
+#: ../vhffs-panel/admin/user/edit_note.pl:97
msgid "Note successfully modified"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:413
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:443
msgid "November"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:61
-#, perl-format
-msgid "Now, you have to log in on the ftp server %s with\n"
+#: ../vhffs-panel/acl/submit.pl:89 ../vhffs-panel/acl/add_acl_user.pl:90
+msgid "Object Error"
msgstr ""
-#: ../vhffs-panel/acl/add_acl_user.pl:59
-#: ../vhffs-panel/acl/add_acl_group.pl:59 ../vhffs-panel/acl/submit.pl:58
-#: ../vhffs-panel/acl/submit.pl:62
-msgid "Object Error"
+#: ../vhffs-panel/admin/object/list.pl:87
+msgid "Object ID"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:62
+#: ../vhffs-panel/admin/object/edit.pl:93
msgid "Object id"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:231 ../vhffs-panel/svn/prefs.pl:123
-#: ../vhffs-panel/mailinglist/prefs.pl:181
-#: ../vhffs-panel/largefile/prefs.pl:115
+#: ../vhffs-panel/mailinglist/prefs.pl:216 ../vhffs-panel/svn/prefs.pl:153
+#: ../vhffs-panel/dns/prefs.pl:262
msgid "Object part"
msgstr ""
-#: ../vhffs-panel/admin/object/edit_submit.pl:62
+#: ../vhffs-panel/admin/object/edit_submit.pl:93
msgid "Object successfully updated"
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:66
+#: ../vhffs-panel/object/upavatar.pl:97
msgid "Object-ID error"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:409
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:439
msgid "October"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:94 ../vhffs-panel/web/prefs.pl:93
-#: ../vhffs-panel/mail/prefs.pl:108
+#: ../vhffs-panel/dns/prefs.pl:125 ../vhffs-panel/web/prefs.pl:124
+#: ../vhffs-panel/mail/prefs.pl:139
msgid "Ok, go to ACL admin"
msgstr ""
-#: ../vhffs-panel/admin/broadcast.pl:49
+#: ../vhffs-panel/admin/broadcast.pl:80
msgid "Ok, send it !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:30
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:60
msgid "Only this list administrators can use the following commands.\n"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:85
+#: ../vhffs-panel/mailinglist/prefs.pl:116
msgid "Open archives"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:83
+#: ../vhffs-panel/mailinglist/prefs.pl:114
msgid "Open post"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:84
+#: ../vhffs-panel/mailinglist/prefs.pl:115
msgid "Open subscribing"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:81
+#: ../vhffs-panel/mailinglist/prefs.pl:112
msgid "Options"
msgstr ""
-#: ../vhffs-panel/mailinglist/save_options.pl:127
+#: ../vhffs-panel/mailinglist/save_sig.pl:97
+#: ../vhffs-panel/mailinglist/save_options.pl:154
msgid "Options successfully modified"
msgstr ""
-#: ../vhffs-panel/public/allwebsites.pl:45
+#: ../vhffs-panel/public/allwebsites.pl:85
msgid "Owned by"
msgstr ""
-#: ../vhffs-panel/group/create.pl:32 ../vhffs-panel/admin/mail/edit.pl:69
-#: ../vhffs-panel/admin/mail/show.pl:69 ../vhffs-panel/admin/pgsql/edit.pl:68
-#: ../vhffs-panel/admin/pgsql/show.pl:66 ../vhffs-panel/admin/cvs/edit.pl:67
-#: ../vhffs-panel/admin/cvs/show.pl:66 ../vhffs-panel/admin/group/edit.pl:66
-#: ../vhffs-panel/admin/group/show.pl:65 ../vhffs-panel/admin/mysql/edit.pl:68
-#: ../vhffs-panel/admin/mysql/show.pl:65 ../vhffs-panel/admin/web/edit.pl:69
-#: ../vhffs-panel/admin/web/show.pl:68
+#: ../vhffs-panel/group/create.pl:63 ../vhffs-panel/admin/pgsql/edit.pl:99
+#: ../vhffs-panel/admin/pgsql/show.pl:97 ../vhffs-panel/admin/group/edit.pl:95
+#: ../vhffs-panel/admin/group/show.pl:95
+#: ../vhffs-panel/admin/repository/edit.pl:97
+#: ../vhffs-panel/admin/repository/show.pl:96
+#: ../vhffs-panel/admin/object/list.pl:88 ../vhffs-panel/admin/web/edit.pl:100
+#: ../vhffs-panel/admin/web/show.pl:99 ../vhffs-panel/admin/mysql/edit.pl:100
+#: ../vhffs-panel/admin/mysql/show.pl:96 ../vhffs-panel/admin/cvs/edit.pl:98
+#: ../vhffs-panel/admin/cvs/show.pl:97 ../vhffs-panel/admin/mail/edit.pl:100
+#: ../vhffs-panel/admin/mail/show.pl:100
msgid "Owner"
msgstr ""
-#: ../vhffs-panel/admin/largefile/list.pl:83
-msgid "Owner group"
+#: ../vhffs-panel/admin/group/list.pl:90
+msgid "Owner name"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:195
+#: ../vhffs-panel/admin/user/edit.pl:226
msgid "Owner of this group"
msgstr ""
-#: ../vhffs-panel/lost.pl:27
-msgid "PLEASE!!!"
-msgstr ""
-
-#: ../vhffs-panel/login.pl:90
+#: ../vhffs-panel/login.pl:108
msgid "Panel Access"
msgstr ""
-#: ../vhffs-panel/mail/prefs.pl:80 ../vhffs-panel/admin/pgsql/edit.pl:66
-#: ../vhffs-panel/admin/mysql/edit.pl:66 ../vhffs-panel/admin/user/edit.pl:68
-#: ../vhffs-panel/user/prefs.pl:55 ../vhffs-panel/auth.pl:33
+#: ../vhffs-panel/user/prefs.pl:86 ../vhffs-panel/admin/user/edit.pl:99
+#: ../vhffs-panel/admin/pgsql/edit.pl:97 ../vhffs-panel/admin/mysql/edit.pl:97
+#: ../vhffs-panel/auth.pl:59 ../vhffs-panel/mail/prefs.pl:111
msgid "Password"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:68 ../vhffs-panel/mysql/prefs.pl:75
+#: ../vhffs-panel/admin/mail/password_box.pl:109
+#, perl-format
+msgid "Password changed for box %s"
+msgstr ""
+
+#: ../vhffs-panel/pgsql/prefs.pl:99 ../vhffs-panel/mysql/prefs.pl:106
msgid "Password for this database"
msgstr ""
-#: ../vhffs-panel/mysql/submit.pl:56
+#: ../vhffs-panel/mysql/submit.pl:87
msgid "Password must contain at least 3 caracters"
msgstr ""
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:50
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:81
msgid "Password must contains only alphanum caracters"
msgstr ""
-#: ../vhffs-panel/lost_ack.pl:51
+#: ../vhffs-panel/lost_ack.pl:80
msgid "Password recovery failed!"
msgstr ""
-#: ../vhffs-panel/mail/password_box.pl:91
+#: ../vhffs-panel/mail/password_box.pl:108
msgid "Password successfully changed"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:64
-#, perl-format
-msgid "Password: %s\n"
+#: ../vhffs-panel/admin/mysql/edit.pl:98
+msgid "Password will not be modified if it is set to 'blanked' or empty"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:68
+#: ../vhffs-panel/user/prefs_save.pl:99
msgid "Passwords don't match"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:121
+#: ../vhffs-panel/admin/stats.pl:152
msgid "PgSQL stats"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:29
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:40 ../vhffs-panel/login.pl:46
+#: ../vhffs-panel/login.pl:73 ../vhffs-api/src/Vhffs/Panel/Main.pm:32
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:43
msgid "Platform temporary closed"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:41 ../vhffs-panel/login.pl:47
+#: ../vhffs-panel/login.pl:74 ../vhffs-api/src/Vhffs/Panel/Main.pm:44
msgid "Platform temporary closed."
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:30
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:33
msgid "Platform temporary closed<br/>database error"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:156
+#: ../vhffs-panel/subscribe.pl:137
msgid "Please enter a correct city"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:163
+#: ../vhffs-panel/subscribe.pl:141
msgid "Please enter a correct country"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:142
-#: ../vhffs-panel/subscribe_complete.pl:149
+#: ../vhffs-panel/subscribe.pl:129
msgid "Please enter a correct firstname"
msgstr ""
-#: ../vhffs-panel/auth.pl:31
+#: ../vhffs-panel/subscribe.pl:133
+msgid "Please enter a correct lastname"
+msgstr ""
+
+#: ../vhffs-panel/auth.pl:57
msgid "Please enter your username and password"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:35
+#: ../vhffs-panel/subscribe.pl:197
msgid ""
"Please fill in all fields, a mail containing your password will be sent to "
"you"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:257
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:287
msgid "Please read help of listengine\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:153
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:183
msgid "Please try again\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:201
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:231
msgid "Please try again.\n"
msgstr ""
-#: ../vhffs-panel/lost_ack.pl:40
+#: ../vhffs-panel/lost_ack.pl:69
#, perl-format
msgid "Please wait %s, a new password will be sent to you in a few minutes..."
msgstr ""
-#: ../vhffs-panel/pgsql/prefs_save.pl:50 ../vhffs-panel/pgsql/prefs.pl:53
+#: ../vhffs-panel/pgsql/prefs.pl:84 ../vhffs-panel/pgsql/prefs_save.pl:81
msgid "Please wait modification, creation or deletion"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:205
+#: ../vhffs-panel/subscribe.pl:167
msgid ""
"Please wait while we are creating the account, it will take some minutes"
msgstr ""
-#: ../vhffs-irc/modobot.pl:368 ../vhffs-panel/admin/moderation_submit.pl:76
-msgid "Please wait while we are creating your object\n"
-msgstr ""
-
-#: ../vhffs-panel/admin/mail/edit.pl:85 ../vhffs-panel/admin/mail/show.pl:85
+#: ../vhffs-panel/admin/mail/edit.pl:116 ../vhffs-panel/admin/mail/show.pl:116
msgid "Popboxes for"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:60
+#: ../vhffs-panel/pgsql/prefs.pl:91
msgid "PostgreSQL Administration"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:85
+#: ../vhffs-api/src/Vhffs/Panel/Pgsql.pm:119
msgid "PostgreSQL Databases"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:323
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:399
msgid "PostgreSQL database for this group"
msgstr ""
-#: ../vhffs-panel/pgsql/create.pl:34
+#: ../vhffs-panel/pgsql/create.pl:65
msgid "PostgreSQL database name"
msgstr ""
-#: ../vhffs-panel/pgsql/create.pl:35
+#: ../vhffs-panel/pgsql/create.pl:66
msgid "PostgreSQL password for this database"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:169
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:198
msgid "Postgres Admin"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:404
+#: ../vhffs-panel/admin/moderation.pl:435
msgid "Postgres database awaiting validation"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:87
+#: ../vhffs-panel/mailinglist/prefs.pl:118
msgid "Prefix on subject"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:119
+#: ../vhffs-panel/dns/prefs.pl:150
msgid "Priority of your MX"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:172
+#: ../vhffs-panel/dns/prefs.pl:203
msgid "Priority: "
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:90
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:123
msgid "Project : "
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:91
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:124
msgid "Project Configuration"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:62
+#: ../vhffs-panel/group/prefs.pl:93
msgid "Project Description"
msgstr ""
-#: ../vhffs-panel/group/create.pl:31
+#: ../vhffs-panel/group/create.pl:62
msgid "Project Name"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:60
+#: ../vhffs-panel/group/prefs.pl:91
msgid "Project Owner"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:57
+#: ../vhffs-panel/group/prefs.pl:88
msgid "Project Preferences"
msgstr ""
-#: ../vhffs-panel/group/project_submit.pl:74
+#: ../vhffs-panel/group/project_submit.pl:85
msgid "Project Successfully created !"
msgstr ""
-#: ../vhffs-panel/group/prefs_save.pl:67
+#: ../vhffs-panel/group/prefs_save.pl:93
msgid "Project Successfully modified"
msgstr ""
-#: ../vhffs-panel/svn/prefs.pl:87 ../vhffs-panel/admin/cvs/edit.pl:65
-#: ../vhffs-panel/admin/cvs/show.pl:64
+#: ../vhffs-panel/svn/prefs.pl:117 ../vhffs-panel/admin/cvs/edit.pl:96
+#: ../vhffs-panel/admin/cvs/show.pl:95
msgid "Public"
msgstr ""
-#: ../vhffs-panel/admin/group/edit.pl:67 ../vhffs-panel/admin/group/show.pl:66
+#: ../vhffs-panel/admin/group/edit.pl:96 ../vhffs-panel/admin/group/show.pl:96
+#: ../vhffs-panel/admin/repository/edit.pl:102
+#: ../vhffs-panel/admin/repository/show.pl:100
msgid "Quota"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:268
-#: ../vhffs-panel/admin/group/edit.pl:81
+#: ../vhffs-panel/repository/prefs.pl:100
+#: ../vhffs-panel/admin/group/edit.pl:110
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:344
#, perl-format
msgid "Quota (used/total) : %s/%s"
msgstr ""
-#: ../vhffs-panel/admin/group/edit.pl:68 ../vhffs-panel/admin/group/show.pl:67
+#: ../vhffs-panel/admin/group/edit.pl:97 ../vhffs-panel/admin/group/show.pl:97
+#: ../vhffs-panel/admin/repository/edit.pl:103
+#: ../vhffs-panel/admin/repository/show.pl:101
msgid "Quota used"
msgstr ""
-#: ../vhffs-panel/public/rss/lastgroups.pl:76
-#: ../vhffs-panel/public/rss/lastusers.pl:75
+#: ../vhffs-panel/public/rss/lastgroups.pl:107
+#: ../vhffs-panel/public/rss/lastusers.pl:106
msgid "RSS infos are not published"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:45
-#: ../vhffs-robots/src/refused_cvs.pl:46
-#: ../vhffs-robots/src/refused_postgres.pl:45
-#: ../vhffs-robots/src/refused_web.pl:45
-#: ../vhffs-robots/src/refused_mail.pl:45
-#: ../vhffs-robots/src/refused_dns.pl:45
-#: ../vhffs-robots/src/refused_mysql.pl:45
-#: ../vhffs-robots/src/refused_svn.pl:45 ../vhffs-robots/src/refused_ml.pl:45
-#: ../vhffs-robots/src/refused_groups.pl:45
+#: ../vhffs-panel/admin/user/list.pl:80
+msgid "Real Name"
+msgstr ""
+
+#: ../vhffs-robots/src/refused_ml.pl:73 ../vhffs-robots/src/refused_mail.pl:75
+#: ../vhffs-robots/src/refused_postgres.pl:76
+#: ../vhffs-robots/src/refused_cvs.pl:72 ../vhffs-robots/src/refused_web.pl:71
+#: ../vhffs-robots/src/refused_mysql.pl:46
+#: ../vhffs-robots/src/refused_svn.pl:42
+#: ../vhffs-robots/src/refused_groups.pl:71
+#: ../vhffs-robots/src/refused_repository.pl:76
+#: ../vhffs-robots/src/refused_dns.pl:75
msgid "Reason given : "
msgstr ""
-#: ../vhffs-panel/subscribe.pl:47
+#: ../vhffs-panel/subscribe.pl:213
msgid "Recopy the code"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:85
-#: ../vhffs-panel/admin/moderation.pl:127
-#: ../vhffs-panel/admin/moderation.pl:168
-#: ../vhffs-panel/admin/moderation.pl:212
-#: ../vhffs-panel/admin/moderation.pl:255
-#: ../vhffs-panel/admin/moderation.pl:300
-#: ../vhffs-panel/admin/moderation.pl:345
-#: ../vhffs-panel/admin/moderation.pl:388
-#: ../vhffs-panel/admin/moderation.pl:430
-#: ../vhffs-panel/admin/moderation.pl:471
+#: ../vhffs-panel/admin/moderation.pl:116
+#: ../vhffs-panel/admin/moderation.pl:158
+#: ../vhffs-panel/admin/moderation.pl:199
+#: ../vhffs-panel/admin/moderation.pl:243
+#: ../vhffs-panel/admin/moderation.pl:286
+#: ../vhffs-panel/admin/moderation.pl:331
+#: ../vhffs-panel/admin/moderation.pl:376
+#: ../vhffs-panel/admin/moderation.pl:419
+#: ../vhffs-panel/admin/moderation.pl:461
+#: ../vhffs-panel/admin/moderation.pl:503
msgid "Refuse"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:90
+#: ../vhffs-panel/group/prefs.pl:121
msgid "Remove this user from this group"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:86
+#: ../vhffs-panel/mailinglist/prefs.pl:117
msgid "Reply to: on list"
msgstr ""
-#: ../vhffs-panel/cvs/create.pl:34 ../vhffs-panel/svn/create.pl:40
+#: ../vhffs-panel/svn/create.pl:71 ../vhffs-panel/repository/create.pl:65
+#: ../vhffs-panel/admin/repository/list.pl:88 ../vhffs-panel/cvs/create.pl:65
msgid "Repository Name"
msgstr ""
-#: ../vhffs-panel/svn/prefs_save.pl:80
+#: ../vhffs-panel/svn/prefs_save.pl:111
msgid "Repository updated"
msgstr ""
-#: ../vhffs-panel/dns/add_ns.pl:72 ../vhffs-panel/dns/add_cname.pl:73
-#: ../vhffs-panel/dns/add_a.pl:80 ../vhffs-panel/dns/add_a.pl:96
-#: ../vhffs-panel/dns/add_mx.pl:73
+#: ../vhffs-panel/dns/add_mx.pl:102 ../vhffs-panel/dns/add_ns.pl:100
+#: ../vhffs-panel/dns/add_cname.pl:104 ../vhffs-panel/dns/add_a.pl:112
+#: ../vhffs-panel/dns/add_a.pl:128
msgid "Resource successfully added to this domain"
msgstr ""
-#: ../vhffs-panel/mailinglist/change_right.pl:84
+#: ../vhffs-panel/mailinglist/change_right.pl:111
msgid "Rights successfully changed"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:375
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:451
msgid "SVN repositories for this group"
msgstr ""
-#: ../vhffs-panel/public/group.pl:140
+#: ../vhffs-panel/public/group.pl:172
msgid "SVN repository for this group"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:95
+#: ../vhffs-panel/admin/svn/list.pl:76
+msgid "SVN root"
+msgstr ""
+
+#: ../vhffs-panel/admin/stats.pl:126
msgid "SVN stats"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:90
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:161
+msgid "SVNweb"
+msgstr ""
+
+#: ../vhffs-panel/mailinglist/prefs.pl:121
msgid "Save options"
msgstr ""
-#: ../vhffs-panel/admin/object/search.pl:45
+#: ../vhffs-panel/admin/object/search.pl:76
msgid "Search an object (give object_id)"
msgstr ""
-#: ../vhffs-panel/admin/cvs/search.pl:46
+#: ../vhffs-panel/admin/cvs/search.pl:77
msgid "Search for a CVS repository"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:171
+#: ../vhffs-panel/admin/repository/search.pl:77
+msgid "Search for a Download repository"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:200
msgid "Search for a PostgreSQL database"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:104
-#: ../vhffs-panel/admin/svn/search.pl:48
+#: ../vhffs-panel/admin/svn/search.pl:79
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:133
msgid "Search for a SVN repository"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/search.pl:47
-#: ../vhffs-panel/admin/mysql/search.pl:47
+#: ../vhffs-panel/admin/pgsql/search.pl:78
+#: ../vhffs-panel/admin/mysql/search.pl:78
msgid "Search for a database"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:184
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:213
msgid "Search for a domain"
msgstr ""
-#: ../vhffs-panel/admin/dns/search.pl:47
+#: ../vhffs-panel/admin/dns/search.pl:78
msgid "Search for a domain name"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:197
-#: ../vhffs-panel/admin/largefile/search.pl:47
-msgid "Search for a file"
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:226
+msgid "Search for a download repository"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:80
-#: ../vhffs-panel/admin/group/search.pl:47
+#: ../vhffs-panel/admin/group/search.pl:78
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:109
msgid "Search for a group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:158
-#: ../vhffs-panel/admin/mailing/search.pl:46
+#: ../vhffs-panel/admin/mailing/search.pl:77
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:187
msgid "Search for a list"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:145
-#: ../vhffs-panel/admin/mail/search.pl:47
+#: ../vhffs-panel/admin/mail/search.pl:78
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:174
msgid "Search for a mail domain"
msgstr ""
-#: ../vhffs-panel/admin/web/search.pl:47
+#: ../vhffs-panel/admin/web/search.pl:78
msgid "Search for a web area"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:90 ../vhffs-panel/public/index.pl:46
+#: ../vhffs-panel/public/index.pl:75 ../vhffs-api/src/Vhffs/Panel/Admin.pm:119
msgid "Search for a website"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:62
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:91
msgid "Search for an object"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:72
-#: ../vhffs-panel/admin/user/search.pl:47
+#: ../vhffs-panel/admin/user/search.pl:78
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:101
msgid "Search for an user"
msgstr ""
-#: ../vhffs-panel/admin/group/list.pl:53
+#: ../vhffs-panel/admin/group/list.pl:85
msgid "Search result"
msgstr ""
-#: ../vhffs-panel/admin/object/list.pl:48
+#: ../vhffs-panel/admin/object/list.pl:80
msgid "Search result "
msgstr ""
-#: ../vhffs-panel/admin/mailing/list.pl:50
-#: ../vhffs-panel/admin/mail/list.pl:49 ../vhffs-panel/admin/web/list.pl:49
-#: ../vhffs-panel/admin/user/list.pl:49
+#: ../vhffs-panel/admin/mailing/list.pl:79
+#: ../vhffs-panel/admin/user/list.pl:72 ../vhffs-panel/admin/web/list.pl:71
+#: ../vhffs-panel/admin/mail/list.pl:80
msgid "Search result for"
msgstr ""
-#: ../vhffs-panel/admin/cvs/list.pl:49
+#: ../vhffs-panel/admin/cvs/list.pl:82
msgid "Search result for CVS repository"
msgstr ""
-#: ../vhffs-panel/admin/svn/list.pl:47
+#: ../vhffs-panel/admin/repository/list.pl:81
+msgid "Search result for Download repository"
+msgstr ""
+
+#: ../vhffs-panel/admin/svn/list.pl:69
msgid "Search result for Subversion repository"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/list.pl:49 ../vhffs-panel/admin/mysql/list.pl:49
+#: ../vhffs-panel/admin/pgsql/list.pl:80 ../vhffs-panel/admin/mysql/list.pl:81
msgid "Search result for database"
msgstr ""
-#: ../vhffs-panel/admin/dns/list.pl:49
+#: ../vhffs-panel/admin/dns/list.pl:80
msgid "Search result for domain"
msgstr ""
-#: ../vhffs-panel/admin/largefile/list.pl:45
-msgid "Search result for file"
-msgstr ""
-
-#: ../vhffs-panel/public/allwebsites.pl:62
-#: ../vhffs-panel/public/lastusers.pl:85 ../vhffs-panel/public/index.pl:55
-#: ../vhffs-panel/public/allgroups.pl:78 ../vhffs-panel/public/group.pl:221
-#: ../vhffs-panel/public/user.pl:89 ../vhffs-panel/public/lastgroups.pl:77
+#: ../vhffs-panel/public/user.pl:118 ../vhffs-panel/public/lastgroups.pl:106
+#: ../vhffs-panel/public/lastusers.pl:115
+#: ../vhffs-panel/public/allwebsites.pl:102 ../vhffs-panel/public/index.pl:84
+#: ../vhffs-panel/public/group.pl:226 ../vhffs-panel/public/allgroups.pl:114
msgid "Search:"
msgstr ""
-#: ../vhffs-panel/dns/create.pl:40 ../vhffs-panel/cvs/create.pl:39
-#: ../vhffs-panel/group/create.pl:34 ../vhffs-panel/svn/create.pl:45
-#: ../vhffs-panel/mailinglist/create.pl:70 ../vhffs-panel/web/create.pl:49
-#: ../vhffs-panel/mail/create.pl:39 ../vhffs-panel/pgsql/create.pl:42
-#: ../vhffs-panel/admin/mail/edit.pl:72 ../vhffs-panel/admin/pgsql/edit.pl:71
-#: ../vhffs-panel/admin/cvs/edit.pl:70 ../vhffs-panel/admin/group/edit.pl:71
-#: ../vhffs-panel/admin/mysql/edit.pl:71
-#: ../vhffs-panel/admin/object/edit.pl:67 ../vhffs-panel/admin/web/edit.pl:74
-#: ../vhffs-panel/admin/user/edit.pl:80
-#: ../vhffs-panel/admin/broadcast_view.pl:69
-#: ../vhffs-panel/admin/broadcast_list.pl:68
-#: ../vhffs-panel/largefile/create.pl:41 ../vhffs-panel/mysql/create.pl:40
-#: ../vhffs-panel/alert.pl:40
+#: ../vhffs-panel/mailinglist/create.pl:101 ../vhffs-panel/svn/create.pl:76
+#: ../vhffs-panel/dns/create.pl:41 ../vhffs-panel/pgsql/create.pl:73
+#: ../vhffs-panel/group/create.pl:65 ../vhffs-panel/repository/create.pl:71
+#: ../vhffs-panel/alert.pl:71 ../vhffs-panel/admin/user/edit.pl:111
+#: ../vhffs-panel/admin/pgsql/edit.pl:102
+#: ../vhffs-panel/admin/group/edit.pl:100
+#: ../vhffs-panel/admin/broadcast_list.pl:99
+#: ../vhffs-panel/admin/repository/edit.pl:100
+#: ../vhffs-panel/admin/object/edit.pl:98
+#: ../vhffs-panel/admin/broadcast_view.pl:100
+#: ../vhffs-panel/admin/web/edit.pl:105 ../vhffs-panel/admin/mysql/edit.pl:103
+#: ../vhffs-panel/admin/cvs/edit.pl:101 ../vhffs-panel/admin/mail/edit.pl:103
+#: ../vhffs-panel/web/create.pl:80 ../vhffs-panel/mysql/create.pl:71
+#: ../vhffs-panel/cvs/create.pl:70 ../vhffs-panel/mail/create.pl:70
msgid "Send"
msgstr ""
-#: ../vhffs-panel/admin/broadcast.pl:45
+#: ../vhffs-panel/admin/broadcast.pl:76
msgid "Send an email to all hosted people"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:258
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:288
msgid "Send an email with the subject \"help\" to the following address: \n"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:138
+#: ../vhffs-panel/acl/view.pl:170
msgid "Send it"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:77 ../vhffs-panel/group/prefs.pl:78
+#: ../vhffs-panel/group/prefs.pl:108 ../vhffs-panel/group/prefs.pl:109
msgid "Send logo"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:79 ../vhffs-panel/user/prefs.pl:81
+#: ../vhffs-panel/user/prefs.pl:112 ../vhffs-panel/user/prefs.pl:114
msgid "Send my avatar"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:405
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:435
msgid "September"
msgstr ""
-#: ../vhffs-panel/admin/mysql/edit.pl:64 ../vhffs-panel/admin/mysql/show.pl:62
-#: ../vhffs-panel/admin/web/edit.pl:64 ../vhffs-panel/admin/web/show.pl:63
+#: ../vhffs-panel/admin/web/edit.pl:95 ../vhffs-panel/admin/web/show.pl:94
+#: ../vhffs-panel/admin/web/list.pl:78 ../vhffs-panel/admin/mysql/edit.pl:95
+#: ../vhffs-panel/admin/mysql/show.pl:93
msgid "Servername"
msgstr ""
-#: ../vhffs-panel/web/web_submit.pl:46
+#: ../vhffs-panel/web/web_submit.pl:77
msgid "Servername error. Please enter a valid servername"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:67 ../vhffs-panel/admin/user/show.pl:68
+#: ../vhffs-panel/admin/user/edit.pl:98 ../vhffs-panel/admin/user/show.pl:99
msgid "Shell"
msgstr ""
-#: ../vhffs-panel/admin/cvs/show.pl:61
+#: ../vhffs-panel/admin/cvs/show.pl:92
msgid "Show CVS"
msgstr ""
-#: ../vhffs-panel/admin/group/show.pl:61
+#: ../vhffs-panel/admin/repository/show.pl:92
+msgid "Show Download repository"
+msgstr ""
+
+#: ../vhffs-panel/admin/group/show.pl:91
msgid "Show Group"
msgstr ""
-#: ../vhffs-panel/admin/mail/show.pl:63
+#: ../vhffs-panel/admin/mail/show.pl:94
msgid "Show Mail Domain"
msgstr ""
-#: ../vhffs-panel/admin/mysql/show.pl:60
+#: ../vhffs-panel/admin/mysql/show.pl:91
msgid "Show MySQL database"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/show.pl:61
+#: ../vhffs-panel/admin/pgsql/show.pl:92
msgid "Show PostgreSQL database"
msgstr ""
-#: ../vhffs-panel/admin/user/show.pl:63
+#: ../vhffs-panel/admin/user/show.pl:94
msgid "Show User"
msgstr ""
-#: ../vhffs-panel/admin/web/show.pl:61
+#: ../vhffs-panel/admin/web/show.pl:92
msgid "Show Web Area"
msgstr ""
-#: ../vhffs-panel/public/index.pl:40
+#: ../vhffs-panel/public/index.pl:69
#, perl-format
msgid "Show me all groups on %s"
msgstr ""
-#: ../vhffs-panel/public/index.pl:44
+#: ../vhffs-panel/public/index.pl:73
msgid "Show me all websites"
msgstr ""
-#: ../vhffs-panel/public/index.pl:39
+#: ../vhffs-panel/public/index.pl:68
#, perl-format
msgid "Show me last groups on %s"
msgstr ""
-#: ../vhffs-panel/public/index.pl:33
+#: ../vhffs-panel/public/index.pl:62
#, perl-format
msgid "Show me last users on %s"
msgstr ""
-#: ../vhffs-panel/public/index.pl:42
+#: ../vhffs-panel/public/index.pl:71
msgid "Show me this group according to this username"
msgstr ""
-#: ../vhffs-panel/public/index.pl:35
+#: ../vhffs-panel/public/index.pl:64
msgid "Show me this user according to this username"
msgstr ""
-#: ../vhffs-panel/admin/cvs/list.pl:81
+#: ../vhffs-panel/admin/cvs/list.pl:102
msgid "Show this CVS repository"
msgstr ""
-#: ../vhffs-panel/admin/mysql/list.pl:96
+#: ../vhffs-panel/admin/repository/list.pl:104
+msgid "Show this Download repository"
+msgstr ""
+
+#: ../vhffs-panel/admin/mysql/list.pl:103
msgid "Show this MySQL area"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/list.pl:96
+#: ../vhffs-panel/admin/pgsql/list.pl:104
msgid "Show this PostgreSQL database"
msgstr ""
-#: ../vhffs-panel/admin/group/list.pl:83
+#: ../vhffs-panel/admin/web/list.pl:94
+msgid "Show this Website"
+msgstr ""
+
+#: ../vhffs-panel/admin/group/list.pl:104
msgid "Show this group"
msgstr ""
-#: ../vhffs-panel/admin/mailing/list.pl:89
+#: ../vhffs-panel/admin/mailing/list.pl:99
msgid "Show this list"
msgstr ""
-#: ../vhffs-panel/admin/mail/list.pl:81
+#: ../vhffs-panel/admin/mail/list.pl:106
msgid "Show this mail domain"
msgstr ""
-#: ../vhffs-panel/admin/user/list.pl:84
+#: ../vhffs-panel/admin/user/list.pl:94
msgid "Show this user"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:89
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:39
-#: ../vhffs-api/src/Vhffs/Panel/Group.pm:113
-msgid "Show/Hide"
+#: ../vhffs-panel/mailinglist/prefs.pl:123
+msgid "Signature"
msgstr ""
-#: ../vhffs-panel/public/largefile.pl:80 ../vhffs-panel/public/largefile.pl:85
-#: ../vhffs-panel/largefile/prefs.pl:93
-msgid "Size"
-msgstr ""
-
-#: ../vhffs-panel/largefile/create.pl:35
-msgid "Size (in Mo)"
-msgstr ""
-
-#: ../vhffs-panel/largefile/submit.pl:56
-msgid "Size is only a number (in Mo)"
-msgstr ""
-
-#: ../vhffs-panel/acl/add_acl_user.pl:75
-#: ../vhffs-panel/acl/add_acl_group.pl:75 ../vhffs-panel/acl/submit.pl:88
+#: ../vhffs-panel/acl/submit.pl:115 ../vhffs-panel/acl/add_acl_group.pl:102
+#: ../vhffs-panel/acl/add_acl_user.pl:102
msgid "Sorry, can't add ACL"
msgstr ""
-#: ../vhffs-panel/acl/submit.pl:77
+#: ../vhffs-panel/acl/submit.pl:104
msgid "Sorry, can't delete this ACL"
msgstr ""
-#: ../vhffs-panel/mail/spambox.pl:78
+#: ../vhffs-panel/mail/spambox.pl:101
msgid "Spam protection is not allowed"
msgstr ""
-#: ../vhffs-panel/mail/spambox.pl:97
+#: ../vhffs-panel/mail/spambox.pl:114
#, perl-format
msgid "Spam status updated for box %s"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:56
+#: ../vhffs-panel/admin/svn/list.pl:78 ../vhffs-panel/admin/mailing/list.pl:88
+#: ../vhffs-panel/admin/user/list.pl:81 ../vhffs-panel/admin/dns/list.pl:89
+#: ../vhffs-panel/admin/pgsql/list.pl:89 ../vhffs-panel/admin/group/list.pl:91
+#: ../vhffs-panel/admin/repository/list.pl:90
+#: ../vhffs-panel/admin/object/list.pl:89
+#: ../vhffs-panel/admin/broadcast_view.pl:87
+#: ../vhffs-panel/admin/web/list.pl:80 ../vhffs-panel/admin/mysql/list.pl:90
+#: ../vhffs-panel/admin/cvs/list.pl:91 ../vhffs-panel/admin/mail/list.pl:89
msgid "State"
msgstr ""
-#: ../vhffs-panel/admin/mail/edit.pl:70 ../vhffs-panel/admin/mail/show.pl:70
-#: ../vhffs-panel/admin/pgsql/edit.pl:69 ../vhffs-panel/admin/pgsql/show.pl:67
-#: ../vhffs-panel/admin/largefile/list.pl:84
-#: ../vhffs-panel/admin/cvs/edit.pl:68 ../vhffs-panel/admin/cvs/show.pl:67
-#: ../vhffs-panel/admin/group/edit.pl:69 ../vhffs-panel/admin/group/show.pl:68
-#: ../vhffs-panel/admin/mysql/edit.pl:69 ../vhffs-panel/admin/mysql/show.pl:66
-#: ../vhffs-panel/admin/mysql/show.pl:68
-#: ../vhffs-panel/admin/object/edit.pl:65 ../vhffs-panel/admin/web/edit.pl:70
-#: ../vhffs-panel/admin/web/show.pl:69 ../vhffs-panel/admin/user/edit.pl:106
-#: ../vhffs-panel/admin/user/show.pl:79
+#: ../vhffs-panel/admin/user/edit.pl:137 ../vhffs-panel/admin/user/show.pl:110
+#: ../vhffs-panel/admin/pgsql/edit.pl:100
+#: ../vhffs-panel/admin/pgsql/show.pl:98 ../vhffs-panel/admin/group/edit.pl:98
+#: ../vhffs-panel/admin/group/show.pl:98
+#: ../vhffs-panel/admin/repository/edit.pl:98
+#: ../vhffs-panel/admin/repository/show.pl:97
+#: ../vhffs-panel/admin/object/edit.pl:96 ../vhffs-panel/admin/web/edit.pl:101
+#: ../vhffs-panel/admin/web/show.pl:100 ../vhffs-panel/admin/mysql/edit.pl:101
+#: ../vhffs-panel/admin/mysql/show.pl:97 ../vhffs-panel/admin/mysql/show.pl:99
+#: ../vhffs-panel/admin/cvs/edit.pl:99 ../vhffs-panel/admin/cvs/show.pl:98
+#: ../vhffs-panel/admin/mail/edit.pl:101 ../vhffs-panel/admin/mail/show.pl:101
msgid "Status"
msgstr ""
-#: ../vhffs-panel/admin/su.pl:48
+#: ../vhffs-panel/admin/su.pl:79
msgid "Su !"
msgstr ""
-#: ../vhffs-panel/panel.pl:52
-#, perl-format
-msgid "Su successfull with name %s "
-msgstr ""
-
-#: ../vhffs-panel/dns/prefs.pl:128
+#: ../vhffs-panel/dns/prefs.pl:159
msgid "Subdomain name"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:55
-#: ../vhffs-panel/admin/broadcast.pl:47
+#: ../vhffs-panel/admin/broadcast.pl:78
+#: ../vhffs-panel/admin/broadcast_view.pl:86
msgid "Subject"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:78
+#: ../vhffs-listengine/src/archives/show_msg.pl:109
msgid "Subject: "
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:120 ../vhffs-panel/dns/prefs.pl:126
-#: ../vhffs-panel/dns/prefs.pl:138
+#: ../vhffs-panel/dns/prefs.pl:151 ../vhffs-panel/dns/prefs.pl:157
+#: ../vhffs-panel/dns/prefs.pl:169
msgid "Submit"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:56
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:90
msgid "Submit a bug"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:44 ../vhffs-panel/subscribe_complete.pl:61
-#: ../vhffs-panel/subscribe_complete.pl:67
-#: ../vhffs-panel/subscribe_complete.pl:74
-#: ../vhffs-panel/subscribe_complete.pl:81
-#: ../vhffs-panel/subscribe_complete.pl:88
-#: ../vhffs-panel/subscribe_complete.pl:95
-#: ../vhffs-panel/subscribe_complete.pl:102
-#: ../vhffs-panel/subscribe_complete.pl:109
-#: ../vhffs-panel/subscribe_complete.pl:116
-#: ../vhffs-panel/subscribe_complete.pl:123
-#: ../vhffs-panel/subscribe_complete.pl:130
-#: ../vhffs-panel/subscribe_complete.pl:137
-#: ../vhffs-panel/subscribe_complete.pl:144
-#: ../vhffs-panel/subscribe_complete.pl:151
-#: ../vhffs-panel/subscribe_complete.pl:158
-#: ../vhffs-panel/subscribe_complete.pl:165
-#: ../vhffs-panel/subscribe_complete.pl:220 ../vhffs-panel/auth.pl:36
+#: ../vhffs-panel/subscribe.pl:206 ../vhffs-panel/subscribe.pl:215
+#: ../vhffs-panel/auth.pl:62
msgid "Subscribe"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:106
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:136
#, perl-format
msgid "Subscribe to the list %s is forbidden\n"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:143
+#: ../vhffs-panel/mailinglist/prefs.pl:178
msgid "Subscribed. Waiting for confirmation"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:142
+#: ../vhffs-panel/mailinglist/prefs.pl:177
msgid "Subscriber"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:34
+#: ../vhffs-panel/subscribe.pl:196
msgid "Subscription"
msgstr ""
-#: ../vhffs-panel/subscribe.pl:33
-msgid "Subscription "
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:102
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:131
msgid "Subversion Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:117
+#: ../vhffs-api/src/Vhffs/Panel/Svn.pm:143
msgid "Subversion repository"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:274
+#: ../vhffs-panel/admin/moderation.pl:305
msgid "Subversion repository awaiting validation"
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:95
+#: ../vhffs-panel/object/upavatar.pl:126
msgid "Successfull create or replace avatar"
msgstr ""
-#: ../vhffs-panel/mailinglist/add_sub.pl:78
+#: ../vhffs-panel/mailinglist/add_sub.pl:105
msgid "Successfully added"
msgstr ""
-#: ../vhffs-panel/mailinglist/del_member.pl:78
+#: ../vhffs-panel/mailinglist/del_member.pl:105
msgid "Successfully deleted"
msgstr ""
-#: ../vhffs-panel/group/join_group.pl:59
+#: ../vhffs-panel/group/join_group.pl:86
msgid ""
"Sucessfully added this user to this group. Please wait while robots add him"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:352
-#: ../vhffs-panel/admin/mail/edit.pl:131 ../vhffs-panel/admin/mail/edit.pl:132
-#: ../vhffs-panel/admin/pgsql/edit.pl:90 ../vhffs-panel/admin/pgsql/edit.pl:91
-#: ../vhffs-panel/admin/cvs/edit.pl:99 ../vhffs-panel/admin/cvs/edit.pl:100
-#: ../vhffs-panel/admin/group/edit.pl:92 ../vhffs-panel/admin/group/edit.pl:93
-#: ../vhffs-panel/admin/mysql/edit.pl:90 ../vhffs-panel/admin/mysql/edit.pl:91
-#: ../vhffs-panel/admin/object/edit.pl:90
-#: ../vhffs-panel/admin/object/edit.pl:91 ../vhffs-panel/admin/web/edit.pl:103
-#: ../vhffs-panel/admin/web/edit.pl:104 ../vhffs-panel/admin/user/edit.pl:114
+#: ../vhffs-panel/admin/user/edit.pl:145
+#: ../vhffs-panel/admin/pgsql/edit.pl:121
+#: ../vhffs-panel/admin/pgsql/edit.pl:122
+#: ../vhffs-panel/admin/group/edit.pl:121
+#: ../vhffs-panel/admin/group/edit.pl:122
+#: ../vhffs-panel/admin/repository/edit.pl:121
+#: ../vhffs-panel/admin/repository/edit.pl:122
+#: ../vhffs-panel/admin/object/edit.pl:121
+#: ../vhffs-panel/admin/object/edit.pl:122
+#: ../vhffs-panel/admin/web/edit.pl:134 ../vhffs-panel/admin/web/edit.pl:135
+#: ../vhffs-panel/admin/mysql/edit.pl:122
+#: ../vhffs-panel/admin/mysql/edit.pl:123 ../vhffs-panel/admin/cvs/edit.pl:130
+#: ../vhffs-panel/admin/cvs/edit.pl:131 ../vhffs-panel/admin/mail/edit.pl:162
+#: ../vhffs-panel/admin/mail/edit.pl:163
msgid "Suspended"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:356
-#: ../vhffs-panel/admin/user/edit.pl:115
+#: ../vhffs-panel/admin/user/edit.pl:146
msgid "Suspended before deletion"
msgstr ""
-#: ../vhffs-panel/mail/create.pl:40
+#: ../vhffs-panel/mail/create.pl:71
msgid "Tell us what the use of this mail space will be"
msgstr ""
-#: ../vhffs-panel/mailinglist/create.pl:71
+#: ../vhffs-panel/mailinglist/create.pl:102
msgid "Tell us what the use of this mailing list will be"
msgstr ""
-#: ../vhffs-panel/web/create.pl:50
+#: ../vhffs-panel/web/create.pl:81
msgid "Tell us what the use of this web space will be"
msgstr ""
-#: ../vhffs-panel/cvs/cvs_submit.pl:59
+#: ../vhffs-panel/cvs/cvs_submit.pl:88
msgid "The CVS object was successfully created !"
msgstr ""
-#: ../vhffs-panel/dns/dns_submit.pl:48
+#: ../vhffs-panel/dns/dns_submit.pl:76
msgid "The DNS object was successfully created !"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:50
-#: ../vhffs-robots/src/refused_cvs.pl:51
-#: ../vhffs-robots/src/refused_postgres.pl:50
-#: ../vhffs-robots/src/refused_web.pl:50
-#: ../vhffs-robots/src/refused_mail.pl:50
-#: ../vhffs-robots/src/refused_dns.pl:50
-#: ../vhffs-robots/src/refused_mysql.pl:50
-#: ../vhffs-robots/src/refused_svn.pl:50 ../vhffs-robots/src/refused_ml.pl:50
-#: ../vhffs-robots/src/refused_groups.pl:50 ../vhffs-irc/modobot.pl:370
-#: ../vhffs-panel/admin/moderation_submit.pl:78
+#: ../vhffs-panel/repository/repository_submit.pl:89
+msgid "The Download repository object was successfully created !"
+msgstr ""
+
+#: ../vhffs-robots/src/refused_ml.pl:78 ../vhffs-robots/src/refused_mail.pl:80
+#: ../vhffs-robots/src/refused_postgres.pl:81
+#: ../vhffs-robots/src/refused_cvs.pl:77 ../vhffs-robots/src/refused_web.pl:76
+#: ../vhffs-robots/src/refused_mysql.pl:51
+#: ../vhffs-robots/src/refused_svn.pl:47
+#: ../vhffs-robots/src/refused_groups.pl:76
+#: ../vhffs-robots/src/refused_repository.pl:81
+#: ../vhffs-robots/src/refused_dns.pl:80
msgid "The Moderator and Admin team"
msgstr ""
-#: ../vhffs-panel/mysql/submit.pl:70
+#: ../vhffs-panel/mysql/submit.pl:99
msgid "The MySQL object was successfully created !"
msgstr ""
-#: ../vhffs-panel/pgsql/pgsql_submit.pl:66
+#: ../vhffs-panel/pgsql/pgsql_submit.pl:95
msgid "The PostgreSQL object was successfully created !"
msgstr ""
-#: ../vhffs-panel/svn/svn_submit.pl:66
+#: ../vhffs-panel/svn/svn_submit.pl:83
msgid "The Subversion object was successfully created !"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:82
+#: ../vhffs-panel/user/prefs.pl:115
msgid ""
"The avatar is a pictures that describes you. You can upload an PNG image and "
"use it as avatar. This image will then appear in the public section."
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:79
+#: ../vhffs-panel/group/prefs.pl:110
msgid "The avatar is an image to describe the group"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:152
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:182
msgid "The confirmation code was wrong\n"
msgstr ""
-#: ../vhffs-panel/mysql/submit.pl:60
+#: ../vhffs-panel/mysql/submit.pl:91
msgid "The database name is not valid"
msgstr ""
-#: ../vhffs-panel/mysql/submit.pl:48
+#: ../vhffs-panel/mysql/submit.pl:79
msgid "The database name is too long. There is a 32 character limit"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:340
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:370
#, perl-format
msgid ""
"The following address %s is not allowed to execute commands on the list %s\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:168
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:198
#, perl-format
msgid "The following address %s is not on the list %s\n"
msgstr ""
-#: ../vhffs-panel/acl/add_acl_group.pl:63
+#: ../vhffs-panel/acl/add_acl_group.pl:90
msgid "The group does not exist"
msgstr ""
-#: ../vhffs-panel/group/project_submit.pl:47
+#: ../vhffs-panel/group/project_submit.pl:78
msgid "The groupname can have no more than 12 caracters."
msgstr ""
-#: ../vhffs-panel/group/project_submit.pl:55
+#: ../vhffs-panel/group/project_submit.pl:74
msgid ""
"The groupname should contain at least 3 caracters and must contain only "
-"letters or numbers"
-msgstr ""
-
-#: ../vhffs-panel/group/project_submit.pl:43
-msgid ""
-"The groupname should contain at least 3 caracters and must contain only "
"letters or numbers in lower case"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:229
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:259
#, perl-format
msgid ""
"The listengine language preference was changed for the following address %"
"s.\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:277
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:307
msgid "The message does not exists or was moderated before you.\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:274
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:304
#, perl-format
msgid "The message with the following id %s"
msgstr ""
-#: ../vhffs-panel/largefile/submit.pl:62
-msgid "The new file has been created. Please wait mail."
-msgstr ""
-
-#: ../vhffs-panel/mysql/submit.pl:64
+#: ../vhffs-panel/mysql/submit.pl:95
msgid "The password is not valid"
msgstr ""
-#: ../vhffs-panel/pgsql/create.pl:39 ../vhffs-panel/mysql/create.pl:34
+#: ../vhffs-panel/pgsql/create.pl:70 ../vhffs-panel/mysql/create.pl:65
#, perl-format
msgid ""
"The prefix of your databases is constant, so the names of your databases "
@@ -3448,1245 +3421,1272 @@
"s_DBNAME"
msgstr ""
-#: ../vhffs-panel/svn/svn_submit.pl:45
+#: ../vhffs-panel/svn/svn_submit.pl:73
msgid ""
"The repository name is too short. It must contains at least 3 caracters, and "
"must only contain letters and numbers"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:93
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:123
msgid ""
"The state of you subscription was not changed, you are always a subscriber\n"
msgstr ""
-#: ../vhffs-panel/acl/add_acl_user.pl:63
-msgid "The user does not exist"
-msgstr ""
-
-#: ../vhffs-panel/user/prefs.pl:58
+#: ../vhffs-panel/user/prefs.pl:89
msgid "Theme"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:237
+#: ../vhffs-panel/user/prefs_save.pl:254
msgid ""
"There is a problem with the address you filled in your profile, unable to "
"add forwarding"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:140
+#: ../vhffs-panel/user/prefs.pl:177
msgid "There is two possible usages :"
msgstr ""
-#: ../vhffs-panel/cvs/delete.pl:59
+#: ../vhffs-panel/cvs/delete.pl:90
msgid "This CVS repository will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/cvs/delete.pl:72
+#: ../vhffs-panel/cvs/delete.pl:103
msgid "This CVS will be delete"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:99 ../vhffs-panel/cvs/prefs.pl:76
-#: ../vhffs-panel/group/prefs.pl:67 ../vhffs-panel/svn/prefs.pl:93
-#: ../vhffs-panel/mailinglist/prefs.pl:166 ../vhffs-panel/web/prefs.pl:96
-#: ../vhffs-panel/mail/prefs.pl:100 ../vhffs-panel/pgsql/prefs.pl:77
-#: ../vhffs-panel/largefile/prefs.pl:100 ../vhffs-panel/mysql/prefs.pl:84
+#: ../vhffs-panel/pgsql/delete.pl:73 ../vhffs-panel/pgsql/prefs_save.pl:77
+msgid "This DB doesn't exist in VHFFS database"
+msgstr ""
+
+#: ../vhffs-panel/repository/delete.pl:90
+msgid "This Download repository will NOT be deleted"
+msgstr ""
+
+#: ../vhffs-panel/repository/delete.pl:103
+msgid "This Download repository will be deleted"
+msgstr ""
+
+#: ../vhffs-panel/mailinglist/prefs.pl:201 ../vhffs-panel/svn/prefs.pl:123
+#: ../vhffs-panel/dns/prefs.pl:130 ../vhffs-panel/pgsql/prefs.pl:108
+#: ../vhffs-panel/group/prefs.pl:98 ../vhffs-panel/repository/prefs.pl:103
+#: ../vhffs-panel/web/prefs.pl:127 ../vhffs-panel/mysql/prefs.pl:115
+#: ../vhffs-panel/cvs/prefs.pl:107 ../vhffs-panel/mail/prefs.pl:131
msgid ""
"This action is non-reversible. All services associated to this project will "
"be DESTROYED."
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:73
+#: ../vhffs-panel/user/prefs.pl:102
msgid "This action is non-reversible. WHEN YOU DELETE IT, YOU CANNOT CANCEL."
msgstr ""
-#: ../vhffs-panel/mail/add_account.pl:73
+#: ../vhffs-panel/mail/add_account.pl:104
msgid ""
"This box already exists for this domain or parameters are not valid. Check "
"your domain."
msgstr ""
-#: ../vhffs-panel/mail/add_account.pl:83
+#: ../vhffs-panel/mail/add_account.pl:108
msgid "This box has been successfully added to this domain"
msgstr ""
-#: ../vhffs-panel/pgsql/delete.pl:62
+#: ../vhffs-panel/pgsql/delete.pl:93
msgid "This database cannot be deleted"
msgstr ""
-#: ../vhffs-panel/mysql/delete.pl:41
+#: ../vhffs-panel/mysql/delete.pl:72
msgid "This database doesn't exist in VHFFS database"
msgstr ""
-#: ../vhffs-panel/mysql/prefs_save.pl:44
+#: ../vhffs-panel/mysql/prefs_save.pl:75
msgid "This database doesn't exist on VHFFS"
msgstr ""
-#: ../vhffs-panel/mysql/delete.pl:53
+#: ../vhffs-panel/mysql/delete.pl:84
msgid "This database will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/dns/dns_type_submit.pl:42
+#: ../vhffs-panel/dns/dns_type_submit.pl:74
msgid "This domain name doesn't exist in the VHFFS database"
msgstr ""
-#: ../vhffs-panel/dns/delete.pl:80
+#: ../vhffs-panel/dns/delete.pl:111
msgid "This domain will NOT be DELETED from Vhffs platform"
msgstr ""
-#: ../vhffs-panel/dns/delete.pl:75
+#: ../vhffs-panel/dns/delete.pl:106
msgid "This domain will be DELETED from Vhffs platform"
msgstr ""
-#: ../vhffs-panel/mail/add_forward.pl:75
-msgid "This forward has been successfully added to this domain"
-msgstr ""
-
-#: ../vhffs-panel/group/project_submit.pl:60
-msgid "This group already exists"
-msgstr ""
-
-#: ../vhffs-panel/group/prefs_save.pl:56
+#: ../vhffs-panel/group/prefs_save.pl:82
msgid "This group is not activated yet"
msgstr ""
-#: ../vhffs-panel/group/delete.pl:60
+#: ../vhffs-panel/group/delete.pl:91
msgid "This group will be deleted"
msgstr ""
-#: ../vhffs-panel/mail/save_catchall.pl:59
+#: ../vhffs-panel/mail/save_catchall.pl:90
msgid "This is not a correct mail address"
msgstr ""
-#: ../vhffs-panel/mail/delete.pl:71
+#: ../vhffs-panel/mail/delete.pl:102
msgid "This mail domain WILL BE DELETED"
msgstr ""
-#: ../vhffs-panel/mail/delete.pl:59
+#: ../vhffs-panel/mail/delete.pl:90
msgid "This mail domain will NOT be DELETED"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:75
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:105
#, perl-format
msgid ""
"This mail must contains the following subject : \"confirm unsubscribe %s\"\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:57
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:87
#, perl-format
msgid "This mail must have the following subject : \"confirm subscribe %s\"\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:357
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:387
#, perl-format
msgid "This mail was sent by %s with the following subject: \n"
msgstr ""
-#: ../vhffs-panel/mailinglist/add_sub.pl:74
+#: ../vhffs-panel/mailinglist/add_sub.pl:101
msgid "This member already exists on this list !"
msgstr ""
-#: ../vhffs-panel/admin/object/delete_avatar.pl:73
+#: ../vhffs-panel/admin/object/delete_avatar.pl:104
msgid "This object does not have an avatar"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:44
+#: ../vhffs-panel/group/prefs.pl:75
msgid "This object is not functional yet. Please wait creation or moderation."
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:68 ../vhffs-panel/cvs/prefs_save.pl:55
-#: ../vhffs-panel/cvs/delete.pl:55 ../vhffs-panel/group/delete.pl:43
-#: ../vhffs-panel/svn/prefs_save.pl:55 ../vhffs-panel/svn/delete.pl:54
-#: ../vhffs-panel/mailinglist/save_options.pl:65
-#: ../vhffs-panel/mailinglist/del_member.pl:60
-#: ../vhffs-panel/mailinglist/prefs.pl:63
-#: ../vhffs-panel/mailinglist/add_sub.pl:60
-#: ../vhffs-panel/mailinglist/change_right.pl:62
-#: ../vhffs-panel/mailinglist/delete.pl:59 ../vhffs-panel/web/prefs_save.pl:51
-#: ../vhffs-panel/web/prefs.pl:49 ../vhffs-panel/mail/delete_forward.pl:58
-#: ../vhffs-panel/mail/change_forward.pl:66
-#: ../vhffs-panel/mail/save_catchall.pl:49 ../vhffs-panel/mail/spambox.pl:66
-#: ../vhffs-panel/mail/spamvirus.pl:66 ../vhffs-panel/mail/delete_box.pl:63
-#: ../vhffs-panel/mail/password_box.pl:66
-#: ../vhffs-panel/mail/add_forward.pl:53 ../vhffs-panel/mail/prefs.pl:54
-#: ../vhffs-panel/mail/delete.pl:51 ../vhffs-panel/mail/add_account.pl:58
-#: ../vhffs-panel/admin/mail/delete_forward.pl:66
-#: ../vhffs-panel/admin/mail/change_forward.pl:67
-#: ../vhffs-panel/admin/mail/delete_box.pl:66
-#: ../vhffs-panel/admin/mail/password_box.pl:67
-#: ../vhffs-panel/largefile/delete.pl:53 ../vhffs-panel/mysql/prefs_save.pl:60
-#: ../vhffs-panel/mysql/prefs.pl:59
+#: ../vhffs-panel/mailinglist/delete.pl:86
+#: ../vhffs-panel/mailinglist/save_sig.pl:85
+#: ../vhffs-panel/mailinglist/add_sub.pl:87
+#: ../vhffs-panel/mailinglist/prefs.pl:94
+#: ../vhffs-panel/mailinglist/save_options.pl:92
+#: ../vhffs-panel/mailinglist/change_right.pl:89
+#: ../vhffs-panel/mailinglist/del_member.pl:87 ../vhffs-panel/svn/delete.pl:85
+#: ../vhffs-panel/svn/prefs_save.pl:86 ../vhffs-panel/dns/prefs.pl:99
+#: ../vhffs-panel/group/delete.pl:74 ../vhffs-panel/repository/delete.pl:86
+#: ../vhffs-panel/repository/prefs_save.pl:86
+#: ../vhffs-panel/admin/mail/delete_box.pl:89
+#: ../vhffs-panel/admin/mail/password_box.pl:90
+#: ../vhffs-panel/admin/mail/delete_forward.pl:90
+#: ../vhffs-panel/admin/mail/change_forward.pl:90
+#: ../vhffs-panel/web/prefs.pl:80 ../vhffs-panel/web/prefs_save.pl:82
+#: ../vhffs-panel/mysql/prefs.pl:90 ../vhffs-panel/mysql/prefs_save.pl:91
+#: ../vhffs-panel/cvs/delete.pl:86 ../vhffs-panel/cvs/prefs_save.pl:85
+#: ../vhffs-panel/mail/delete.pl:82 ../vhffs-panel/mail/delete_box.pl:86
+#: ../vhffs-panel/mail/add_account.pl:89 ../vhffs-panel/mail/prefs.pl:85
+#: ../vhffs-panel/mail/save_catchall.pl:80
+#: ../vhffs-panel/mail/password_box.pl:89
+#: ../vhffs-panel/mail/delete_forward.pl:84
+#: ../vhffs-panel/mail/add_forward.pl:83
+#: ../vhffs-panel/mail/change_forward.pl:89
+#: ../vhffs-panel/mail/spamvirus.pl:89 ../vhffs-panel/mail/spambox.pl:89
msgid "This object is not functionnal yet. Please wait creation or moderation."
msgstr ""
-#: ../vhffs-panel/cvs/prefs.pl:61 ../vhffs-panel/svn/prefs.pl:76
-#: ../vhffs-panel/largefile/prefs.pl:77
+#: ../vhffs-panel/svn/prefs.pl:106 ../vhffs-panel/repository/prefs.pl:89
+#: ../vhffs-panel/cvs/prefs.pl:92
msgid ""
"This object is not functionnal yet. Please wait creation, moderation or "
"modification."
msgstr ""
-#: ../vhffs-panel/web/delete.pl:65
+#: ../vhffs-panel/web/delete.pl:96
msgid "This object will BE DELETED"
msgstr ""
-#: ../vhffs-panel/group/delete.pl:47 ../vhffs-panel/web/delete.pl:70
+#: ../vhffs-panel/group/delete.pl:78 ../vhffs-panel/web/delete.pl:101
msgid "This object will NOT be DELETED"
msgstr ""
-#: ../vhffs-panel/dns/delete_cname.pl:72 ../vhffs-panel/dns/delete_mx.pl:72
-#: ../vhffs-panel/dns/delete_ns.pl:71 ../vhffs-panel/dns/delete_a.pl:73
+#: ../vhffs-panel/dns/delete_a.pl:74 ../vhffs-panel/dns/delete_ns.pl:102
+#: ../vhffs-panel/dns/delete_mx.pl:103 ../vhffs-panel/dns/delete_cname.pl:101
msgid "This part of the domain is now removed."
msgstr ""
-#: ../vhffs-panel/object/upavatar.pl:62
+#: ../vhffs-panel/object/upavatar.pl:93
msgid "This platform does not provide avatar support"
msgstr ""
-#: ../vhffs-panel/admin/object/delete_avatar.pl:42
+#: ../vhffs-panel/admin/object/delete_avatar.pl:73
msgid "This platform does not support avatar"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:31
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:34
msgid ""
"This platform is temporary closed. Administrators are performing some "
"maintenances tasks or system has database errors. Please come back in a few "
"minutes to log in."
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:42 ../vhffs-panel/login.pl:48
+#: ../vhffs-panel/login.pl:75 ../vhffs-api/src/Vhffs/Panel/Main.pm:45
msgid ""
"This platform is temporary closed. Administrators are performing some "
"maintenances tasks. Please come back in a few minutes to log in."
msgstr ""
-#: ../vhffs-panel/svn/svn_submit.pl:51
+#: ../vhffs-panel/svn/svn_submit.pl:76
msgid "This repository name already exists"
msgstr ""
-#: ../vhffs-panel/svn/delete.pl:71 ../vhffs-panel/largefile/delete.pl:70
+#: ../vhffs-panel/svn/delete.pl:102
msgid "This repository will be deleted"
msgstr ""
-#: ../vhffs-panel/svn/delete.pl:58 ../vhffs-panel/largefile/delete.pl:57
+#: ../vhffs-panel/svn/delete.pl:89
msgid "This subversion repository will NOT be deleted"
msgstr ""
-#: ../vhffs-panel/acl/view.pl:92
+#: ../vhffs-panel/acl/view.pl:124
msgid "This type of object is not treated in the panel."
msgstr ""
-#: ../vhffs-panel/group/remove_user_from_group.pl:48
+#: ../vhffs-panel/group/remove_user_from_group.pl:79
msgid "This user does not exists "
msgstr ""
-#: ../vhffs-panel/pgsql/prefs_save.pl:46 ../vhffs-panel/pgsql/delete.pl:42
-msgid "This user doesn't exist in VHFFS database"
-msgstr ""
-
-#: ../vhffs-panel/user/delete.pl:45
+#: ../vhffs-panel/user/delete.pl:76
msgid "This user is always in a group"
msgstr ""
-#: ../vhffs-panel/group/remove_user_from_group.pl:57
+#: ../vhffs-panel/group/remove_user_from_group.pl:88
msgid "This user is not in this group "
msgstr ""
-#: ../vhffs-panel/user/delete.pl:56
+#: ../vhffs-panel/user/delete.pl:87
msgid "This user will BE DELETED"
msgstr ""
-#: ../vhffs-panel/user/delete.pl:62
+#: ../vhffs-panel/user/delete.pl:93
msgid "This user will NOT be DELETED"
msgstr ""
-#: ../vhffs-panel/group/remove_user_from_group.pl:61
+#: ../vhffs-panel/group/remove_user_from_group.pl:92
msgid "This user will be removed from this group as soon as possible"
msgstr ""
-#: ../vhffs-panel/web/prefs_save.pl:47 ../vhffs-panel/web/delete.pl:48
+#: ../vhffs-panel/web/delete.pl:79 ../vhffs-panel/web/prefs_save.pl:78
msgid "This web area doesn't exist in VHFFS database"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:360
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:390
msgid "To put this post on the list, send a message \n"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:76
+#: ../vhffs-listengine/src/archives/show_msg.pl:107
msgid "To: "
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:62
+#: ../vhffs-panel/admin/stats.pl:93
msgid "Total Admin Users in VHFFS database"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:89
+#: ../vhffs-panel/admin/stats.pl:120
msgid "Total CVS in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:81
+#: ../vhffs-panel/admin/stats.pl:112
msgid "Total DNS in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:103
+#: ../vhffs-panel/admin/stats.pl:134
msgid "Total Mail domains in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:64
+#: ../vhffs-panel/admin/stats.pl:95
msgid "Total Moderator Users in VHFFS database"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:115
+#: ../vhffs-panel/admin/stats.pl:146
msgid "Total MySQL in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:122
+#: ../vhffs-panel/admin/stats.pl:153
msgid "Total PostgreSQL in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:96
+#: ../vhffs-panel/admin/stats.pl:127
msgid "Total SVN in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:60
+#: ../vhffs-panel/admin/stats.pl:91
msgid "Total Users in VHFFS database"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:74
+#: ../vhffs-panel/admin/stats.pl:105
msgid "Total Web Areas in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:91
+#: ../vhffs-panel/admin/stats.pl:122
msgid "Total activated CVS"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:83
+#: ../vhffs-panel/admin/stats.pl:114
msgid "Total activated DNS"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:105
+#: ../vhffs-panel/admin/stats.pl:136
msgid "Total activated Mail domains"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:117
+#: ../vhffs-panel/admin/stats.pl:148
msgid "Total activated MySQL"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:124
+#: ../vhffs-panel/admin/stats.pl:155
msgid "Total activated PostgreSQL"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:98
+#: ../vhffs-panel/admin/stats.pl:129
msgid "Total activated SVN"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:76
+#: ../vhffs-panel/admin/stats.pl:107
msgid "Total activated Web Areas"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:70
+#: ../vhffs-panel/admin/stats.pl:101
msgid "Total activated groups"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:140
-msgid "Total activated hoted files"
-msgstr ""
-
-#: ../vhffs-panel/admin/stats.pl:132
+#: ../vhffs-panel/admin/stats.pl:163
msgid "Total activated lists"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:68
+#: ../vhffs-panel/admin/stats.pl:99
msgid "Total groups in database"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:109
+#: ../vhffs-panel/admin/stats.pl:140
msgid "Total hosted boxes"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:107
+#: ../vhffs-panel/admin/stats.pl:138
msgid "Total hosted forwards"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:139
-msgid "Total hoted files"
-msgstr ""
-
-#: ../vhffs-panel/admin/stats.pl:130
+#: ../vhffs-panel/admin/stats.pl:161
msgid "Total lists in moderation"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:134
+#: ../vhffs-panel/admin/stats.pl:165
msgid "Total subscribtion for lists"
msgstr ""
-#: ../vhffs-panel/largefile/prefs.pl:96
-msgid "Type"
-msgstr ""
-
-#: ../vhffs-panel/admin/user/edit.pl:71 ../vhffs-panel/admin/user/show.pl:71
+#: ../vhffs-panel/admin/user/edit.pl:102 ../vhffs-panel/admin/user/show.pl:102
msgid "UID"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:63
+#: ../vhffs-panel/admin/object/edit.pl:94
msgid "UID of owner"
msgstr ""
-#: ../vhffs-panel/mysql/prefs_save.pl:64
+#: ../vhffs-api/src/Vhffs/Panel/Repository.pm:135
+msgid "URL"
+msgstr ""
+
+#: ../vhffs-panel/admin/mail/password_box.pl:105
+#, perl-format
+msgid "Unable to change password for box %s (%d)"
+msgstr ""
+
+#: ../vhffs-panel/mail/spambox.pl:110
+#, perl-format
+msgid "Unable to change spam status for %s"
+msgstr ""
+
+#: ../vhffs-panel/mysql/prefs_save.pl:95
msgid "Unable to change this database's password"
msgstr ""
-#: ../vhffs-panel/mail/delete.pl:67
+#: ../vhffs-panel/mail/spamvirus.pl:110
+#, perl-format
+msgid "Unable to change virus protection status for %s"
+msgstr ""
+
+#: ../vhffs-panel/mail/delete_forward.pl:96
+#, perl-format
+msgid "Unable to delete forward %s"
+msgstr ""
+
+#: ../vhffs-panel/admin/mail/delete_forward.pl:105
+#, perl-format
+msgid "Unable to delete forward %s (%d)"
+msgstr ""
+
+#: ../vhffs-panel/mail/delete.pl:98
msgid "Unable to delete this domain"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit_submit.pl:67
-#: ../vhffs-panel/admin/mysql/edit_submit.pl:67
-msgid "Unable to modify the object"
+#: ../vhffs-panel/admin/mail/delete_box.pl:76
+#: ../vhffs-panel/admin/mail/password_box.pl:77
+#: ../vhffs-panel/admin/mail/delete_forward.pl:77
+#: ../vhffs-panel/admin/mail/change_forward.pl:77
+#: ../vhffs-panel/mail/delete.pl:78 ../vhffs-panel/mail/delete_box.pl:73
+#: ../vhffs-panel/mail/prefs.pl:77 ../vhffs-panel/mail/password_box.pl:76
+#: ../vhffs-panel/mail/delete_forward.pl:74
+#: ../vhffs-panel/mail/change_forward.pl:76
+#: ../vhffs-panel/mail/spamvirus.pl:76 ../vhffs-panel/mail/spambox.pl:76
+#, perl-format
+msgid "Unable to get information on mail domain %s"
msgstr ""
-#: ../vhffs-panel/mail/change_forward.pl:87 ../vhffs-panel/mail/spambox.pl:93
-#: ../vhffs-panel/mail/spamvirus.pl:93 ../vhffs-panel/mail/password_box.pl:87
-msgid "Unable to reccord changes on this domain"
+#: ../vhffs-panel/admin/mail/change_forward.pl:105
+#: ../vhffs-panel/mail/change_forward.pl:104
+#, perl-format
+msgid "Unable to modify forward %s (%d)"
msgstr ""
-#: ../vhffs-panel/mail/add_forward.pl:71 ../vhffs-panel/mail/add_account.pl:79
-#: ../vhffs-panel/admin/mail/change_forward.pl:88
+#: ../vhffs-panel/admin/pgsql/edit_submit.pl:98
+#: ../vhffs-panel/admin/mysql/edit_submit.pl:102
+msgid "Unable to modify the object"
+msgstr ""
+
+#: ../vhffs-panel/mail/add_forward.pl:99
msgid "Unable to record changes on this domain"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:50
-#: ../vhffs-listengine/src/archives/archives.pl:110
+#: ../vhffs-listengine/src/archives/archives.pl:141
+#: ../vhffs-listengine/src/archives/show_msg.pl:81
msgid "Undefined list"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:256
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:286
msgid "Unknow command\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:423
+#: ../vhffs-api/src/Vhffs/Functions.pm:391
+#: ../vhffs-api/src/Vhffs/Functions.pm:396
+msgid "Unknown"
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:453
msgid "Unknown month"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:73
-#: ../vhffs-panel/admin/broadcast_list.pl:72
+#: ../vhffs-panel/admin/broadcast_list.pl:103
+#: ../vhffs-panel/admin/broadcast_view.pl:104
msgid "Unknown status"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:199
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:229
#, perl-format
msgid "Unsubscribe for the list %s was not complete.\n"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:229
+#: ../vhffs-panel/admin/user/edit.pl:260
msgid "Update note"
msgstr ""
-#: ../vhffs-panel/dns/modif_a.pl:77
+#: ../vhffs-panel/mailinglist/prefs.pl:125
+msgid "Update signature"
+msgstr ""
+
+#: ../vhffs-panel/dns/modif_a.pl:106
msgid "Updated !"
msgstr ""
-#: ../vhffs-panel/admin/web/edit.pl:71 ../vhffs-panel/admin/web/show.pl:84
+#: ../vhffs-panel/admin/web/edit.pl:102 ../vhffs-panel/admin/web/show.pl:115
msgid "Use Crawl"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:141
+#: ../vhffs-panel/user/prefs.pl:178
#, perl-format
msgid ""
"Use VHFFS servers to manage this mail,<br>you should use use the host pop.%s "
"or imap.%s to fetch your mails"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:147
+#: ../vhffs-panel/user/prefs.pl:184
msgid "Use anti-spam protection"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:155
+#: ../vhffs-panel/user/prefs.pl:192
msgid "Use anti-virus protection"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:67
+#: ../vhffs-panel/web/prefs.pl:98
msgid "Use crawl (useful for web-search engine)"
msgstr ""
-#: ../vhffs-panel/admin/pgsql/edit.pl:65 ../vhffs-panel/admin/pgsql/show.pl:64
-#: ../vhffs-panel/admin/mysql/edit.pl:65 ../vhffs-panel/admin/mysql/show.pl:63
+#: ../vhffs-panel/admin/pgsql/edit.pl:96 ../vhffs-panel/admin/pgsql/show.pl:95
+#: ../vhffs-panel/admin/mysql/edit.pl:96 ../vhffs-panel/admin/mysql/show.pl:94
msgid "User"
msgstr ""
-#: ../vhffs-panel/panel.pl:56
+#: ../vhffs-panel/panel.pl:84
#, perl-format
msgid "User %s does not exists"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:70
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:99
msgid "User Admin"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:54 ../vhffs-panel/user/prefs.pl:45
+#: ../vhffs-panel/user/prefs.pl:76 ../vhffs-api/src/Vhffs/Panel/Menu.pm:88
msgid "User Preferences"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:204
+#: ../vhffs-panel/subscribe.pl:166
msgid "User Successfully created"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:101
+#: ../vhffs-panel/user/prefs_save.pl:132
msgid "User Successfully modified"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:48
+#: ../vhffs-api/src/Vhffs/Panel/Menu.pm:81
msgid "User account : "
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:150
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:237
msgid "User does not exist"
msgstr ""
-#: ../vhffs-panel/public/index.pl:34
+#: ../vhffs-panel/public/index.pl:63
msgid "User public area"
msgstr ""
-#: ../vhffs-panel/group/prefs.pl:73 ../vhffs-panel/acl/view.pl:118
-#: ../vhffs-panel/public/lastusers.pl:44 ../vhffs-panel/public/user.pl:53
-#: ../vhffs-panel/admin/su.pl:47 ../vhffs-panel/user/prefs.pl:47
-#: ../vhffs-panel/subscribe.pl:36 ../vhffs-panel/auth.pl:32
-#: ../vhffs-panel/lost.pl:26
+#: ../vhffs-panel/subscribe.pl:198 ../vhffs-panel/user/prefs.pl:78
+#: ../vhffs-panel/acl/view.pl:150 ../vhffs-panel/group/prefs.pl:104
+#: ../vhffs-panel/admin/user/list.pl:79 ../vhffs-panel/admin/su.pl:78
+#: ../vhffs-panel/public/user.pl:81 ../vhffs-panel/public/lastusers.pl:76
+#: ../vhffs-panel/auth.pl:58 ../vhffs-panel/lost.pl:54
msgid "Username"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs.pl:65 ../vhffs-panel/mysql/prefs.pl:72
+#: ../vhffs-panel/pgsql/prefs.pl:96 ../vhffs-panel/mysql/prefs.pl:103
msgid "Username for this database"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:79
-msgid "Username must contain between 3 and 12 characters"
-msgstr ""
-
-#: ../vhffs-panel/admin/user/edit.pl:64 ../vhffs-panel/admin/user/show.pl:65
+#: ../vhffs-panel/admin/user/edit.pl:95 ../vhffs-panel/admin/user/show.pl:96
msgid "Username:"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:63
-#, perl-format
-msgid "Username: %s\n"
-msgstr ""
-
-#: ../vhffs-panel/public/allgroups.pl:44 ../vhffs-panel/public/group.pl:60
-#: ../vhffs-panel/public/lastgroups.pl:44
+#: ../vhffs-panel/public/lastgroups.pl:73 ../vhffs-panel/public/group.pl:92
+#: ../vhffs-panel/public/allgroups.pl:80
msgid "Users"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:59
+#: ../vhffs-panel/admin/stats.pl:90
msgid "Users stats"
msgstr ""
-#: ../vhffs-panel/auth.pl:28
+#: ../vhffs-panel/auth.pl:54
msgid "VHFFS Login"
msgstr ""
-#: ../vhffs-panel/login.pl:88
+#: ../vhffs-panel/login.pl:106
msgid "VHFFS Login OK"
msgstr ""
-#: ../vhffs-panel/login.pl:57 ../vhffs-panel/login.pl:98
+#: ../vhffs-panel/login.pl:86 ../vhffs-panel/login.pl:116
msgid "VHFFS Login failed"
msgstr ""
-#: ../vhffs-panel/logout.pl:29
+#: ../vhffs-panel/logout.pl:58
msgid "VHFFS Logout"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:208
-msgid "VHFFS Panel"
-msgstr ""
-
-#: ../vhffs-panel/lost_ack.pl:39
+#: ../vhffs-panel/lost_ack.pl:68
msgid "VHFFS Password Lost OK"
msgstr ""
-#: ../vhffs-panel/lost_ack.pl:50
+#: ../vhffs-panel/lost_ack.pl:79
msgid "VHFFS Password Lost failed"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:332
-#: ../vhffs-panel/admin/mail/edit.pl:126 ../vhffs-panel/admin/pgsql/edit.pl:85
-#: ../vhffs-panel/admin/cvs/edit.pl:94 ../vhffs-panel/admin/group/edit.pl:87
-#: ../vhffs-panel/admin/mysql/edit.pl:85
-#: ../vhffs-panel/admin/object/edit.pl:85 ../vhffs-panel/admin/web/edit.pl:98
-#: ../vhffs-panel/admin/user/edit.pl:109
+#: ../vhffs-panel/admin/user/edit.pl:140
+#: ../vhffs-panel/admin/pgsql/edit.pl:116
+#: ../vhffs-panel/admin/group/edit.pl:116
+#: ../vhffs-panel/admin/repository/edit.pl:116
+#: ../vhffs-panel/admin/object/edit.pl:116
+#: ../vhffs-panel/admin/web/edit.pl:129 ../vhffs-panel/admin/mysql/edit.pl:117
+#: ../vhffs-panel/admin/cvs/edit.pl:125 ../vhffs-panel/admin/mail/edit.pl:157
msgid "Validation refused"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:57
+#: ../vhffs-panel/admin/stats.pl:88
msgid "Vhffs Statistics"
msgstr ""
-#: ../vhffs-listengine/src/archives/archives.pl:37
-#: ../vhffs-listengine/src/archives/archives.pl:144
+#: ../vhffs-listengine/src/archives/archives.pl:68
+#: ../vhffs-listengine/src/archives/archives.pl:175
msgid "View"
msgstr ""
-#: ../vhffs-panel/public/group.pl:202
+#: ../vhffs-panel/public/group.pl:207
msgid "View archives"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:283
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:307
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:333
#: ../vhffs-api/src/Vhffs/Panel/Main.pm:359
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:385
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:412
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:438
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:465
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:490
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:383
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:409
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:435
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:461
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:488
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:514
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:540
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:565
msgid "View history"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_view.pl:53
+#: ../vhffs-panel/admin/broadcast_view.pl:84
msgid "View mailing"
msgstr ""
-#: ../vhffs-panel/admin/broadcast_list.pl:58
+#: ../vhffs-panel/admin/broadcast_list.pl:89
msgid "View this mailing"
msgstr ""
-#: ../vhffs-panel/mail/spamvirus.pl:78
+#: ../vhffs-panel/mail/spamvirus.pl:101
msgid "Virus protection is not allowed"
msgstr ""
-#: ../vhffs-panel/mail/spamvirus.pl:97
+#: ../vhffs-panel/mail/spamvirus.pl:114
#, perl-format
msgid "Virus status updated for box %s"
msgstr ""
-#: ../vhffs-panel/admin/stats.pl:73
+#: ../vhffs-panel/admin/stats.pl:104
msgid "WEB stats"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:336
-#: ../vhffs-panel/admin/mail/edit.pl:127 ../vhffs-panel/admin/dns/list.pl:76
-#: ../vhffs-panel/admin/pgsql/edit.pl:86 ../vhffs-panel/admin/pgsql/list.pl:78
-#: ../vhffs-panel/admin/cvs/edit.pl:95 ../vhffs-panel/admin/group/edit.pl:88
-#: ../vhffs-panel/admin/mysql/edit.pl:86 ../vhffs-panel/admin/mysql/list.pl:78
-#: ../vhffs-panel/admin/object/edit.pl:86
-#: ../vhffs-panel/admin/object/list.pl:73 ../vhffs-panel/admin/web/edit.pl:99
-#: ../vhffs-panel/admin/user/edit.pl:110
+#: ../vhffs-panel/admin/user/edit.pl:141
+#: ../vhffs-panel/admin/pgsql/edit.pl:117
+#: ../vhffs-panel/admin/group/edit.pl:117
+#: ../vhffs-panel/admin/repository/edit.pl:117
+#: ../vhffs-panel/admin/object/edit.pl:117
+#: ../vhffs-panel/admin/web/edit.pl:130 ../vhffs-panel/admin/mysql/edit.pl:118
+#: ../vhffs-panel/admin/cvs/edit.pl:126 ../vhffs-panel/admin/mail/edit.pl:158
msgid "Waiting for creation"
msgstr ""
-#: ../vhffs-panel/mailinglist/prefs.pl:144 ../vhffs-panel/admin/dns/list.pl:84
-#: ../vhffs-panel/admin/pgsql/list.pl:86 ../vhffs-panel/admin/mysql/list.pl:86
-#: ../vhffs-panel/admin/object/list.pl:81
+#: ../vhffs-panel/mailinglist/prefs.pl:179
msgid "Waiting for delete"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:360
-#: ../vhffs-panel/admin/mail/edit.pl:133 ../vhffs-panel/admin/pgsql/edit.pl:92
-#: ../vhffs-panel/admin/cvs/edit.pl:101 ../vhffs-panel/admin/group/edit.pl:94
-#: ../vhffs-panel/admin/mysql/edit.pl:92
-#: ../vhffs-panel/admin/object/edit.pl:92 ../vhffs-panel/admin/web/edit.pl:105
-#: ../vhffs-panel/admin/user/edit.pl:116
+#: ../vhffs-panel/admin/user/edit.pl:147
+#: ../vhffs-panel/admin/pgsql/edit.pl:123
+#: ../vhffs-panel/admin/group/edit.pl:123
+#: ../vhffs-panel/admin/repository/edit.pl:123
+#: ../vhffs-panel/admin/object/edit.pl:123
+#: ../vhffs-panel/admin/web/edit.pl:136 ../vhffs-panel/admin/mysql/edit.pl:124
+#: ../vhffs-panel/admin/cvs/edit.pl:132 ../vhffs-panel/admin/mail/edit.pl:164
msgid "Waiting for modification"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:328
-#: ../vhffs-panel/admin/mail/edit.pl:125 ../vhffs-panel/admin/dns/list.pl:88
-#: ../vhffs-panel/admin/pgsql/edit.pl:84 ../vhffs-panel/admin/pgsql/list.pl:90
-#: ../vhffs-panel/admin/cvs/edit.pl:93 ../vhffs-panel/admin/group/edit.pl:86
-#: ../vhffs-panel/admin/mysql/edit.pl:84 ../vhffs-panel/admin/mysql/list.pl:90
-#: ../vhffs-panel/admin/object/edit.pl:84
-#: ../vhffs-panel/admin/object/list.pl:85 ../vhffs-panel/admin/web/edit.pl:97
-#: ../vhffs-panel/admin/user/edit.pl:108
+#: ../vhffs-panel/admin/user/edit.pl:139
+#: ../vhffs-panel/admin/pgsql/edit.pl:115
+#: ../vhffs-panel/admin/group/edit.pl:115
+#: ../vhffs-panel/admin/repository/edit.pl:115
+#: ../vhffs-panel/admin/object/edit.pl:115
+#: ../vhffs-panel/admin/web/edit.pl:128 ../vhffs-panel/admin/mysql/edit.pl:116
+#: ../vhffs-panel/admin/cvs/edit.pl:124 ../vhffs-panel/admin/mail/edit.pl:156
msgid "Waiting for validation"
msgstr ""
-#: ../vhffs-panel/alert.pl:36
+#: ../vhffs-panel/alert.pl:67
msgid "Warn the admin team"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:139
+#: ../vhffs-panel/user/prefs.pl:176
#, perl-format
msgid "We offer you the possibility to have one email box on the domain %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:88
+#: ../vhffs-api/src/Vhffs/Panel/Admin.pm:117
msgid "Web Admin"
msgstr ""
-#: ../vhffs-panel/web/prefs.pl:62
+#: ../vhffs-panel/web/prefs.pl:93
msgid "Web Area Administration"
msgstr ""
-#: ../vhffs-panel/admin/moderation.pl:100
+#: ../vhffs-panel/admin/moderation.pl:131
msgid "Web Area awaiting validation"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Web.pm:106
+#: ../vhffs-api/src/Vhffs/Panel/Web.pm:137
msgid "Web Areas"
msgstr ""
-#: ../vhffs-panel/web/web_submit.pl:57
+#: ../vhffs-panel/web/web_submit.pl:86
msgid "Web area successfully created !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:273
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:349
msgid "Webarea for this group"
msgstr ""
-#: ../vhffs-panel/public/group.pl:90
+#: ../vhffs-panel/public/group.pl:122
msgid "Website for this group"
msgstr ""
-#: ../vhffs-panel/public/index.pl:45
+#: ../vhffs-panel/public/index.pl:74
msgid "Websites area"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:235
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:313
msgid "Welcome"
msgstr ""
-#: ../vhffs-panel/auth.pl:29
+#: ../vhffs-panel/auth.pl:55
#, perl-format
msgid "Welcome on %s"
msgstr ""
-#: ../vhffs-panel/mailinglist/delete.pl:79
+#: ../vhffs-panel/mailinglist/delete.pl:106
msgid "Will be DELETED in a few minutes"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Functions.pm:372
-#: ../vhffs-panel/admin/mail/edit.pl:136 ../vhffs-panel/admin/pgsql/edit.pl:95
-#: ../vhffs-panel/admin/cvs/edit.pl:104 ../vhffs-panel/admin/group/edit.pl:97
-#: ../vhffs-panel/admin/mysql/edit.pl:95
-#: ../vhffs-panel/admin/object/edit.pl:95 ../vhffs-panel/admin/web/edit.pl:108
-#: ../vhffs-panel/admin/user/edit.pl:119
+#: ../vhffs-panel/admin/user/edit.pl:150
+#: ../vhffs-panel/admin/pgsql/edit.pl:126
+#: ../vhffs-panel/admin/group/edit.pl:126
+#: ../vhffs-panel/admin/repository/edit.pl:126
+#: ../vhffs-panel/admin/object/edit.pl:126
+#: ../vhffs-panel/admin/web/edit.pl:139 ../vhffs-panel/admin/mysql/edit.pl:127
+#: ../vhffs-panel/admin/cvs/edit.pl:135 ../vhffs-panel/admin/mail/edit.pl:167
msgid "Will be deleted"
msgstr ""
-#: ../vhffs-panel/auth.pl:49
+#: ../vhffs-panel/auth.pl:74
#, perl-format
msgid "Woah, %s users and %s groups already trust %s"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:108 ../vhffs-panel/cvs/prefs.pl:72
-#: ../vhffs-panel/svn/prefs.pl:89 ../vhffs-panel/web/prefs.pl:84
-#: ../vhffs-panel/admin/cvs/edit.pl:74 ../vhffs-panel/admin/cvs/show.pl:73
+#: ../vhffs-panel/svn/prefs.pl:119 ../vhffs-panel/dns/prefs.pl:139
+#: ../vhffs-panel/admin/cvs/edit.pl:105 ../vhffs-panel/admin/cvs/show.pl:104
+#: ../vhffs-panel/web/prefs.pl:115 ../vhffs-panel/cvs/prefs.pl:103
msgid "Yes"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:101 ../vhffs-panel/cvs/prefs.pl:78
-#: ../vhffs-panel/group/prefs.pl:69 ../vhffs-panel/svn/prefs.pl:95
-#: ../vhffs-panel/mailinglist/prefs.pl:168 ../vhffs-panel/web/prefs.pl:98
-#: ../vhffs-panel/mail/prefs.pl:102 ../vhffs-panel/pgsql/prefs.pl:79
-#: ../vhffs-panel/largefile/prefs.pl:102 ../vhffs-panel/mysql/prefs.pl:86
-#: ../vhffs-panel/user/prefs.pl:75
+#: ../vhffs-panel/mailinglist/prefs.pl:203 ../vhffs-panel/svn/prefs.pl:125
+#: ../vhffs-panel/user/prefs.pl:104 ../vhffs-panel/dns/prefs.pl:132
+#: ../vhffs-panel/pgsql/prefs.pl:110 ../vhffs-panel/group/prefs.pl:100
+#: ../vhffs-panel/repository/prefs.pl:105 ../vhffs-panel/web/prefs.pl:129
+#: ../vhffs-panel/mysql/prefs.pl:117 ../vhffs-panel/cvs/prefs.pl:109
+#: ../vhffs-panel/mail/prefs.pl:133
msgid "Yes I'm sure of what I do"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:185
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:215
msgid "You are not a subscriber on this list.\n"
msgstr ""
-#: ../vhffs-panel/admin/mailing/search.pl:39
-#: ../vhffs-panel/admin/mailing/list.pl:41
-#: ../vhffs-panel/admin/mailing/mailing_submit.pl:43
-#: ../vhffs-panel/admin/mail/search.pl:40 ../vhffs-panel/admin/mail/edit.pl:44
-#: ../vhffs-panel/admin/mail/list.pl:40 ../vhffs-panel/admin/mail/show.pl:44
-#: ../vhffs-panel/admin/dns/search.pl:40 ../vhffs-panel/admin/dns/list.pl:40
-#: ../vhffs-panel/admin/pgsql/search.pl:40
-#: ../vhffs-panel/admin/pgsql/edit.pl:42
-#: ../vhffs-panel/admin/pgsql/edit_submit.pl:42
-#: ../vhffs-panel/admin/pgsql/list.pl:40 ../vhffs-panel/admin/pgsql/show.pl:42
-#: ../vhffs-panel/admin/largefile/search.pl:40
-#: ../vhffs-panel/admin/largefile/list.pl:37
-#: ../vhffs-panel/admin/cvs/search.pl:39 ../vhffs-panel/admin/cvs/edit.pl:42
-#: ../vhffs-panel/admin/cvs/edit_submit.pl:44
-#: ../vhffs-panel/admin/cvs/list.pl:40 ../vhffs-panel/admin/cvs/show.pl:42
-#: ../vhffs-panel/admin/group/search.pl:40
-#: ../vhffs-panel/admin/group/edit.pl:42
-#: ../vhffs-panel/admin/group/edit_submit.pl:47
-#: ../vhffs-panel/admin/group/list.pl:40 ../vhffs-panel/admin/group/show.pl:42
-#: ../vhffs-panel/admin/mysql/search.pl:40
-#: ../vhffs-panel/admin/mysql/edit.pl:42
-#: ../vhffs-panel/admin/mysql/edit_submit.pl:42
-#: ../vhffs-panel/admin/mysql/list.pl:40 ../vhffs-panel/admin/mysql/show.pl:41
-#: ../vhffs-panel/admin/object/search.pl:39
-#: ../vhffs-panel/admin/object/edit.pl:42
-#: ../vhffs-panel/admin/object/edit_submit.pl:42
-#: ../vhffs-panel/admin/object/list.pl:39
-#: ../vhffs-panel/admin/object/delete_avatar.pl:46
-#: ../vhffs-panel/admin/svn/search.pl:41 ../vhffs-panel/admin/svn/list.pl:39
-#: ../vhffs-panel/admin/web/search.pl:40 ../vhffs-panel/admin/web/edit.pl:42
-#: ../vhffs-panel/admin/web/edit_submit.pl:42
-#: ../vhffs-panel/admin/web/list.pl:40 ../vhffs-panel/admin/web/show.pl:42
-#: ../vhffs-panel/admin/user/search.pl:40 ../vhffs-panel/admin/user/edit.pl:42
-#: ../vhffs-panel/admin/user/edit_submit.pl:54
-#: ../vhffs-panel/admin/user/edit_note.pl:44
-#: ../vhffs-panel/admin/user/list.pl:40 ../vhffs-panel/admin/user/show.pl:44
-#: ../vhffs-panel/admin/su.pl:38 ../vhffs-panel/admin/broadcast_view.pl:41
-#: ../vhffs-panel/admin/broadcast_list.pl:39 ../vhffs-panel/admin/stats.pl:50
-#: ../vhffs-panel/admin/broadcast.pl:38
+#: ../vhffs-panel/admin/svn/search.pl:72 ../vhffs-panel/admin/svn/list.pl:61
+#: ../vhffs-panel/admin/broadcast.pl:69
+#: ../vhffs-panel/admin/mailing/mailing_submit.pl:74
+#: ../vhffs-panel/admin/mailing/search.pl:70
+#: ../vhffs-panel/admin/mailing/list.pl:70 ../vhffs-panel/admin/stats.pl:81
+#: ../vhffs-panel/admin/user/edit_submit.pl:85
+#: ../vhffs-panel/admin/user/edit.pl:73 ../vhffs-panel/admin/user/show.pl:75
+#: ../vhffs-panel/admin/user/edit_note.pl:75
+#: ../vhffs-panel/admin/user/search.pl:71 ../vhffs-panel/admin/user/list.pl:63
+#: ../vhffs-panel/admin/dns/search.pl:71 ../vhffs-panel/admin/dns/list.pl:71
+#: ../vhffs-panel/admin/pgsql/edit_submit.pl:73
+#: ../vhffs-panel/admin/pgsql/edit.pl:73 ../vhffs-panel/admin/pgsql/show.pl:73
+#: ../vhffs-panel/admin/pgsql/search.pl:71
+#: ../vhffs-panel/admin/pgsql/list.pl:71
+#: ../vhffs-panel/admin/group/edit_submit.pl:77
+#: ../vhffs-panel/admin/group/edit.pl:71 ../vhffs-panel/admin/group/show.pl:72
+#: ../vhffs-panel/admin/group/search.pl:71
+#: ../vhffs-panel/admin/group/list.pl:72
+#: ../vhffs-panel/admin/broadcast_list.pl:70
+#: ../vhffs-panel/admin/repository/edit_submit.pl:75
+#: ../vhffs-panel/admin/repository/edit.pl:73
+#: ../vhffs-panel/admin/repository/show.pl:73
+#: ../vhffs-panel/admin/repository/search.pl:70
+#: ../vhffs-panel/admin/repository/list.pl:72 ../vhffs-panel/admin/su.pl:69
+#: ../vhffs-panel/admin/object/edit_submit.pl:73
+#: ../vhffs-panel/admin/object/delete_avatar.pl:77
+#: ../vhffs-panel/admin/object/edit.pl:73
+#: ../vhffs-panel/admin/object/search.pl:70
+#: ../vhffs-panel/admin/object/list.pl:71
+#: ../vhffs-panel/admin/broadcast_view.pl:72
+#: ../vhffs-panel/admin/web/edit_submit.pl:73
+#: ../vhffs-panel/admin/web/edit.pl:73 ../vhffs-panel/admin/web/show.pl:73
+#: ../vhffs-panel/admin/web/search.pl:71 ../vhffs-panel/admin/web/list.pl:62
+#: ../vhffs-panel/admin/mysql/edit_submit.pl:72
+#: ../vhffs-panel/admin/mysql/edit.pl:73 ../vhffs-panel/admin/mysql/show.pl:72
+#: ../vhffs-panel/admin/mysql/search.pl:71
+#: ../vhffs-panel/admin/mysql/list.pl:72
+#: ../vhffs-panel/admin/cvs/edit_submit.pl:75
+#: ../vhffs-panel/admin/cvs/edit.pl:73 ../vhffs-panel/admin/cvs/show.pl:73
+#: ../vhffs-panel/admin/cvs/search.pl:70 ../vhffs-panel/admin/cvs/list.pl:73
+#: ../vhffs-panel/admin/mail/edit.pl:75 ../vhffs-panel/admin/mail/show.pl:75
+#: ../vhffs-panel/admin/mail/search.pl:71 ../vhffs-panel/admin/mail/list.pl:71
msgid "You are not allowed to see it"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:91
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:121
#, perl-format
msgid "You ask to be subscribed to the following list: %s\n"
msgstr ""
-#: ../vhffs-panel/dns/prefs.pl:93 ../vhffs-panel/web/prefs.pl:92
-#: ../vhffs-panel/mail/prefs.pl:107
+#: ../vhffs-panel/dns/prefs.pl:124 ../vhffs-panel/web/prefs.pl:123
+#: ../vhffs-panel/mail/prefs.pl:138
msgid ""
"You can Manage rights on this service for each user in the VHFFS database. "
"Please read help before manage it."
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:20
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:50
msgid "You can also send a command list in the mail body.\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:124
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:154
msgid "You can have some help on listengine, sending an email to\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:122
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:152
msgid "You can post on the list now."
msgstr ""
-#: ../vhffs-panel/subscribe.pl:26 ../vhffs-panel/subscribe_complete.pl:59
+#: ../vhffs-panel/subscribe.pl:80
msgid "You cannot subscribe to VHFFS"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:184
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:214
#, perl-format
msgid "You cannot unsubscribe from the list %s\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:169
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:199
msgid "You demand was refused\n"
msgstr ""
-#: ../vhffs-panel/mailinglist/submit.pl:69
+#: ../vhffs-panel/mailinglist/submit.pl:100
msgid "You don't own this domain"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:65
-msgid "You have 24H to put your file on the FTP server. After\n"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:138
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:168
#, perl-format
msgid "You have been successfully removed from the list %s\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:214
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:244
#, perl-format
msgid "You have been successfully removed from the list %s.\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:120
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:150
#, perl-format
msgid "You have been successfully subscribed to the list %s\n"
msgstr ""
-#: ../vhffs-panel/logout.pl:30
+#: ../vhffs-panel/logout.pl:59
msgid "You left your VHFFS session!"
msgstr ""
-#: ../vhffs-panel/lost.pl:24
+#: ../vhffs-panel/lost.pl:52
msgid "You lost your password? You're a bad guy!"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:134
+#: ../vhffs-panel/user/prefs_save.pl:170
msgid "You must choose a method for your mail"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:74
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:104
msgid "You must confirm this request by seding a email\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:56
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:86
msgid "You must confirm your request by sending a confirmation emailn\n"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:128
+#: ../vhffs-panel/subscribe.pl:121
msgid "You must declare a valid mail address"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:93
+#: ../vhffs-panel/subscribe.pl:101
msgid "You must declare your city"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:86
+#: ../vhffs-panel/subscribe.pl:97
msgid "You must declare your country"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:107
+#: ../vhffs-panel/subscribe.pl:109
msgid "You must declare your firstname"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:114
+#: ../vhffs-panel/subscribe.pl:113
msgid "You must declare your lastname"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:121
+#: ../vhffs-panel/subscribe.pl:117
msgid "You must declare your mail address"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:72
+#: ../vhffs-panel/subscribe.pl:89
msgid "You must declare your username"
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:100
+#: ../vhffs-panel/subscribe.pl:105
msgid "You must declare your zipcode"
msgstr ""
-#: ../vhffs-panel/mailinglist/create.pl:50
+#: ../vhffs-panel/mailinglist/create.pl:81
msgid "You need to manage at least a domain to host a mailing-list"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Panel/Main.pm:154
+#: ../vhffs-api/src/Vhffs/Panel/Main.pm:239
msgid "You're are not allowed to browse panel"
msgstr ""
-#: ../vhffs-panel/dns/delete_cname.pl:58 ../vhffs-panel/dns/delete_cname.pl:62
-#: ../vhffs-panel/dns/delete_mx.pl:58 ../vhffs-panel/dns/delete_mx.pl:62
-#: ../vhffs-panel/dns/add_ns.pl:58 ../vhffs-panel/dns/add_ns.pl:62
-#: ../vhffs-panel/dns/prefs.pl:61 ../vhffs-panel/dns/add_cname.pl:59
-#: ../vhffs-panel/dns/add_cname.pl:63 ../vhffs-panel/dns/add_a.pl:60
-#: ../vhffs-panel/dns/add_a.pl:64 ../vhffs-panel/dns/modif_cname.pl:59
-#: ../vhffs-panel/dns/modif_cname.pl:63 ../vhffs-panel/dns/add_mx.pl:59
-#: ../vhffs-panel/dns/add_mx.pl:63 ../vhffs-panel/dns/modif_a.pl:59
-#: ../vhffs-panel/dns/modif_a.pl:63 ../vhffs-panel/dns/modif_mx.pl:59
-#: ../vhffs-panel/dns/modif_mx.pl:63 ../vhffs-panel/dns/delete_ns.pl:57
-#: ../vhffs-panel/dns/delete_ns.pl:61 ../vhffs-panel/dns/delete_a.pl:59
-#: ../vhffs-panel/dns/delete_a.pl:63 ../vhffs-panel/dns/delete.pl:58
-#: ../vhffs-panel/dns/delete.pl:62 ../vhffs-panel/cvs/prefs_save.pl:51
-#: ../vhffs-panel/cvs/prefs.pl:55 ../vhffs-panel/cvs/delete.pl:51
-#: ../vhffs-panel/group/join_group.pl:47 ../vhffs-panel/group/prefs.pl:49
-#: ../vhffs-panel/group/remove_user_from_group.pl:44
-#: ../vhffs-panel/group/prefs_save.pl:52 ../vhffs-panel/group/delete.pl:39
-#: ../vhffs-panel/svn/prefs_save.pl:51 ../vhffs-panel/svn/prefs.pl:70
-#: ../vhffs-panel/svn/delete.pl:50
-#: ../vhffs-panel/mailinglist/save_options.pl:69
-#: ../vhffs-panel/mailinglist/del_member.pl:64
-#: ../vhffs-panel/mailinglist/prefs.pl:69
-#: ../vhffs-panel/mailinglist/add_sub.pl:64
-#: ../vhffs-panel/mailinglist/change_right.pl:66
-#: ../vhffs-panel/mailinglist/delete.pl:63 ../vhffs-panel/web/prefs_save.pl:55
-#: ../vhffs-panel/web/prefs.pl:55 ../vhffs-panel/web/delete.pl:52
-#: ../vhffs-panel/mail/change_forward.pl:72
-#: ../vhffs-panel/mail/save_catchall.pl:54 ../vhffs-panel/mail/spambox.pl:72
-#: ../vhffs-panel/mail/spamvirus.pl:72 ../vhffs-panel/mail/delete_box.pl:69
-#: ../vhffs-panel/mail/password_box.pl:72
-#: ../vhffs-panel/mail/add_forward.pl:58 ../vhffs-panel/mail/prefs.pl:60
-#: ../vhffs-panel/mail/delete.pl:55 ../vhffs-panel/mail/add_account.pl:64
-#: ../vhffs-panel/pgsql/prefs_save.pl:54 ../vhffs-panel/pgsql/prefs.pl:47
-#: ../vhffs-panel/pgsql/delete.pl:46
-#: ../vhffs-panel/admin/mail/change_forward.pl:73
-#: ../vhffs-panel/admin/mail/delete_box.pl:72
-#: ../vhffs-panel/admin/mail/password_box.pl:73
-#: ../vhffs-panel/admin/moderation_submit.pl:47
-#: ../vhffs-panel/admin/broadcast_delete.pl:47
-#: ../vhffs-panel/admin/broadcast_submit.pl:47
-#: ../vhffs-panel/admin/moderation.pl:45 ../vhffs-panel/largefile/delete.pl:49
-#: ../vhffs-panel/largefile/prefs.pl:71 ../vhffs-panel/mysql/prefs_save.pl:56
-#: ../vhffs-panel/mysql/prefs.pl:53 ../vhffs-panel/mysql/delete.pl:49
+#: ../vhffs-panel/mailinglist/delete.pl:90
+#: ../vhffs-panel/mailinglist/save_sig.pl:89
+#: ../vhffs-panel/mailinglist/add_sub.pl:91
+#: ../vhffs-panel/mailinglist/prefs.pl:100
+#: ../vhffs-panel/mailinglist/save_options.pl:96
+#: ../vhffs-panel/mailinglist/change_right.pl:93
+#: ../vhffs-panel/mailinglist/del_member.pl:91 ../vhffs-panel/svn/delete.pl:81
+#: ../vhffs-panel/svn/prefs.pl:100 ../vhffs-panel/svn/prefs_save.pl:82
+#: ../vhffs-panel/dns/delete.pl:89 ../vhffs-panel/dns/delete.pl:93
+#: ../vhffs-panel/dns/add_mx.pl:88 ../vhffs-panel/dns/add_mx.pl:92
+#: ../vhffs-panel/dns/prefs.pl:92 ../vhffs-panel/dns/modif_a.pl:88
+#: ../vhffs-panel/dns/modif_a.pl:92 ../vhffs-panel/dns/add_ns.pl:86
+#: ../vhffs-panel/dns/add_ns.pl:90 ../vhffs-panel/dns/add_cname.pl:90
+#: ../vhffs-panel/dns/add_cname.pl:94 ../vhffs-panel/dns/delete_a.pl:60
+#: ../vhffs-panel/dns/delete_a.pl:64 ../vhffs-panel/dns/delete_ns.pl:88
+#: ../vhffs-panel/dns/delete_ns.pl:92 ../vhffs-panel/dns/delete_mx.pl:89
+#: ../vhffs-panel/dns/delete_mx.pl:93 ../vhffs-panel/dns/modif_cname.pl:91
+#: ../vhffs-panel/dns/modif_cname.pl:95 ../vhffs-panel/dns/modif_mx.pl:91
+#: ../vhffs-panel/dns/modif_mx.pl:95 ../vhffs-panel/dns/add_a.pl:92
+#: ../vhffs-panel/dns/add_a.pl:96 ../vhffs-panel/dns/delete_cname.pl:87
+#: ../vhffs-panel/dns/delete_cname.pl:91 ../vhffs-panel/pgsql/delete.pl:77
+#: ../vhffs-panel/pgsql/prefs.pl:78 ../vhffs-panel/pgsql/prefs_save.pl:85
+#: ../vhffs-panel/group/delete.pl:70
+#: ../vhffs-panel/group/remove_user_from_group.pl:75
+#: ../vhffs-panel/group/prefs.pl:80 ../vhffs-panel/group/join_group.pl:74
+#: ../vhffs-panel/group/prefs_save.pl:78
+#: ../vhffs-panel/repository/delete.pl:82
+#: ../vhffs-panel/repository/prefs.pl:83
+#: ../vhffs-panel/repository/prefs_save.pl:82
+#: ../vhffs-panel/admin/moderation_submit.pl:78
+#: ../vhffs-panel/admin/moderation.pl:76
+#: ../vhffs-panel/admin/broadcast_submit.pl:78
+#: ../vhffs-panel/admin/broadcast_delete.pl:78
+#: ../vhffs-panel/admin/mail/delete_box.pl:95
+#: ../vhffs-panel/admin/mail/password_box.pl:96
+#: ../vhffs-panel/admin/mail/change_forward.pl:96
+#: ../vhffs-panel/web/delete.pl:83 ../vhffs-panel/web/prefs.pl:86
+#: ../vhffs-panel/web/prefs_save.pl:86 ../vhffs-panel/mysql/delete.pl:80
+#: ../vhffs-panel/mysql/prefs.pl:84 ../vhffs-panel/mysql/prefs_save.pl:87
+#: ../vhffs-panel/cvs/delete.pl:82 ../vhffs-panel/cvs/prefs.pl:86
+#: ../vhffs-panel/cvs/prefs_save.pl:81 ../vhffs-panel/mail/delete.pl:86
+#: ../vhffs-panel/mail/delete_box.pl:92 ../vhffs-panel/mail/add_account.pl:95
+#: ../vhffs-panel/mail/prefs.pl:91 ../vhffs-panel/mail/save_catchall.pl:85
+#: ../vhffs-panel/mail/password_box.pl:95
+#: ../vhffs-panel/mail/add_forward.pl:88
+#: ../vhffs-panel/mail/change_forward.pl:95
+#: ../vhffs-panel/mail/spamvirus.pl:95 ../vhffs-panel/mail/spambox.pl:95
msgid "You're not allowed to do this (ACL rights)"
msgstr ""
-#: ../vhffs-panel/mail/delete_forward.pl:63
-#: ../vhffs-panel/admin/mail/delete_forward.pl:72
+#: ../vhffs-panel/admin/mail/delete_forward.pl:96
+#: ../vhffs-panel/mail/delete_forward.pl:89
msgid "You're not allowed to do this (ACL rights) "
msgstr ""
-#: ../vhffs-panel/acl/add_acl_user.pl:69 ../vhffs-panel/acl/view.pl:109
-#: ../vhffs-panel/acl/add_acl_group.pl:69 ../vhffs-panel/acl/submit.pl:68
-#: ../vhffs-panel/history.pl:67
+#: ../vhffs-panel/history.pl:98 ../vhffs-panel/acl/view.pl:141
+#: ../vhffs-panel/acl/submit.pl:95 ../vhffs-panel/acl/add_acl_group.pl:96
+#: ../vhffs-panel/acl/add_acl_user.pl:96
msgid "You're not allowed to view this object's ACL"
msgstr ""
-#: ../vhffs-panel/panel.pl:61
+#: ../vhffs-panel/panel.pl:89
msgid "You're not an administrator"
msgstr ""
-#: ../vhffs-robots/src/refused_cvs.pl:53
+#: ../vhffs-robots/src/refused_cvs.pl:79
msgid "Your CVS repository request"
msgstr ""
-#: ../vhffs-robots/src/refused_cvs.pl:41
+#: ../vhffs-robots/src/refused_cvs.pl:68
#, perl-format
msgid "Your CVS request : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_dns.pl:52
+#: ../vhffs-robots/src/refused_dns.pl:82
msgid "Your DNS hosting request"
msgstr ""
-#: ../vhffs-robots/src/refused_dns.pl:40
+#: ../vhffs-robots/src/refused_dns.pl:70
#, perl-format
msgid "Your DNS hosting request for the domain : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_groups.pl:52
+#: ../vhffs-robots/src/refused_repository.pl:83
+msgid "Your Download repository request"
+msgstr ""
+
+#: ../vhffs-robots/src/refused_repository.pl:71
+#, perl-format
+msgid "Your Download repository request : %s "
+msgstr ""
+
+#: ../vhffs-robots/src/refused_groups.pl:78
msgid "Your Group request"
msgstr ""
-#: ../vhffs-robots/src/refused_groups.pl:40
+#: ../vhffs-robots/src/refused_groups.pl:67
#, perl-format
msgid "Your Group request : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_web.pl:52
-#: ../vhffs-robots/src/refused_mail.pl:52
+#: ../vhffs-robots/src/refused_mail.pl:82
msgid "Your Mail hosting request"
msgstr ""
-#: ../vhffs-robots/src/refused_mail.pl:40
+#: ../vhffs-robots/src/refused_mail.pl:70
#, perl-format
msgid "Your Mail hosting request for the domain: %s "
msgstr ""
-#: ../vhffs-robots/src/refused_ml.pl:51
+#: ../vhffs-robots/src/refused_ml.pl:79
msgid "Your Mailing-list request"
msgstr ""
-#: ../vhffs-robots/src/refused_ml.pl:40
+#: ../vhffs-robots/src/refused_ml.pl:68
#, perl-format
msgid "Your Mailing-list request : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_mysql.pl:52
+#: ../vhffs-robots/src/refused_mysql.pl:53
msgid "Your MySQL database request"
msgstr ""
-#: ../vhffs-robots/src/refused_mysql.pl:40
+#: ../vhffs-robots/src/refused_mysql.pl:41
#, perl-format
msgid "Your MySQL database request : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_postgres.pl:52
+#: ../vhffs-robots/src/refused_postgres.pl:83
msgid "Your PostgreSQL database request"
msgstr ""
-#: ../vhffs-robots/src/refused_postgres.pl:40
+#: ../vhffs-robots/src/refused_postgres.pl:71
#, perl-format
msgid "Your PostgreSQL database request : %s "
msgstr ""
-#: ../vhffs-robots/src/refused_svn.pl:52
+#: ../vhffs-robots/src/refused_svn.pl:49
msgid "Your Subversion repository request"
msgstr ""
-#: ../vhffs-robots/src/refused_svn.pl:40
+#: ../vhffs-robots/src/refused_svn.pl:38
#, perl-format
msgid "Your Subversion repository request : %s"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:52
-msgid "Your file hosting request"
+#: ../vhffs-robots/src/refused_web.pl:78
+msgid "Your hosting request"
msgstr ""
-#: ../vhffs-panel/alert.pl:39
+#: ../vhffs-panel/alert.pl:70
msgid "Your message"
msgstr ""
-#: ../vhffs-panel/pgsql/prefs_save.pl:58
+#: ../vhffs-panel/pgsql/prefs_save.pl:89
msgid "Your password is not correct. Please check it."
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:60
-#, perl-format
-msgid "Your request for hosting the file %s was accepted.\n"
+#: ../vhffs-panel/cvs/cvs_submit.pl:80
+msgid ""
+"Your repository name is not correct. It must contains at least 3 caracters"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:40
-#, perl-format
-msgid "Your request for hosting the file: %s"
+#: ../vhffs-panel/cvs/cvs_submit.pl:76
+msgid ""
+"Your repository name is not correct. It must contains only caracter and "
+"numbers"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:107
+#: ../vhffs-panel/admin/moderation_submit.pl:101 ../vhffs-irc/modobot.pl:393
+msgid "Your request for a "
+msgstr ""
+
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:137
msgid "Your request has been removed.\n"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:68
+#: ../vhffs-irc/modobot.pl:404
#, perl-format
-msgid "Your request on %s for hosting file"
+msgid "Your request on %s"
msgstr ""
-#: ../vhffs-irc/modobot.pl:372 ../vhffs-panel/admin/moderation_submit.pl:80
+#: ../vhffs-panel/admin/moderation_submit.pl:111
msgid "Your request on VHFFS platform"
msgstr ""
-#: ../vhffs-irc/modobot.pl:367 ../vhffs-panel/admin/moderation_submit.pl:75
-msgid "Your request on VHFFS was accepted\n"
-msgstr ""
-
-#: ../vhffs-robots/src/refused_web.pl:40
+#: ../vhffs-robots/src/refused_web.pl:67
#, perl-format
msgid "Your web hosting request for the servername : %s "
msgstr ""
-#: ../vhffs-panel/subscribe_complete.pl:135
+#: ../vhffs-panel/subscribe.pl:125
msgid "Your zipcode is not correct! Please enter a correct zipcode"
msgstr ""
-#: ../vhffs-panel/admin/user/edit.pl:75 ../vhffs-panel/admin/user/show.pl:75
-#: ../vhffs-panel/user/prefs.pl:51 ../vhffs-panel/subscribe.pl:40
+#: ../vhffs-panel/subscribe.pl:202 ../vhffs-panel/user/prefs.pl:82
+#: ../vhffs-panel/admin/user/edit.pl:106 ../vhffs-panel/admin/user/show.pl:106
msgid "Zipcode"
msgstr ""
-#: ../vhffs-panel/user/prefs_save.pl:64
+#: ../vhffs-panel/user/prefs_save.pl:95
msgid "Zipcode is not correct !"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:308
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:338
msgid "cannot be removed from the list\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:276
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:306
msgid "cannot be removed.\n"
msgstr ""
-#: ../vhffs-robots/src/refused_largefile.pl:41
-#: ../vhffs-robots/src/refused_cvs.pl:42
-#: ../vhffs-robots/src/refused_postgres.pl:41
-#: ../vhffs-robots/src/refused_web.pl:41
-#: ../vhffs-robots/src/refused_mail.pl:41
-#: ../vhffs-robots/src/refused_dns.pl:41
-#: ../vhffs-robots/src/refused_mysql.pl:41
-#: ../vhffs-robots/src/refused_svn.pl:41 ../vhffs-robots/src/refused_ml.pl:41
-#: ../vhffs-robots/src/refused_groups.pl:41
+#: ../vhffs-robots/src/refused_ml.pl:69 ../vhffs-robots/src/refused_mail.pl:71
+#: ../vhffs-robots/src/refused_postgres.pl:72
+#: ../vhffs-robots/src/refused_cvs.pl:69 ../vhffs-robots/src/refused_web.pl:68
+#: ../vhffs-robots/src/refused_mysql.pl:42
+#: ../vhffs-robots/src/refused_svn.pl:39
+#: ../vhffs-robots/src/refused_groups.pl:68
+#: ../vhffs-robots/src/refused_repository.pl:72
+#: ../vhffs-robots/src/refused_dns.pl:71
msgid "has been refused by the Moderators team"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:25
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:55
msgid "help\t\t - show this help\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:323
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:353
#, perl-format
msgid "in the moderation queue of the list %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:28
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:58
msgid "lang [fr|us|es]\t - set listengine language\n"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:748
+#: ../vhffs-listengine/src/listengine.pl:759
#, perl-format
msgid "listengine - list of messages to moderate for %s"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:631
-#: ../vhffs-listengine/src/listengine.pl:653
+#: ../vhffs-listengine/src/listengine.pl:642
#: ../vhffs-listengine/src/listengine.pl:664
+#: ../vhffs-listengine/src/listengine.pl:675
msgid "listengine help"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:696
#: ../vhffs-listengine/src/listengine.pl:707
-#: ../vhffs-listengine/src/listengine.pl:723
-#: ../vhffs-listengine/src/listengine.pl:735
-#: ../vhffs-listengine/src/listengine.pl:762
+#: ../vhffs-listengine/src/listengine.pl:718
+#: ../vhffs-listengine/src/listengine.pl:734
+#: ../vhffs-listengine/src/listengine.pl:746
#: ../vhffs-listengine/src/listengine.pl:773
+#: ../vhffs-listengine/src/listengine.pl:784
msgid "listengine moderation"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:681
+#: ../vhffs-listengine/src/listengine.pl:692
msgid "listengine result command"
msgstr ""
-#: ../vhffs-listengine/src/listengine.pl:800
+#: ../vhffs-listengine/src/listengine.pl:811
msgid "listengine: unknown command"
msgstr ""
-#: ../vhffs-panel/user/prefs.pl:48 ../vhffs-panel/subscribe.pl:37
+#: ../vhffs-panel/subscribe.pl:199 ../vhffs-panel/user/prefs.pl:79
msgid "mail"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:31
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:61
msgid "moderate XXXXX\t\t\t - moderate the message with message-id XXXXX\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:34
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:64
msgid "moderate list\t\t\t - give the message list for moderation\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:33
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:63
msgid ""
"moderate refused XXXXX\t\t\t - refuse the message with message-id XXXXX\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:32
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:62
msgid ""
"moderate validate XXXXX\t\t\t - moderate the message with message-id XXXXX\n"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:81
+#: ../vhffs-panel/admin/object/edit.pl:112
msgid "no date"
msgstr ""
-#: ../vhffs-panel/admin/object/edit.pl:187 ../vhffs-panel/history.pl:98
+#: ../vhffs-panel/history.pl:129 ../vhffs-panel/admin/object/edit.pl:218
msgid "no information about date"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:275
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:307
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:305
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:337
#, perl-format
msgid "present in the moderation queue for the list %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:26
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:56
msgid "subscribe\t - subscribe the shipper to the list\n"
msgstr ""
-#: ../vhffs-robots/src/create_largefile.pl:62
-msgid "the following login and password :\n"
-msgstr ""
-
-#: ../vhffs-robots/src/create_largefile.pl:66
-msgid "this delay, your request will be delete\n"
-msgstr ""
-
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:361
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:391
#, perl-format
msgid "to %s-request@%s with the following subject : \"moderate %s\" \n"
msgstr ""
-#: ../vhffs-listengine/src/archives/show_msg.pl:68
+#: ../vhffs-listengine/src/archives/show_msg.pl:99
#, perl-format
msgid "unknown message-id t: %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:27
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:57
msgid "unsubscribe\t - unsubscribe from this list\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:39
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:69
msgid "user info user@xxxxxxxxxx\t\t - show this user's informations\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:37
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:67
msgid "user right RIGHT user@xxxxxxxxxx\t - change right for this user\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:36
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:66
msgid ""
"user subscribe user@xxxxxxxxxx\t\t - register the user user@xxxxxxxxxx on "
"the list\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:35
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:65
msgid ""
"user unsubscribe user@xxxxxxxxxx\t - delete user user@xxxxxxxxxx from list\n"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:292
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:322
#, perl-format
msgid "was removed from the moderation queue from the list %s"
msgstr ""
-#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:324
+#: ../vhffs-api/src/Vhffs/Listengine/Intl.pm:354
msgid "was sent on the list.\n"
msgstr ""
Copied: trunk/vhffs-intl/update_po.sh (from rev 555, branches/vhffs_4.1/vhffs-intl/update_po.sh)
Modified: trunk/vhffs-irc/modobot.pl
===================================================================
--- trunk/vhffs-irc/modobot.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-irc/modobot.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -11,6 +11,7 @@
use Locale::gettext;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -24,10 +25,10 @@
use constant
{
- SERVER => "PUT YOUR IRC SERVER HERE",
- PORT => "6667",
- CHANNEL => "IRC CHANNEL TO JOIN",
- NAME => "BOT NAME",
+ SERVER => "PUT YOUR IRC SERVER HERE",
+ PORT => "6667",
+ CHANNEL => "IRC CHANNEL TO JOIN WITH #",
+ NAME => "BOT NAME",
};
@@ -87,7 +88,7 @@
map { last GR if (($_->get_oid eq $temp->get_oid) && ($_->get_groupname eq $temp->get_groupname)); } @oldgroup;
if( $vhffs->get_config->use_notation == 1 )
{
- irc_msg ("Groupe : " . $temp->get_oid . " " . $temp->get_user->get_username . "(" . Vhffs::Note::get_note( $vhffs , $temp->get_user ) . ") [".$temp->get_user->get_lang."] " . $temp->get_groupname . " " . Vhffs::Functions::stripslashes($temp->get_description));
+ irc_msg ("Groupe : " . $temp->get_oid . " " . $temp->get_user->get_username . "(" . Vhffs::Note::get_note( $vhffs , $temp->get_user ) . ") [".$temp->get_user->get_lang."] " . $temp->get_groupname . " " . Vhffs::Functions::stripslashes($temp->get_description));
}
else
{
@@ -200,7 +201,7 @@
map { last ML if (($_->get_oid eq $temp->get_oid) && ($_->get_localpart eq $temp->get_localpart)); } @oldmailing;
if( $vhffs->get_config->use_notation == 1 )
{
- irc_msg ("Mailing list : " . $temp->get_oid . " " . $temp->get_user->get_username . "(" . Vhffs::Note::get_note( $vhffs , $temp->get_user ) . ") [".$temp->get_user->get_lang."] " . $temp->get_group->get_groupname . " " . $temp->get_localpart . "@" . $temp->get_domain . " " . Vhffs::Functions::stripslashes($temp->get_description));
+ irc_msg ("Mailing list : " . $temp->get_oid . " " . $temp->get_user->get_username . "(" . Vhffs::Note::get_note( $vhffs , $temp->get_user ) . ") " . $temp->get_group->get_groupname . " " . $temp->get_localpart . "@" . $temp->get_domain . " " . Vhffs::Functions::stripslashes($temp->get_description));
}
else
{
@@ -368,15 +369,10 @@
$oid = shift;
$status = shift;
- $object = new Vhffs::Object( $vhffs , $oid , '51' );
+ $object = Vhffs::Object::get_by_oid( $vhffs , $oid );
if( ! defined $object )
{
- irc_msg ("Error : Object is null");
- return ( -1 );
- }
- elsif( $object->fetch < 0 )
- {
irc_msg ("Error : Cannot fetch object");
return ( -1 );
}
@@ -390,17 +386,22 @@
if( $status == 1 )
{
$object->set_status( Vhffs::Constants::WAITING_FOR_CREATION );
- my $username = Vhffs::User::get_name_by_uid( $vhffs , $object->get_owner_uid );
- my $userbis = new Vhffs::User( $vhffs , $username , '401' );
- if( $userbis->fetch > 0 )
+ my $userbis = Vhffs::User::get_by_uid( $vhffs , $object->get_owner_uid );
+ if( defined $userbis )
{
my $mail;
- $mail = gettext("Your request on VHFFS was accepted\n");
- $mail .= gettext("Please wait while we are creating your object\n");
- $mail .= gettext("Cheers,")."\n";
- $mail .= gettext("The Moderator and Admin team");
+ $mail = gettext('Your request for a ');
+ $mail .= Vhffs::Functions::type_string_from_type_id($object->get_type);
+ $mail .= (' on ');
+ $mail .= $vhffs->get_config->get_host_name;
+ $mail .= gettext(" was accepted\nPlease wait while we are creating your object\n");
+ $mail .= gettext("Cheers,\nThe Moderator and Admin team\n");
+ $mail .= "-----\n";
+ $mail .= $vhffs->get_config->get_host_name()."\n";
+ $mail .= $vhffs->get_config->get_panel_url();
- my $subject = gettext("Your request on VHFFS platform");
+
+ my $subject = sprintf(gettext("Your request on %s"), $vhffs->get_config->get_host_name());
Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $userbis->get_mail , $subject , $mail );
if( $vhffs->get_config->use_notation == 1 )
@@ -415,9 +416,8 @@
$raison = shift;
$object->set_status( Vhffs::Constants::VALIDATION_REFUSED );
$object->set_description( $raison );
- my $username = Vhffs::User::get_name_by_uid( $vhffs , $object->get_owner_uid );
- my $userbis = new Vhffs::User( $vhffs , $username , '401' );
- if( $userbis->fetch > 0 )
+ my $userbis = Vhffs::User::get_by_uid( $vhffs , $object->get_owner_uid );
+ if( defined $userbis )
{
if( $vhffs->get_config->use_notation == 1 )
{
@@ -469,34 +469,26 @@
$bot=$self;
$self->join($chan);
irc_msg ("--> $botname started");
+ &CatchAlrm();
} # on_connect
sub is_modo
{
- my $user = new Vhffs::User( $vhffs, shift, 401 );
- my $ret;
- $ret = $user->fetch;
- if ( $ret >= 0 )
- {
- if( ($user->is_moderator == 1 ) || ( $user->is_admin ) == 1 )
- {
- return 1;
- }
- }
- return 0;
+ my $user = Vhffs::User::get_by_username( $vhffs, shift );
+ return ( (defined $user) && ($user->is_moderator == 1 || $user->is_admin == 1) );
} # is_modo
sub get_desc
{
my $name = shift;
my $group;
- if ((! defined ($group= new Vhffs::Group( $vhffs , $name , '401' ) ) ) || ( $group->fetch < 0 ))
+ if (! defined ($group= Vhffs::Group::get_by_groupname( $vhffs , $name ) ) )
{
irc_msg ("$name : No such group");
}
else
{
- irc_msg ("$name : " . Vhffs::Functions::stripslashes ($group->get_description));
+ irc_msg ("$name : " . $group->get_description );
}
}
@@ -504,7 +496,7 @@
{
my $name = shift;
my $web;
- if ((! defined ($web = new Vhffs::Services::Httpd( $vhffs , $name, $name ) ) ) || ( $web->fetch < 0 ))
+ if (! defined ($web = Vhffs::Services::Httpd::get_by_servername( $vhffs , $name)))
{
irc_msg ("$name : No such website");
}
@@ -519,16 +511,14 @@
{
my $groupname = shift;
my $group;
- if ((! defined ($group = new Vhffs::Group( $vhffs , $groupname,'401' ) ) ) || ( $group->fetch < 0 ))
+ if (! defined ($group = Vhffs::Group::get_by_groupname( $vhffs , $groupname)))
{
irc_msg ("$groupname : No such groupname");
}
else
{
- my $user = new Vhffs::User($vhffs,$group->get_owner_username,401);
- my $ret;
- $ret = $user->fetch;
- if ( $ret >= 0 )
+ my $user = Vhffs::User::get_by_uid($vhffs, $group->get_owneruid);
+ if ( defined $user )
{
irc_msg ($groupname." owned by ". $user->get_username ." (". $user->get_firstname ." ". $user->get_lastname ." [". $user->get_mail ."] )");
}
@@ -542,7 +532,7 @@
{
my $groupname = shift;
my $group;
- if ((! defined ($group= new Vhffs::Group( $vhffs , $groupname , '401' ) ) ) || ( $group->fetch < 0 ))
+ if (! defined ($group= Vhffs::Group::get_by_groupname( $vhffs , $groupname , '401' )))
{
irc_msg ("$groupname : No such group");
}
@@ -564,6 +554,18 @@
}
}
+sub quotacheck
+{
+ my $limit = shift;
+ my $list = Vhffs::Group::getall_quotalimit($vhffs,$limit);
+ my $temp;
+ foreach $temp ( @{$list} )
+ {
+ irc_msg("Group ".$temp->get_groupname.": ".$temp->get_quota_used." / ".$temp->get_quota);
+ }
+}
+
+
sub irc_msg
{
my $text = shift;
@@ -616,7 +618,8 @@
irc_msg("desc <group> - give the description of <group>");
irc_msg("web2group <website> - give the groupe name of <website>");
irc_msg("owner <group> - give owner information of <group>");
- irc_msg("lsgroup <group> - give the list of users of <group>");
+ irc_msg("lsgroup <group> - give the list of users of <group>");
+ irc_msg("quotacheck <limit> - give the list of <limit> users where quota limit nearly reach ");
}
elsif ($texte =~ m/^${mynick}: list$/)
@@ -660,7 +663,14 @@
$groupid =~ s/^${mynick}: lsgroup //;
fetch_usergroup ($groupid);
}
+ elsif ($texte =~ m/^${mynick}: quotacheck$/)
+ {
+ my $limit = $texte;
+ $limit =~ s/^{mynick}: quotacheck //;
+ quotacheck($limit);
+ }
+
} # on_public
sub on_kick {
@@ -683,7 +693,5 @@
local $SIG{ALRM} = \&CatchAlrm;
-alarm 5;
-
$irc->start;
Modified: trunk/vhffs-jabber/vhffspipe.pl
===================================================================
--- trunk/vhffs-jabber/vhffspipe.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-jabber/vhffspipe.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,7 @@
#!/usr/bin/perl -w
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -40,19 +41,11 @@
$vhffs = init Vhffs::Main if ( ! defined $vhffs );
return undef if ( ! defined $vhffs );
- my $user = new Vhffs::User( $vhffs , $username , '401' );
- return undef if( ! defined $user );
+ # DB connection lost !
+ $vhffs->reconnect() if( !$vhffs->is_valid() );
+ my $user = Vhffs::User::get_by_username( $vhffs , $username );
+ return undef unless( defined $user );
- my $ret = $user->fetch;
-
- # connection lost to database
- if( $ret == -2 ) {
- undef $vhffs;
- $vhffs = init Vhffs::Main;
- $ret = $user->fetch if ( defined $vhffs );
- }
- undef $user if( $ret < 0 );
-
undef $user if( $user->have_activegroups <= 0 );
return $user;
Modified: trunk/vhffs-listengine/src/archives/archives.pl
===================================================================
--- trunk/vhffs-listengine/src/archives/archives.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-listengine/src/archives/archives.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use HTML::Template;
use CGI;
use CGI::Session;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Functions;
@@ -103,7 +104,7 @@
#On obtient le domaine, le local part et on construit l'objet de la liste
my( $lpart , $domain ) = split/\@/,$listname,2;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
my $templatedir = $vhffs->get_config->get_listengine_templatesdir;
@@ -134,7 +135,7 @@
$template = new HTML::Template( filename => $templatedir."/error.tmpl");
$template->param( ERROR => gettext("Error in listname") );
}
-elsif( ( ! defined $list ) || ( $list->fetch < 0 ) )
+elsif( ! defined $list )
{
$template = new HTML::Template( filename => $templatedir."/error.tmpl");
$template->param( ERROR => gettext("Undefined list") );
Modified: trunk/vhffs-listengine/src/archives/show_msg.pl
===================================================================
--- trunk/vhffs-listengine/src/archives/show_msg.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-listengine/src/archives/show_msg.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use HTML::Template;
use CGI;
use CGI::Session;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Functions;
use Vhffs::Services::Mailing;
@@ -57,7 +58,7 @@
my $listname = $cgi->param("list");
my $mid = $cgi->param("mid");
my( $lpart , $domain ) = split/\@/,$listname,2;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
my $templatedir = $vhffs->get_config->get_listengine_templatesdir;
my $theme = Vhffs::Listengine::Panel::check_theme( $cgi->cookie("theme") );
@@ -74,7 +75,7 @@
$template = new HTML::Template( filename => $templatedir."/error.tmpl");
$template->param( ERROR => gettext("Error in listname") );
}
-elsif( ( ! defined $list ) || ( $list->fetch < 0 ) )
+elsif( ! defined $list )
{
$template = new HTML::Template( filename => $templatedir."/error.tmpl");
$template->param( ERROR => gettext("Undefined list") );
Modified: trunk/vhffs-listengine/src/listengine.pl
===================================================================
--- trunk/vhffs-listengine/src/listengine.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-listengine/src/listengine.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,6 +37,7 @@
use locale;
use Locale::gettext;
use Mail::Internet;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Services::Mailing;
use Vhffs::Listengine::Intl;
@@ -59,7 +60,7 @@
my $ADMIN = $vhffs->get_config->get_listengine_listmaster;
my $SMTP_SERVER = $vhffs->get_config->get_listengine_smtp;
-#Be careful, listengine will create /data/listengine/archives for archives
+#Be carefule, listengine will create /data/listengine/archives for archives
#and /data/listengine/tomoderate for moderation
my $DIRECTORY = $vhffs->get_config->get_listengine_datadir;
@@ -122,19 +123,21 @@
my $mail = shift;
my $list = shift;
- my ( $message_id )= ($mail->get( 'Message-Id' ) =~ /<(.+)>/);
+ my (undef,undef,undef,$day,$month,$year) = localtime(time);
+ $year += 1900;
+ $month += 1;
+ $month = '0'.$month if( $month < 9 );
+ $day = '0'.$day if( $day < 9 );
+ my $message_id = ( $mail->get( 'Message-Id' ) =~ /<(.+)>/ );
+
#Don't archive if message-id is not found
return if( ( ! defined $message_id ) || ( $message_id eq "" ) );
- my $directory = $DIRECTORY . "/archives/" . $list->get_domain . "/" . $list->get_localpart;
-
- my ( undef, undef, undef, $day, $month, $year ) = gmtime(time);
- $directory .= sprintf ('/%.4u/%.2u/%.2u', $year+1900, $month+1, $day);
-
+ my $directory = $DIRECTORY.'/archives/'.$list->get_domain.'/'.$list->get_localpart.'/'.$year.'/'.$month.'/'.$day;
Vhffs::Functions::create_dir( $directory ) if( ! -d $directory );
- my $file = $directory . "/" . $message_id;
+ my $file = "$directory/".$message_id;
open( FILE , ">$file");
print FILE $mail->as_string;
close( FILE );
@@ -158,9 +161,7 @@
my $filehash = Digest::MD5::md5_hex( $message_id );
my $file = "$directory/".$filehash;
-
-
-
+
open( FILE , ">$file");
print FILE $mail->as_string;
close( FILE );
@@ -175,8 +176,7 @@
$header->replace( 'From' , $LISTMASTER );
$header->replace( 'Subject' , "moderate $filehash" );
$header->replace( 'Reply-To' , $list->get_localpart ."-request"."\@".$list->get_domain);
-
-
+
$email = Mail::Internet->new( [ <> ] ,
Header => $header,
Body => Vhffs::Listengine::Intl::moderate_message( $list , $filehash , $from , $subject )
@@ -186,76 +186,73 @@
}
-
sub subscribe_to_list
{
my $list = shift;
my $from = shift;
- my $hash;
my $header;
my $email;
my $message;
my @body;
- if( $list->get_open_sub != 1 )
+ my $sub_ctrl = $list->get_sub_ctrl;
+
+ if( $sub_ctrl == Vhffs::Constants::ML_SUBSCRIBE_CLOSED )
{
- $message ="Subscribtion are not allowed for this list";
+ $message = "Subscribtion are not allowed for this list";
push @body , $message ;
push @body , "\n";
$header = new Mail::Header( );
$header->replace( 'To' , $from );
$header->replace( 'From' , $LISTMASTER );
- $header->replace( 'Subject' , "subscription denied" );
+
+ my $subject = 'subscription denied';
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
-
$email = Mail::Internet->new( [ <> ] ,
Header => $header ,
Body => Vhffs::Listengine::Intl::sub_deny( $list , $from )
);
}
else
- {
-
- if( defined ( $hash = $list->add_sub_with_reply( $from ) ) )
+ {
+ if( defined ( my $pass = $list->add_sub_with_reply( $from ) ) )
{
$header = new Mail::Header( );
$header->replace( 'To' , $from );
$header->replace( 'From' , $LISTMASTER );
- $header->replace( 'Subject' , "confirm subscribe $hash" );
+ my $subject = 'confirm subscribe '.$pass;
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
$header->replace( 'Reply-To' , $list->get_localpart ."-request"."\@".$list->get_domain);
-
$email = Mail::Internet->new( [ <> ] ,
Header => $header,
- Body => Vhffs::Listengine::Intl::new_sub( $list , $from , $hash )
+ Body => Vhffs::Listengine::Intl::new_sub( $list , $from , $pass )
);
-
}
else
{
-
$header = new Mail::Header( );
$header->replace( 'To' , $from );
$header->replace( 'From' , $LISTMASTER );
- $header->replace( 'Subject' , "already subscriber for the list" );
-
-
+ my $subject = 'You are already subscribed to this list';
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
+
$email = Mail::Internet->new( [ <> ] ,
Header => $header,
Body => Vhffs::Listengine::Intl::sub_already_exist( $list , $from )
);
-
}
}
-
sendmail( $email , $from ) if( defined $email );
-
}
-
sub unsubscribe_to_list
{
my $list = shift;
@@ -321,38 +318,79 @@
# Ok, hash are the same, treat the mail now
if( $hash eq $subs->{$from}{'hash'} )
{
- my $header = new Mail::Header( );
- $header->replace( 'To' , $from );
- $header->replace( 'From' , $LISTMASTER );
- $header->replace( 'Subject' , "Successfully subscribe" );
- $header->replace('Date' , gmtime()." +00");
-
- my $email = Mail::Internet->new( [ <> ] ,
- Header => $header ,
- Body => Vhffs::Listengine::Intl::confirm_sub( $list , $from )
- );
- sendmail( $email , $from );
-
- $list->change_state_for_sub( $from , Vhffs::Constants::ML_RIGHT_SUB );
- $list->clear_hash( $from );
+ my $header = new Mail::Header( );
+ $header->replace( 'To' , $from );
+ $header->replace( 'From' , $LISTMASTER );
+ my $subject = 'Successfully subscribed';
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
+ $header->replace('Date' , gmtime()." +00");
+
+ # validation needed or not ?
+ if( $list->get_sub_ctrl == Vhffs::Constants::ML_SUBSCRIBE_APPROVAL_REQUIRED ) {
+
+ my $email = Mail::Internet->new( [ <> ] ,
+ Header => $header ,
+ Body => Vhffs::Listengine::Intl::confirm_sub_approvalneeded( $list , $from )
+ );
+
+ $list->change_state_for_sub( $from , Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_VALIDATION );
+ $list->clear_hash( $from );
+ sendmail( $email , $from );
+
+ my @tos;
+ my $members = $list->get_members;
+
+ # send a mail to all admins
+ foreach ( keys %{$members} )
+ {
+ push( @tos , $_ ) if( $members->{$_}{perm} == Vhffs::Constants::ML_RIGHT_ADMIN );
+ }
+
+ my $header = new Mail::Header( );
+ $header->replace( 'From' , $LISTMASTER );
+ $header->replace( 'To' , $LISTMASTER );
+ my $subject = 'approval '.$from;
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
+ $header->replace( 'Reply-To' , $list->get_localpart ."-request"."\@".$list->get_domain);
+
+ $email = Mail::Internet->new( [ <> ] ,
+ Header => $header,
+ Body => Vhffs::Listengine::Intl::moderate_subscriber( $list , $from )
+ );
+
+ sendmail( $email , \@tos ) if( ( defined $email ) && ( $#tos >= 0 ) );
+ }
+ else {
+
+ my $email = Mail::Internet->new( [ <> ] ,
+ Header => $header ,
+ Body => Vhffs::Listengine::Intl::confirm_sub( $list , $from )
+ );
+
+ $list->change_state_for_sub( $from , Vhffs::Constants::ML_RIGHT_SUB );
+ $list->clear_hash( $from );
+ sendmail( $email , $from );
+ }
}
else
{
my $header = new Mail::Header( );
$header->replace( 'To' , $from );
$header->replace( 'From' , $LISTMASTER );
- $header->replace( 'Subject' , "Subscribing error" );
+ my $subject = 'Subscribe error';
+ $subject = '['.$list->get_prefix.'] '.$subject if( length( $list->get_prefix ) > 0 );
+ $header->replace( 'Subject' , $subject );
$header->replace('Date' , gmtime()." +00");
my $email = Mail::Internet->new( [ <> ] ,
Header => $header ,
Body => Vhffs::Listengine::Intl::error_sub( $list , $from )
);
- sendmail( $email , $from );
-
+ sendmail( $email , $from );
}
}
-
}
sub confirm_unsub
@@ -429,9 +467,15 @@
my $qprefix = quotemeta $prefix;
unless ( $tsubject =~ /\[$qprefix\]/)
{
- $mail->replace( 'Subject' , "[".$prefix."]"." ".$subject ) if( length( $prefix ) > 0 );
+ $mail->replace( 'Subject' , '['.$prefix.'] '.$subject ) if( length( $prefix ) > 0 );
}
+ # Add list's signature at the bottom of mail
+ if(defined(my $signature = $list->get_signature)) {
+ my $body = $mail->body;
+ push @$body, "---\n".$signature;
+ }
+
foreach ( keys %{$subs} )
{
#Send mail to user if he is a confirmed subscriber
@@ -445,58 +489,37 @@
sub bounce_mail
{
+ my $mail = shift;
+ my $list = shift;
- my $mail = shift;
- my $list = shift;
-
- exit -1 if( ! defined $list );
- exit 0 if( $list->fetch < 0 );
+ exit -1 if( ! defined $list );
- my ( $from ) = ( $mail->get('From') =~ /(([\+\.a-zA-Z_\-0-9^\s]+)@([a\.-zA-Z_\-0-9^\s]+)\.(\w+))/);
- my $subject = $mail->get('Subject');
- my $subs = $list->get_members;
+ my ( $from ) = ( $mail->get('From') =~ /(([\+\.a-zA-Z_\-0-9^\s]+)@([a\.-zA-Z_\-0-9^\s]+)\.(\w+))/);
+ my $subject = $mail->get('Subject');
+ my $subs = $list->get_members;
- my $authorized = 0;
- my $in_moderation = 0;
-
+ # we need to know if the sender is a member, an admin, or other
+ my $user_class = "other"; #assume other
+ $user_class = "member" if( defined $subs->{$from} && $subs->{$from}{perm} == Vhffs::Constants::ML_RIGHT_SUB );
+ $user_class = "admin" if( defined $subs->{$from} && $subs->{$from}{perm} == Vhffs::Constants::ML_RIGHT_ADMIN );
- if( $list->get_moderated == 1 )
- {
-
- $in_moderation = 1;
+ my $post_ctrl = $list->get_post_ctrl;
- # If the list is moderated, we refuse the mail
- # But if the mail is from an admin, we allow it
- foreach ( keys %{$subs} )
- {
- if( ( $from eq $_ ) && ( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_ADMIN ) )
- {
- $authorized = 1;
- $in_moderation = 0;
- last;
- }
+ if( $user_class eq "admin" || $post_ctrl == Vhffs::Constants::ML_POSTING_OPEN_ALL ) {
+ sendmail_to_list( $mail , $list );
}
-
- }
- elsif( $list->get_open_post == 1 )
- {
- # If the list is not moderated, and open_post,
- # we authorize the mail
- $authorized = 1;
- }
- else
- {
- # In this case, The list is not in open_post
- # We must check if the poster is a subscriber
- foreach ( keys %{$subs} )
- {
- $authorized = 1 if( ( $from eq $_ ) && ( $subs->{$_}{perm} != Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY ) );
+ elsif ( $user_class eq "member" ) {
+ if( $post_ctrl == Vhffs::Constants::ML_POSTING_MEMBERS_ONLY || $post_ctrl == Vhffs::Constants::ML_POSTING_OPEN_MEMBERS_MODERATED_OTHERS ) {
+ sendmail_to_list( $mail , $list )
+ } elsif ( $post_ctrl == Vhffs::Constants::ML_POSTING_MODERATED_ALL || $post_ctrl == Vhffs::Constants::ML_POSTING_MEMBERS_ONLY_MODERATED ) {
+ put_in_moderation( $mail , $list );
+ }
}
- }
-
-
- sendmail_to_list( $mail , $list ) if( $authorized == 1 );
- put_in_moderation( $mail , $list ) if( $in_moderation == 1 );
+ elsif ( $user_class eq "other" ) {
+ if( $post_ctrl == Vhffs::Constants::ML_POSTING_MODERATED_ALL || $post_ctrl == Vhffs::Constants::ML_POSTING_OPEN_MEMBERS_MODERATED_OTHERS ) {
+ put_in_moderation( $mail , $list );
+ }
+ }
}
@@ -621,7 +644,7 @@
my $temp;
my $members = $list->get_members;
- $lang = Vhffs::Services::Mailing::get_lang_for_sub( $vhffs , $from );
+ $lang = Vhffs::Services::Mailing::get_language_for_sub( $vhffs , $from );
#If the user specified a lang, we change it to get internationalized messages
if( defined $lang )
{
@@ -652,17 +675,17 @@
}
elsif( ( $lang ) = $subject =~ /^lang\s([a-zA-Z\_\-]+)$/ )
{
- #Try to change the language for this subscriber on whole listengine subsystem
- if( Vhffs::Services::Mailing::set_lang_for_sub( $vhffs , $from , $lang ) < 0 )
- {
- $email = Mail::Internet->new( [ <> ],
+ #Try to change the language for this subscriber on whole listengine subsystem
+ unless( Vhffs::Services::Mailing::set_language_for_sub( $vhffs , $from , $lang ) )
+ {
+ $email = Mail::Internet->new( [ <> ],
Body => Vhffs::Listengine::Intl::lang_change_error( $from , $lang )
);
- $email->replace('From' , $LISTMASTER );
- $email->replace('To' , $from );
- $email->replace('Subject' , gettext("listengine help") );
- $email->replace('Date' , gmtime()." +00");
- sendmail( $email , $from );
+ $email->replace('From' , $LISTMASTER );
+ $email->replace('To' , $from );
+ $email->replace('Subject' , gettext("listengine help") );
+ $email->replace('Date' , gmtime()." +00");
+ sendmail( $email , $from );
}
else
{
@@ -894,7 +917,7 @@
my $mail = shift;
my ( $from ) = ( $mail->get('From') =~ /(([\+\.a-zA-Z_\-0-9^\s]+)@([\.a-zA-Z_\-0-9^\s]+)\.(\w+))/);
- my $lang = Vhffs::Services::Mailing::get_lang_for_sub( $vhffs , $from );
+ my $lang = Vhffs::Services::Mailing::get_language_for_sub( $vhffs , $from );
if( defined $lang )
{
#Change current locale to user preferences if defined
@@ -937,8 +960,8 @@
get_lang( $mail );
#Build the list object from VHFFS
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain );
-exit( 0 ) if( $list->fetch < 0 );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
+exit( 0 ) if(!defined $list);
verify_mail_with_list( $list , $mail );
Modified: trunk/vhffs-panel/acl/add_acl_group.pl
===================================================================
--- trunk/vhffs-panel/acl/add_acl_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/acl/add_acl_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -74,8 +75,8 @@
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-my $obj_src = new Vhffs::Group( $vhffs , $groupname , '401' );
-my $obj_dst = new Vhffs::Object( $vhffs , $oid_dst , '401' );
+my $obj_src = Vhffs::Group::get_by_groupname( $vhffs , $groupname );
+my $obj_dst = Vhffs::Object::get_by_oid( $vhffs , $oid_dst );
my $message;
@@ -86,10 +87,6 @@
}
elsif( ( ! defined $obj_src ) || ( ! defined $obj_dst ) )
{
- $message = gettext( "Object Error" );
-}
-elsif( ( $obj_src->fetch < 0 ) || ( $obj_dst->fetch < 0) )
-{
$message = gettext( "The group does not exist" );
}
else
Modified: trunk/vhffs-panel/acl/add_acl_user.pl
===================================================================
--- trunk/vhffs-panel/acl/add_acl_user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/acl/add_acl_user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -74,8 +75,8 @@
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-my $obj_src = new Vhffs::User( $vhffs , $username , '401' );
-my $obj_dst = new Vhffs::Object( $vhffs , $oid_dst , '401' );
+my $obj_src = Vhffs::User::get_by_username( $vhffs , $username );
+my $obj_dst = Vhffs::Object::get_by_oid( $vhffs , $oid_dst );
my $message;
@@ -88,10 +89,6 @@
{
$message = gettext( "Object Error" );
}
-elsif( ( $obj_src->fetch < 0 ) || ( $obj_dst->fetch < 0) )
-{
- $message = gettext( "The user does not exist" );
-}
else
{
if( ( Vhffs::Acl::what_perm_for_user( $user , $obj_dst , $vhffs ) < Vhffs::Constants::ACL_MANAGEACL ) && ( $user->is_admin != 1 ) )
Modified: trunk/vhffs-panel/acl/submit.pl
===================================================================
--- trunk/vhffs-panel/acl/submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/acl/submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -73,8 +74,8 @@
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-my $obj_src = new Vhffs::Object( $vhffs , $oid_src , '401' );
-my $obj_dst = new Vhffs::Object( $vhffs , $oid_dst , '401' );
+my $obj_src = Vhffs::Object::get_by_oid( $vhffs , $oid_src );
+my $obj_dst = Vhffs::Object::get_by_oid( $vhffs , $oid_dst );
my $message;
@@ -87,10 +88,6 @@
{
$message = gettext( "Object Error" );
}
-elsif( ( $obj_src->fetch < 0 ) || ( $obj_dst->fetch < 0) )
-{
- $message = gettext( "Object Error" );
-}
else
{
if( ( Vhffs::Acl::what_perm_for_user( $user , $obj_dst , $vhffs ) < Vhffs::Constants::ACL_MANAGEACL ) && ( $user->is_admin != 1 ) )
Modified: trunk/vhffs-panel/acl/view.pl
===================================================================
--- trunk/vhffs-panel/acl/view.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/acl/view.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -75,48 +76,45 @@
#First, we instanciate an Object, according to the variable $type
if( $type eq "web" )
{
- $object = new Vhffs::Services::Httpd( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::Httpd::get_by_servername( $vhffs , $name );
}
elsif( $type eq "dns" )
{
- $object = new Vhffs::Services::DNS( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::DNS::get_by_domainname( $vhffs , $name );
}
elsif( $type eq "mysql" )
{
- $object = new Vhffs::Services::Mysql( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $name );
}
elsif( $type eq "pgsql" )
{
- $object = new Vhffs::Services::Postgres( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $name );
}
elsif( $type eq "cvs" )
{
- $object = new Vhffs::Services::Cvs( $vhffs , $name );
+ $object = Vhffs::Services::Cvs::get_by_cvsroot( $vhffs , $name );
}
elsif( $type eq "svn" )
{
- $object = new Vhffs::Services::Svn( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::Svn::get_by_reponame( $vhffs , $name );
}
elsif( $type eq "ns" )
{
- $object = new Vhffs::Services::DNS( $vhffs , $name );
+ #?????
+ $object = Vhffs::Services::DNS::get_by_domainname( $vhffs , $name );
}
elsif( $type eq "mail" )
{
- $object = new Vhffs::Services::Mail( $vhffs , $name );
+ $object = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $name );
}
elsif( $type eq "ml" )
{
my( $lpart , $domain ) = split( /\@/ , $name );
- $object = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain );
+ $object = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
}
-elsif( $type eq "largefile" )
-{
- $object = new Vhffs::Services::LargeFile( $vhffs , $name , $user , $group );
-}
elsif( $type eq "repository" )
{
- $object = new Vhffs::Services::Repository( $vhffs , $name , $user , $group );
+ $object = Vhffs::Services::Repository::get_by_reponame( $vhffs , $name );
}
else
{
@@ -130,7 +128,7 @@
# $ok = 1 , so, ths object is instanciate
if( $ok == 1 )
{
- if( ( ! defined $object ) || ( $object->fetch < 0 ) )
+ if( ! defined $object )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = sprintf( gettext("Cannot get informations on this object %s %s"), $type, $name);
@@ -180,8 +178,7 @@
foreach( keys %{$user_rights} )
{
- $u = new Vhffs::User( $vhffs , $user_rights->{$_}{'username'} , '401' );
- $u->fetch;
+ $u = Vhffs::User::get_by_username( $vhffs , $user_rights->{$_}{'username'} );
$subtemplate = new HTML::Template( filename => $templatedir."/acl/view_each.tmpl" );
$subtemplate->param( NAME => $user_rights->{$_}{'username'} );
@@ -227,8 +224,7 @@
foreach( keys %{$group_rights} )
{
- $g = new Vhffs::Group( $vhffs , $group_rights->{$_}{'groupname'} , '401' );
- $g->fetch;
+ $g = Vhffs::Group::get_by_groupname($vhffs , $group_rights->{$_}{'groupname'} );
$subtemplate = new HTML::Template( filename => $templatedir."/acl/view_each.tmpl" );
$subtemplate->param( NAME => $group_rights->{$_}{'groupname'} );
Modified: trunk/vhffs-panel/admin/broadcast.pl
===================================================================
--- trunk/vhffs-panel/admin/broadcast.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/broadcast.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/broadcast_delete.pl
===================================================================
--- trunk/vhffs-panel/admin/broadcast_delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/broadcast_delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/broadcast_list.pl
===================================================================
--- trunk/vhffs-panel/admin/broadcast_list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/broadcast_list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/broadcast_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/broadcast_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/broadcast_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/broadcast_view.pl
===================================================================
--- trunk/vhffs-panel/admin/broadcast_view.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/broadcast_view.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/cvs/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/cvs/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/cvs/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Cvs( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Cvs::get_by_cvsroot( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/cvs/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/cvs/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/cvs/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Cvs( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Cvs::get_by_cvsroot( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = sprintf( gettext("Cannot fetch object %s"), $name );
Modified: trunk/vhffs-panel/admin/cvs/list.pl
===================================================================
--- trunk/vhffs-panel/admin/cvs/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/cvs/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,13 +39,16 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
+use Vhffs::Panel::Cvs;
use Vhffs::Stats;
use Vhffs::Constants;
+
my $panel = new Vhffs::Panel::Main();
if(!$panel) {
exit 0;
@@ -83,40 +86,24 @@
$template->param( TITLE => gettext("List of all CVS repositories") );
}
- use Vhffs::Services::Cvs;
+ $template->param( TEXT_TITLE1 => gettext('CVS Root') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
- my $cvs = Vhffs::Services::Cvs::getall( $vhffs , undef , $name , undef );
- my $c;
- my $output = "";
-
- if( defined $cvs )
- {
- foreach $c ( @{$cvs} )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/cvs/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/cvs/part-modo.tmpl" );
- }
-
- $subtemplate->param( CVSROOT => $c->get_cvsroot );
- $subtemplate->param( GROUP => $c->get_group->get_groupname );
- $subtemplate->param( OID => $c->get_oid );
- $subtemplate->param( STATE => gettext( Vhffs::Functions::status_string_from_status_id( $c->get_status ) ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this CVS repository") );
- } else {
- $subtemplate->param( SEND => gettext("Show this CVS repository") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
- }
-
-
+ my $cvs = Vhffs::Panel::Cvs::search( $vhffs, $name );
+ my $subtemplate;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/cvs/part.tmpl", global_vars => 1);
+ $subtemplate->param( SEND => gettext("Modify this CVS repository") );
+ } else {
+ # die_on_bad_param => 0 is required since the values provided by Vhffs::Panel::Cvs::search
+ # contains fields that are not used in moderator's template.
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/cvs/part-modo.tmpl", global_vars => 1);
+ $subtemplate->param( SEND => gettext("Show this CVS repository") );
+ }
+
+ $subtemplate->param(CVSES => $cvs);
+ $template->param( LIST => $subtemplate->output );
}
display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/admin/cvs/search.pl
===================================================================
--- trunk/vhffs-panel/admin/cvs/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/cvs/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/cvs/show.pl
===================================================================
--- trunk/vhffs-panel/admin/cvs/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/cvs/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Cvs( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Cvs::get_by_cvsroot( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/dns/list.pl
===================================================================
--- trunk/vhffs-panel/admin/dns/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/dns/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -83,49 +84,26 @@
$template->param( TITLE => gettext("List of all domains") );
}
+ $template->param( TEXT_TITLE1 => gettext('Domain Name') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
+
use Vhffs::Panel::Web;
- my $domains = Vhffs::Panel::DNS::getall_domains( $vhffs , $name );
+ my $domains = Vhffs::Panel::DNS::search( $vhffs , $name );
if( defined $domains )
{
- my $output = "";
- foreach( sort ( keys %{$domains} ) )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/dns/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/dns/part-modo.tmpl" );
- }
- $subtemplate->param( DOMAIN => $domains->{$_}{'domain'} ) if( defined $domains->{$_}{'domain'} );
- $subtemplate->param( GROUP => Vhffs::Group::get_name_by_gid( $vhffs , $domains->{$_}{'owner_gid'} ) ) if( defined $domains->{$_}{'owner_gid'} );
-
- if( $domains->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_CREATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for creation") );
- }
- elsif( $domains->{$_}{'state'} == Vhffs::Constants::ACTIVATED )
- {
- $subtemplate->param( STATE => gettext("Activated") );
- }
- elsif( $domains->{$_}{'state'} == Vhffs::Constants::TO_DELETE )
- {
- $subtemplate->param( STATE => gettext("Waiting for delete") );
- }
- elsif( $domains->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_VALIDATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for validation") );
- }
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( OID => $domains->{$_}{'object_id'} ) if( defined $domains->{$_}{'object_id'} );
- $subtemplate->param( SEND => gettext("Modify this domain") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ my $subtemplate;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/dns/part.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Modify this domain') );
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/dns/part-modo.tmpl", die_on_bad_params => 0 )
+ }
+
+ $subtemplate->param(DNSES => $domains);
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/dns/search.pl
===================================================================
--- trunk/vhffs-panel/admin/dns/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/dns/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/group/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/group/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/group/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -55,16 +56,14 @@
my $session = $panel->{'session'};
my $maintemplate = $panel->{'template'};
my $user = $panel->{'user'};
-#my $group = $panel->{'group'};
my $projectname = $session->param("project");
my $cgi = $panel->{'cgi'};
my $groupname = $cgi->param("NAME");
my $template;
+my $group;
my $templatedir = $vhffs->get_config->get_templatedir;
-my $object;
-
if( $user->is_admin != 1 )
{
@@ -73,12 +72,12 @@
$template->param( MESSAGE => $message );
}
elsif( ! defined $groupname )
-{
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- my $message = sprintf( gettext("CGI ERROR ! %s"), $groupname );
- $template->param( MESSAGE => $message );
+{
+ $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
+ my $message = gettext( "CGI ERROR !");
+ $template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Group( $vhffs , $groupname , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $group = Vhffs::Group::get_by_groupname($vhffs, $groupname) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
@@ -101,16 +100,16 @@
$template->param( SEND => gettext("Send") );
$template->param( TEXT_HISTORY => gettext("History") );
- $template->param( VALUE_GROUPNAME => $object->get_groupname );
- $template->param( VALUE_GID => $object->get_gid );
- $template->param( VALUE_OWNER => $object->get_owner_username );
- $template->param( VALUE_QUOTA => $object->get_quota );
- $template->param( VALUE_QUOTA_USED => $object->get_quota_used );
- $template->param( VALUE_DESCRIPTION => $object->get_description );
+ $template->param( VALUE_GROUPNAME => $group->get_groupname );
+ $template->param( VALUE_GID => $group->get_gid );
+ $template->param( VALUE_OWNER => $group->get_owner_username );
+ $template->param( VALUE_QUOTA => $group->get_quota );
+ $template->param( VALUE_QUOTA_USED => $group->get_quota_used );
+ $template->param( VALUE_DESCRIPTION => $group->get_description );
-$template->param( QUOTA_VALUE => sprintf( gettext("Quota (used/total) : %s/%s") , $object->get_quota_used , $object->get_quota ) );
+$template->param( QUOTA_VALUE => sprintf( gettext("Quota (used/total) : %s/%s") , $group->get_quota_used , $group->get_quota ) );
- my $oid = $object->get_oid;
+ my $oid = $group->get_oid;
$template->param( VALUE_HISTORY => "/history.pl?OID=$oid" );
$template->param( TEXT_STATUS_WAITING_FOR_VALIDATION => gettext("Waiting for validation") );
@@ -140,7 +139,7 @@
$template->param( VALUE_STATUS_MODIFICATION_APPLIED => Vhffs::Constants::MODIFICATION_APPLIED );
$template->param( VALUE_STATUS_TO_DELETE => Vhffs::Constants::TO_DELETE );
- my $status = $object->get_status;
+ my $status = $group->get_status;
if( $status == Vhffs::Constants::WAITING_FOR_VALIDATION )
{
Modified: trunk/vhffs-panel/admin/group/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/group/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/group/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -55,7 +56,6 @@
my $session = $panel->{'session'};
my $maintemplate = $panel->{'template'};
my $user = $panel->{'user'};
-#my $group = $panel->{'group'};
my $projectname = $session->param("project");
my $cgi = $panel->{'cgi'};
my $groupname = $cgi->param("NAME");
@@ -63,7 +63,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $object;
+my $group;
my $message;
my $status = $cgi->param( "STATUS" );
my $quota = $cgi->param( "QUOTA" );
@@ -83,7 +83,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Group( $vhffs , $groupname , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $group = Vhffs::Group::get_by_groupname($vhffs, $groupname) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
@@ -100,12 +100,12 @@
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $object->set_status( $status );
- $object->set_quota( $quota );
- $object->set_quota_used( $quotau );
+ $group->set_status( $status );
+ $group->set_quota( $quota );
+ $group->set_quota_used( $quotau );
- if( $object->commit < 0 )
+ if( $group->commit < 0 )
{
$message = gettext("Can't modify object...");
}
Modified: trunk/vhffs-panel/admin/group/list.pl
===================================================================
--- trunk/vhffs-panel/admin/group/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/group/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,11 +39,13 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
+use Vhffs::Panel::Group;
use Vhffs::Stats;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
@@ -84,38 +86,27 @@
}
- use Vhffs::Panel::Group;
+ $template->param( TEXT_TITLE1 => gettext('Groupname') );
+ $template->param( TEXT_TITLE2 => gettext('Owner name') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
+
- my $groups = Vhffs::Group::getall( $vhffs , undef , $name );
- my $group;
+
+ my $groups = Vhffs::Panel::Group::search( $vhffs, $name );
if( defined $groups )
{
- my $output = "";
+ my $subtemplate;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/group/part.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Modify this group'));
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/group/part-modo.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Show this group'));
+ }
+
- foreach $group ( @{$groups} )
- {
- my $subtemplate;
-
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/group/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/group/part-modo.tmpl" );
- }
-
- $subtemplate->param( GROUPNAME => $group->get_groupname );
- $subtemplate->param( USERNAME => $group->get_owner_username );
-
- $subtemplate->param( STATE => Vhffs::Functions::status_string_from_status_id( $group->get_status ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this group") );
- } else {
- $subtemplate->param( SEND => gettext("Show this group") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ $subtemplate->param( GROUPS => $groups );
+ $template->param( LIST => $subtemplate->output );
}
}
Modified: trunk/vhffs-panel/admin/group/search.pl
===================================================================
--- trunk/vhffs-panel/admin/group/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/group/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/group/show.pl
===================================================================
--- trunk/vhffs-panel/admin/group/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/group/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -55,7 +56,6 @@
my $session = $panel->{'session'};
my $maintemplate = $panel->{'template'};
my $user = $panel->{'user'};
-#my $group = $panel->{'group'};
my $projectname = $session->param("project");
my $cgi = $panel->{'cgi'};
my $groupname = $cgi->param("NAME");
@@ -63,7 +63,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $object;
+my $group;
if( ($user->is_moderator != 1 ) && ( $user->is_admin != 1 ) )
{
@@ -78,7 +78,7 @@
my $message = sprintf( gettext("CGI ERROR ! %s"), $groupname );
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Group( $vhffs , $groupname , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $group = Vhffs::Group::get_by_groupname( $vhffs , $groupname ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
@@ -99,15 +99,15 @@
$template->param( TEXT_DESCRIPTION => gettext("Description") );
$template->param( TEXT_HISTORY => gettext("History") );
- $template->param( VALUE_GROUPNAME => $object->get_groupname );
- $template->param( VALUE_GID => $object->get_gid );
- $template->param( VALUE_OWNER => $object->get_owner_username );
- $template->param( VALUE_QUOTA => $object->get_quota );
- $template->param( VALUE_QUOTA_USED => $object->get_quota_used );
- $template->param( VALUE_DESCRIPTION => $object->get_description );
- $template->param( VALUE_STATUS => Vhffs::Functions::status_string_from_status_id ($object->get_status) );
+ $template->param( VALUE_GROUPNAME => $group->get_groupname );
+ $template->param( VALUE_GID => $group->get_gid );
+ $template->param( VALUE_OWNER => $group->get_owner_username );
+ $template->param( VALUE_QUOTA => $group->get_quota );
+ $template->param( VALUE_QUOTA_USED => $group->get_quota_used );
+ $template->param( VALUE_DESCRIPTION => $group->get_description );
+ $template->param( VALUE_STATUS => Vhffs::Functions::status_string_from_status_id ($group->get_status) );
- my $oid = $object->{'object_id'};
+ my $oid = $group->{'object_id'};
$template->param( VALUE_HISTORY => "/history.pl?OID=$oid" );
}
Modified: trunk/vhffs-panel/admin/mail/change_forward.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/change_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/change_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -64,7 +65,7 @@
my $forward = $cgi->param("FORWARD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -73,17 +74,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ( ! defined $boxname ) || ( ! defined $forward ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -109,18 +102,11 @@
if( ( $retour = $mail->change_forward( $boxname , $forward ) ) < 0 )
{
- $message = gettext( "Can't modify forwarding" ) . "$retour , $boxname , $domain , $forward";
+ $message = sprintf(gettext('Unable to modify forward %s (%d)'), $boxname, $retour);
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to record changes on this domain" );
- }
- else
- {
- $message = gettext( "Forwarding successfully added" );
- }
+ $message = sprintf(gettext('Forward %s successfully added'), $boxname );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/admin/mail/delete_box.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/delete_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/delete_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,7 +64,7 @@
my $boxname = $cgi->param("LOCALPART");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain($vhffs, $domain);
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,17 +73,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get information on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ! defined $boxname )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
Modified: trunk/vhffs-panel/admin/mail/delete_forward.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/delete_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/delete_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,8 +64,9 @@
my $boxname = $cgi->param("LOCALPART");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs, $domain );
+
my $templatedir = $vhffs->get_config->get_templatedir;
my $retour;
@@ -72,17 +74,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ! defined $boxname )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -108,11 +102,11 @@
if( ( $retour = $mail->delforward( $boxname ) ) < 0 )
{
- $message = "Can't delete forward $retour";
+ $message = sprintf(gettext('Unable to delete forward %s (%d)'), $boxname, $retour);
}
else
{
- $message = "Succesfully delete forward";
+ $message = sprintf(gettext('Forward %s deleted'), $boxname);
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/admin/mail/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Mail( $vhffs , $domain_name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain_name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/mail/list.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -83,38 +84,30 @@
$template->param( TITLE => gettext("List of all mail-domain") );
}
+ $template->param( TEXT_TITLE1 => gettext('Domain Name') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
+
use Vhffs::Panel::Mail;
- my $mails = Vhffs::Panel::Mail::getall_mails( $vhffs , $name );
+ my $mails = Vhffs::Panel::Mail::search( $vhffs , $name );
if( defined $mails )
{
- my $output = "";
- foreach( sort ( keys %{$mails} ) )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mail/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mail/part-modo.tmpl" );
- }
+ my $subtemplate;
+ my $tmplmails;
+ my $mailhash;
+ my $send;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/mail/part.tmpl", global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Modify this mail domain') );
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/mail/part-modo.tmpl", global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Show this mail domain'));
+ }
- $subtemplate->param( DOMAIN => $mails->{$_}{'domain'} ) if( defined $mails->{$_}{'domain'} );
- $subtemplate->param( GROUP => Vhffs::Group::get_name_by_gid( $vhffs , $mails->{$_}{'owner_gid'} ) ) if( defined $mails->{$_}{'owner_gid'} );
- $subtemplate->param( OID => $mails->{$_}{'object_id'} ) if( defined $mails->{$_}{'object_id'} );
-
- $subtemplate->param( STATE => Vhffs::Functions::status_string_from_status_id( $mails->{$_}{'state'} ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this mail domain") );
- } else {
- $subtemplate->param( SEND => gettext("Show this mail domain") );
- }
-
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ $subtemplate->param( MAILS => $mails );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/mail/password_box.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/password_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/password_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -64,7 +65,7 @@
my $password = $cgi->param("PASSWORD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs, $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -73,17 +74,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get information on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ( ! defined $password ) || ( ! defined $boxname ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -109,18 +102,11 @@
if( ( $retour = $mail->change_box_password( $boxname , $password ) ) < 0 )
{
- $message = "Can't change password $boxname , $password , $retour";
+ $message = sprintf(gettext('Unable to change password for box %s (%d)'), $boxname, $retour);
}
else
{
- if( $mail->commit < 0 )
- {
- $message = "Unable to reccord changes on this domain";
- }
- else
- {
- $message = "Sucessfully password change";
- }
+ $message = sprintf(gettext('Password changed for box %s'), $boxname);
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/admin/mail/search.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/mail/show.pl
===================================================================
--- trunk/vhffs-panel/admin/mail/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mail/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Mail( $vhffs , $domain_name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain_name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/mailing/list.pl
===================================================================
--- trunk/vhffs-panel/admin/mailing/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mailing/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,14 +38,13 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
-use Vhffs::Services::Mailing;
-use Vhffs::Stats;
-use Vhffs::Constants;
+use Vhffs::Panel::Mailinglist;
my $panel = new Vhffs::Panel::Main();
if(!$panel) {
@@ -84,44 +83,24 @@
$template->param( TITLE => gettext("List of all mailing-list") );
}
+ $template->param( TEXT_TITLE1 => gettext('Mailing List') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
- my $lists = Vhffs::Services::Mailing::getall( $vhffs , undef , $name );
+ my $lists = Vhffs::Panel::Mailinglist::search( $vhffs, $name );
if( defined $lists )
{
- my $output = "";
- foreach( @{$lists} )
- {
- my $subtemplate;
- if( $user->is_admin == 1 )
- {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mailing/part.tmpl" );
- }
- else
- {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mailing/part.tmpl" );
- }
+ my $subtemplate = new HTML::Template( filename => $templatedir."/admin/mailing/part.tmpl", global_vars => 1 );
+ if( $user->is_admin == 1 ) {
+ $subtemplate->param( SEND => gettext('Modify this list') );
+ } else {
+ $subtemplate->param( SEND => gettext('Show this list') );
+ }
-
- $subtemplate->param( DOMAIN => $_->get_domain );
- $subtemplate->param( LPART => $_->get_localpart );
- $subtemplate->param( GROUP => Vhffs::Group::get_name_by_gid( $vhffs , $_->get_ownergid ));
- $subtemplate->param( OID => $_->get_oid );
-
-
- $subtemplate->param( STATE => Vhffs::Functions::status_string_from_status_id( $_->get_status ) );
-
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this list") );
- } else {
- $subtemplate->param( SEND => gettext("Show this list") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ $subtemplate->param( LISTS => $lists );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/mailing/mailing_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/mailing/mailing_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mailing/mailing_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/mailing/search.pl
===================================================================
--- trunk/vhffs-panel/admin/mailing/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mailing/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/moderation.pl
===================================================================
--- trunk/vhffs-panel/admin/moderation.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/moderation.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -100,7 +101,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -143,7 +144,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -175,7 +176,7 @@
my $nss = Vhffs::Services::DNS::getall( $vhffs , Vhffs::Constants::WAITING_FOR_VALIDATION );
$output = "";
- if( defined $nss )
+ if( @$nss > 0 )
{
foreach $temp ( @{$nss} )
{
@@ -184,7 +185,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -228,7 +229,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -272,7 +273,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -316,7 +317,7 @@
{
$subtemplate->param( OWNER => $svn->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $svn->get_user ) );
- $subtemplate->param( OID_ASKER => $svn->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $svn->get_user->get_uid);
}
else
{
@@ -361,7 +362,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -403,7 +404,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -445,7 +446,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
@@ -469,48 +470,7 @@
}
}
- if( $vhffs->get_config->use_largefile == 1 )
- {
- use Vhffs::Services::LargeFile;
- $template->param( TEXT_LARGEFILE => gettext( "Files awaiting validation" ) );
- my $files = Vhffs::Services::LargeFile::getall( $vhffs , Vhffs::Constants::WAITING_FOR_VALIDATION );
- $output = "";
- if( defined @{$files} )
- {
- foreach $temp ( @{$files} )
- {
- my $subtemplate = new HTML::Template( filename => "$templatesdir/admin/misc/moderation_part.tmpl" );
-
- if( $vhffs->get_config->use_notation == 1 )
- {
- $subtemplate->param( OWNER => $temp->get_user->get_username);
- $subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
- }
- else
- {
- $subtemplate->param( OWNER => $temp->get_user->get_username );
- }
-
- $subtemplate->param( NAME => $temp->get_filename ."( ".$temp->get_size."Mo,".$temp->get_type." )" );
- $subtemplate->param( GROUP => $temp->get_group->get_groupname );
- $subtemplate->param( OID => $temp->get_oid );
- $subtemplate->param( DESCRIPTION => $temp->get_description );
- $subtemplate->param( ACCEPT => gettext("Accept") );
- $subtemplate->param( REFUSE => gettext("Refuse") );
- $output.= $subtemplate->output;
- }
-
- $template->param( MODERATION_LARGEFILE => $output );
- }
- else
- {
- $template->param( MODERATION_LARGEFILE => gettext("No files to validate") );
- }
- }
-
-
if( $vhffs->get_config->use_repository == 1 )
{
use Vhffs::Services::Repository;
@@ -528,7 +488,7 @@
{
$subtemplate->param( OWNER => $temp->get_user->get_username);
$subtemplate->param( NOTE => Vhffs::Note::get_note( $vhffs , $temp->get_user ) );
- $subtemplate->param( OID_ASKER => $temp->get_user->get_oid);
+ $subtemplate->param( UID_ASKER => $temp->get_user->get_uid);
}
else
{
Modified: trunk/vhffs-panel/admin/moderation_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/moderation_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/moderation_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -81,31 +82,31 @@
{
use Vhffs::Object;
my $oid = $cgi->param("OID");
- my $oidasker = $cgi->param("OID_ASKER");
- my $object = new Vhffs::Object( $vhffs , $oid , '401' );
+ my $uidasker = $cgi->param("UID_ASKER");
+ my $object = Vhffs::Object::get_by_oid( $vhffs , $oid );
if( ( ! defined $oid ) || ( ! defined $object ) || ( ! defined $accept ) )
{
$template->param( MESSAGE => gettext("CGI problem") );
}
- elsif( $object->fetch < 0 )
- {
- $template->param( MESSAGE => gettext("Cannot obtain information about this object") );
- }
else
{
if( $accept == 1 )
{
$object->set_status( Vhffs::Constants::WAITING_FOR_CREATION );
- my $username = Vhffs::User::get_name_by_uid( $vhffs , $object->get_owner_uid );
- my $userbis = new Vhffs::User( $vhffs , $username , '401' );
- if( $userbis->fetch > 0 )
+ my $userbis = Vhffs::User::get_by_uid( $vhffs , $object->get_owner_uid );
+ if( defined $userbis )
{
my $mail;
- $mail = gettext("Your request on VHFFS was accepted\n");
- $mail .= gettext("Please wait while we are creating your object\n");
- $mail .= gettext("Cheers,")."\n";
- $mail .= gettext("The Moderator and Admin team");
+ $mail = gettext('Your request for a ');
+ $mail .= Vhffs::Functions::type_string_from_type_id($object->get_type);
+ $mail .= (' on ');
+ $mail .= $vhffs->get_config->get_host_name;
+ $mail .= gettext(" was accepted\nPlease wait while we are creating your object\n");
+ $mail .= gettext("Cheers,\nThe Moderator and Admin team\n");
+ $mail .= "-----\n";
+ $mail .= $vhffs->get_config->get_host_name()."\n";
+ $mail .= $vhffs->get_config->get_panel_url();
my $subject = gettext("Your request on VHFFS platform");
Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $userbis->get_mail , $subject , $mail );
@@ -120,14 +121,13 @@
}
else
{
- my $askerobject = new Vhffs::Object( $vhffs , $oidasker , '401' );
- $askerobject->fetch;
+ my $askeruser = Vhffs::User::get_by_uid($vhffs, $uidasker),
$object->set_description( $reason );
$object->set_status( Vhffs::Constants::VALIDATION_REFUSED );
if( $vhffs->get_config->use_notation == 1 )
{
use Vhffs::Note;
- Vhffs::Note::inc_note( $vhffs , $askerobject , -1 );
+ Vhffs::Note::inc_note( $vhffs , $askeruser , -1 );
}
}
Modified: trunk/vhffs-panel/admin/mysql/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/mysql/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mysql/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Mysql( $vhffs , $name , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/mysql/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/mysql/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mysql/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -55,7 +56,6 @@
my $session = $panel->{'session'};
my $maintemplate = $panel->{'template'};
my $user = $panel->{'user'};
-#my $group = $panel->{'group'};
my $projectname = $session->param("project");
my $cgi = $panel->{'cgi'};
my $name = $cgi->param("NAME");
@@ -78,7 +78,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Mysql( $vhffs , $name , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = sprintf( gettext("Cannot fetch object %s"), $name );
Modified: trunk/vhffs-panel/admin/mysql/list.pl
===================================================================
--- trunk/vhffs-panel/admin/mysql/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mysql/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,11 +39,13 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
+use Vhffs::Panel::Mysql;
use Vhffs::Stats;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
@@ -83,52 +85,26 @@
$template->param( TITLE => gettext("List of all MySQL databases") );
}
- use Vhffs::Panel::Web;
+ $template->param( TEXT_TITLE1 => gettext('DB Name') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
- my $dbs = Vhffs::Panel::Mysql::getall_mysql( $vhffs , $name );
+ my $dbs = Vhffs::Panel::Mysql::search( $vhffs , $name );
if( defined $dbs )
{
- my $output = "";
- foreach( sort ( keys %{$dbs} ) )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mysql/part.tmpl" )
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/mysql/part-modo.tmpl" )
- }
+ my $subtemplate;
- $subtemplate->param( DBNAME => $dbs->{$_}{'dbname'} ) if( defined $dbs->{$_}{'dbname'} );
- $subtemplate->param( GROUP => Vhffs::Group::get_name_by_gid( $vhffs , $dbs->{$_}{'owner_gid'} ) ) if( defined $dbs->{$_}{'owner_gid'} );
- $subtemplate->param( OID => $dbs->{$_}{'object_id'} ) if( defined $dbs->{$_}{'object_id'} );
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/mysql/part.tmpl', global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Modify this MySQL area'));
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/mysql/part-modo.tmpl', global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Show this MySQL area'));
+ }
- if( $dbs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_CREATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for creation") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::ACTIVATED )
- {
- $subtemplate->param( STATE => gettext("Activated") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::TO_DELETE )
- {
- $subtemplate->param( STATE => gettext("Waiting for delete") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_VALIDATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for validation") );
- }
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this MySQL area") );
- } else {
- $subtemplate->param( SEND => gettext("Show this MySQL area") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ $subtemplate->param(DBS => $dbs);
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/mysql/search.pl
===================================================================
--- trunk/vhffs-panel/admin/mysql/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mysql/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/mysql/show.pl
===================================================================
--- trunk/vhffs-panel/admin/mysql/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/mysql/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -77,7 +78,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Mysql( $vhffs , $name , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/object/delete_avatar.pl
===================================================================
--- trunk/vhffs-panel/admin/object/delete_avatar.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/object/delete_avatar.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -79,7 +80,7 @@
{
$message = gettext( "CGI ERROR !");
}
-elsif( ( ! defined ( $object = new Vhffs::Object( $vhffs , $oid , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Object::get_by_oid( $vhffs , $oid ) ) )
{
$message = gettext( "Cannot fetch object");
}
Modified: trunk/vhffs-panel/admin/object/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/object/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/object/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -77,7 +78,7 @@
$template = new HTML::Template( filename => "$templatesdir/misc/simplemsg.tmpl" );
$template->param( MESSAGE => gettext( "CGI ERROR !") );
}
-elsif( ( ! defined ( $object = new Vhffs::Object( $vhffs , $oid , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Object::get_by_oid( $vhffs , $oid ) ) )
{
$template = new HTML::Template( filename => "$templatesdir/misc/simplemsg.tmpl" );
$template->param( MESSAGE => gettext( "Cannot fetch object") );
Modified: trunk/vhffs-panel/admin/object/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/object/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/object/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -75,7 +76,7 @@
{
$template->param( MESSAGE => gettext( "CGI ERROR !") );
}
-elsif( ( ! defined ( $object = new Vhffs::Object( $vhffs , $oid , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Object::get_by_oid( $vhffs , $oid ) ) )
{
$template->param( MESSAGE => gettext( "Cannot fetch object") );
}
Modified: trunk/vhffs-panel/admin/object/list.pl
===================================================================
--- trunk/vhffs-panel/admin/object/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/object/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,11 +39,13 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
+use Vhffs::Panel::Object;
use Vhffs::Stats;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
@@ -82,44 +84,19 @@
$template->param( TITLE => gettext("All objects List") );
}
- use Vhffs::Object;
+ $template->param( TEXT_TITLE1 => gettext('Object ID') );
+ $template->param( TEXT_TITLE2 => gettext('Owner') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
+ $template->param( TEXT_TITLE4 => gettext('History') );
- my $objs = Vhffs::Object::getall( $vhffs , $name );
+ my $objs = Vhffs::Panel::Object::search( $vhffs , $name );
- if( defined $objs )
- {
- my $output = "";
- foreach( sort {$a - $b} ( keys %{$objs} ) )
- {
- my $subtemplate;
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/object/part.tmpl" );
-
- $subtemplate->param( USER => Vhffs::User::get_name_by_uid( $vhffs , $objs->{$_}{'owner_uid'} ) ) if( defined $objs->{$_}{'owner_uid'} );
- $subtemplate->param( HISTORY => gettext("History") );
- $subtemplate->param( OID => $objs->{$_}{'object_id'} ) if( defined $objs->{$_}{'object_id'} );
-
- if( $objs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_CREATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for creation") );
- }
- elsif( $objs->{$_}{'state'} == Vhffs::Constants::ACTIVATED )
- {
- $subtemplate->param( STATE => gettext("Activated") );
- }
- elsif( $objs->{$_}{'state'} == Vhffs::Constants::TO_DELETE )
- {
- $subtemplate->param( STATE => gettext("Waiting for delete") );
- }
- elsif( $objs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_VALIDATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for validation") );
- }
-
- $subtemplate->param( SEND => gettext("Edit this object") );
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ if( defined $objs ) {
+ my $subtemplate = new HTML::Template( filename => "$templatesdir/admin/object/part.tmpl", global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Edit this object'));
+ $subtemplate->param( HISTORY => gettext('History'));
+ $subtemplate->param(OBJECTS => $objs);
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/object/search.pl
===================================================================
--- trunk/vhffs-panel/admin/object/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/object/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/pgsql/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/pgsql/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/pgsql/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Postgres( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/pgsql/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/pgsql/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/pgsql/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Postgres( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = sprintf( gettext("Cannot fetch object %s"), $name );
Modified: trunk/vhffs-panel/admin/pgsql/list.pl
===================================================================
--- trunk/vhffs-panel/admin/pgsql/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/pgsql/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -83,52 +84,28 @@
$template->param( TITLE => gettext("List of all PostgreSQL databases") );
}
- use Vhffs::Panel::Web;
+ $template->param( TEXT_TITLE1 => gettext('DB Name') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
- my $dbs = Vhffs::Panel::Pgsql::getall_pgsql( $vhffs , $name );
+ my $dbs = Vhffs::Panel::Pgsql::search( $vhffs , $name );
+
if( defined $dbs )
{
- my $output = "";
- foreach( sort ( keys %{$dbs} ) )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/pgsql/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/pgsql/part-modo.tmpl" );
- }
+ my $subtemplate;
+ my $send;
+ my $tmpldbs;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/pgsql/part.tmpl', global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Modify this PostgreSQL database'));
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/pgsql/part-modo.tmpl', global_vars => 1 );
+ $subtemplate->param(SEND => gettext("Show this PostgreSQL database"));
+ }
- $subtemplate->param( DBNAME => $dbs->{$_}{'dbname'} ) if( defined $dbs->{$_}{'dbname'} );
- $subtemplate->param( GROUP => Vhffs::Group::get_name_by_gid( $vhffs , $dbs->{$_}{'owner_gid'} ) ) if( defined $dbs->{$_}{'owner_gid'} );
- $subtemplate->param( OID => $dbs->{$_}{'object_id'} ) if( defined $dbs->{$_}{'object_id'} );
-
- if( $dbs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_CREATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for creation") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::ACTIVATED )
- {
- $subtemplate->param( STATE => gettext("Activated") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::TO_DELETE )
- {
- $subtemplate->param( STATE => gettext("Waiting for delete") );
- }
- elsif( $dbs->{$_}{'state'} == Vhffs::Constants::WAITING_FOR_VALIDATION )
- {
- $subtemplate->param( STATE => gettext("Waiting for validation") );
- }
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this PostgreSQL database") );
- } else {
- $subtemplate->param( SEND => gettext("Show this PostgreSQL database") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ $subtemplate->param( DBS => $dbs );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/pgsql/search.pl
===================================================================
--- trunk/vhffs-panel/admin/pgsql/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/pgsql/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/pgsql/show.pl
===================================================================
--- trunk/vhffs-panel/admin/pgsql/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/pgsql/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Postgres( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/repository/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/repository/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/repository/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Repository( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Repository::get_by_reponame( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/repository/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/repository/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/repository/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Repository( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Repository::get_by_reponame( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = sprintf( gettext("Cannot fetch object %s"), $name );
Modified: trunk/vhffs-panel/admin/repository/list.pl
===================================================================
--- trunk/vhffs-panel/admin/repository/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/repository/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,11 +39,13 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
+use Vhffs::Panel::Repository;
use Vhffs::Stats;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
@@ -83,37 +85,27 @@
$template->param( TITLE => gettext("List of all Download repositories") );
}
- use Vhffs::Services::Repository;
+ $template->param( TEXT_TITLE1 => gettext('Repository Name') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
- my $repos = Vhffs::Services::Repository::getall( $vhffs , undef , $name , undef );
- my $repo;
- my $output = "";
+ my $repos = Vhffs::Panel::Repository::search( $vhffs, $name );
if( defined $repos )
{
- foreach $repo ( @{$repos} )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/repository/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/repository/part-modo.tmpl" );
- }
-
- $subtemplate->param( NAME => $repo->get_name );
- $subtemplate->param( GROUP => $repo->get_group->get_groupname );
- $subtemplate->param( OID => $repo->get_oid );
- $subtemplate->param( STATE => gettext( Vhffs::Functions::status_string_from_status_id( $repo->get_status ) ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this Download repository") );
- } else {
- $subtemplate->param( SEND => gettext("Show this Download repository") );
- }
-
- $output .= $subtemplate->output;
- }
- $template->param( LIST => $output );
+ my $subtemplate;
+ my $send;
+ my $tmplrepos;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/repository/part.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Modify this Download repository'));
+ } else {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/repository/part-modo.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Show this Download repository'));
+ }
+
+ $subtemplate->param( REPOSITORIES => $repos );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/repository/search.pl
===================================================================
--- trunk/vhffs-panel/admin/repository/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/repository/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/repository/show.pl
===================================================================
--- trunk/vhffs-panel/admin/repository/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/repository/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Repository( $vhffs , $name ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Repository::get_by_reponame( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/stats.pl
===================================================================
--- trunk/vhffs-panel/admin/stats.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/stats.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -65,7 +66,7 @@
my $stats = new Vhffs::Stats( $vhffs );
-if( ( ! defined $stats ) || ($stats->fetch < 0 ) )
+if( ! defined $stats )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -163,14 +164,6 @@
$template->param( VALUE_TOTAL_LISTS_ACTIVATED => $stats->get_lists_activated );
$template->param( TEXT_TOTAL_SUBS => gettext("Total subscribtion for lists") );
$template->param( VALUE_TOTAL_SUBS => $stats->get_lists_totalsubs );
-
- ##LargeFile part
- $template->param( TEXT_LARGEFILE => gettext("Hosted files stats") );
- $template->param( TEXT_TOTAL_FILES => gettext("Total hoted files") );
- $template->param( TEXT_TOTAL_FILES_ACTIVATED => gettext("Total activated hoted files") );
- $template->param( VALUE_TOTAL_FILES => $stats->get_largefile_total );
- $template->param( VALUE_TOTAL_FILES_ACTIVATED => $stats->get_largefile_activated );
-
}
display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/admin/su.pl
===================================================================
--- trunk/vhffs-panel/admin/su.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/su.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/svn/list.pl
===================================================================
--- trunk/vhffs-panel/admin/svn/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/svn/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,22 +30,14 @@
# POSSIBILITY OF SUCH DAMAGE.
-use POSIX qw(locale_h);
+use strict;
use HTML::Template;
-use locale;
use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-use Vhffs::Stats;
-use Vhffs::Constants;
+use Vhffs::Panel::Svn;
+
my $panel = new Vhffs::Panel::Main();
if(!$panel) {
exit 0;
@@ -81,34 +73,23 @@
$template->param( TITLE => gettext("All Subversion repositories lists") );
}
- use Vhffs::Services::Svn;
- my $repos = Vhffs::Services::Svn::getall( $vhffs , undef , $name );
- my $svn;
+ $template->param(TEXT_TITLE1 => gettext('SVN root'));
+ $template->param(TEXT_TITLE2 => gettext('Group'));
+ $template->param(TEXT_TITLE3 => gettext('State'));
+ my $repos = Vhffs::Panel::Svn::search( $vhffs, $name );
+
if( defined $repos )
{
- my $output = "";
- foreach $svn ( @{$repos} )
- {
- my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/svn/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => "$templatesdir/admin/svn/part-modo.tmpl" );
- }
- $subtemplate->param( SVNROOT => $svn->get_reponame );
- $subtemplate->param( GROUP => $svn->get_group->get_groupname );
- $subtemplate->param( OID => $svn->get_oid );
- $subtemplate->param( STATE => Vhffs::Functions::status_string_from_status_id( $svn->get_status ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( CGIGROUP => $svn->get_group->get_groupname );
- $subtemplate->param( SEND => gettext("Modify this Subversion repository") );
- }
-
- $output .= $subtemplate->output;
+ my $subtemplate;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/svn/part.tmpl", global_vars => 1 );
+ $subtemplate->param(SEND => gettext('Modify this Subversion repository'));
+ } else {
+ $subtemplate = new HTML::Template( filename => "$templatesdir/admin/svn/part-modo.tmpl", global_vars => 1, die_on_bad_params => 0);
}
- $template->param( LIST => $output );
+ $subtemplate->param( SVNREPOS => $repos);
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/svn/search.pl
===================================================================
--- trunk/vhffs-panel/admin/svn/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/svn/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/user/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/user/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::User( $vhffs , $username , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::User::get_by_username( $vhffs , $username ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/user/edit_note.pl
===================================================================
--- trunk/vhffs-panel/admin/user/edit_note.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/edit_note.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
$message = gettext( "CGI ERROR !" );
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::User( $vhffs , $username , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::User::get_by_username( $vhffs , $username) ) )
{
$message = gettext( "Cannot fetch object" );
$template->param( MESSAGE => $message );
Modified: trunk/vhffs-panel/admin/user/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/user/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -90,7 +91,7 @@
$message = gettext( "CGI ERROR !" );
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::User( $vhffs , $username , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::User::get_by_username( $vhffs , $username ) ) )
{
$message = gettext( "Cannot fetch object" );
$template->param( MESSAGE => $message );
Modified: trunk/vhffs-panel/admin/user/list.pl
===================================================================
--- trunk/vhffs-panel/admin/user/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,22 +30,15 @@
# POSSIBILITY OF SUCH DAMAGE.
-use POSIX qw(locale_h);
+use strict;
use HTML::Template;
-use locale;
use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Functions;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
-use Vhffs::Stats;
-use Vhffs::Constants;
+use Vhffs::Panel::User;
+
my $panel = new Vhffs::Panel::Main();
if(!$panel) {
exit 0;
@@ -83,40 +76,26 @@
$template->param( TITLE => gettext("List of all users") );
}
- use Vhffs::Panel::User;
+ $template->param( TEXT_TITLE1 => gettext('Username') );
+ $template->param( TEXT_TITLE2 => gettext('Real Name') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
-# my $users = Vhffs::Panel::User::getall_users( $vhffs , $name );
- my $users = Vhffs::User::getall( $vhffs , undef , $name );
- my $u;
-
- if( defined $users )
+ my $users = Vhffs::Panel::User::search( $vhffs, $name );
+
+ if( defined $users )
{
- my $output = "";
- foreach $u ( @{$users} )
- {
- my $subtemplate;
+ my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/user/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/user/part-modo.tmpl" );
- }
-
- $subtemplate->param( NAME => $u->get_username );
- $subtemplate->param( FIRSTNAME => $u->get_firstname);
- $subtemplate->param( LASTNAME => $u->get_lastname );
-
- $subtemplate->param( STATE => gettext( Vhffs::Functions::status_string_from_status_id( $u->get_status ) ) );
-
- if( $user->is_admin == 1 ) {
- $subtemplate->param( SEND => gettext("Modify this user") );
- } else {
- $subtemplate->param( SEND => gettext("Show this user") );
- }
-
- $output .= $subtemplate->output;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/user/part.tmpl', global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Modify this user') );
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir.'/admin/user/part-modo.tmpl', global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Show this user'));
}
- $template->param( LIST => $output );
+
+ $subtemplate->param( USERS => $users );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/user/search.pl
===================================================================
--- trunk/vhffs-panel/admin/user/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/user/show.pl
===================================================================
--- trunk/vhffs-panel/admin/user/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/user/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -80,7 +81,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::User( $vhffs , $username , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::User::get_by_username( $vhffs , $username ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/web/edit.pl
===================================================================
--- trunk/vhffs-panel/admin/web/edit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/web/edit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Httpd( $vhffs , $webname , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Httpd::get_by_servername( $vhffs , $webname ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/admin/web/edit_submit.pl
===================================================================
--- trunk/vhffs-panel/admin/web/edit_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/web/edit_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Httpd( $vhffs , $servername , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Httpd::get_by_servername( $vhffs , $servername ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
@@ -91,6 +92,7 @@
$object->set_status( $cgi->param( "STATUS" ) );
$object->set_crawl( $cgi->param( "CRAWL" ) );
+ $object->set_alertlimit( $cgi->param( "TEXT_ALERT") );
if( $object->commit < 0 )
Modified: trunk/vhffs-panel/admin/web/list.pl
===================================================================
--- trunk/vhffs-panel/admin/web/list.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/web/list.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,22 +30,14 @@
# POSSIBILITY OF SUCH DAMAGE.
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
use strict;
+use Locale::gettext;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-use Vhffs::Stats;
-use Vhffs::Constants;
+use Vhffs::Panel::Web;
+
my $panel = new Vhffs::Panel::Main();
if(!$panel) {
exit 0;
@@ -83,33 +75,27 @@
$template->param( TITLE => gettext("List of all websites") );
}
- use Vhffs::Panel::Web;
- use Vhffs::Services::Httpd;
- my $webs = Vhffs::Services::Httpd::getall( $vhffs , undef , $name );
+ $template->param( TEXT_TITLE1 => gettext('Servername') );
+ $template->param( TEXT_TITLE2 => gettext('Group') );
+ $template->param( TEXT_TITLE3 => gettext('State') );
+
+
+ my $webs = Vhffs::Panel::Web::search( $vhffs, $name );
my $web;
if( defined $webs )
{
- my $output = "";
- foreach $web ( @{$webs} )
- {
- my $subtemplate;
- next if( $web->fetch < 0 );
+ my $subtemplate;
- if( $user->is_admin == 1 ) {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/web/part.tmpl" );
- } else {
- $subtemplate = new HTML::Template( filename => $templatedir."/admin/web/part-modo.tmpl" );
- }
-
- $subtemplate->param( SERVERNAME => $web->get_servername );
- $subtemplate->param( GROUP => $web->get_group->get_groupname );
- $subtemplate->param( OID => $web->get_oid );
- $subtemplate->param( STATE => Vhffs::Functions::status_string_from_status_id( $web->get_status ) );
- $subtemplate->param( SEND => gettext("Change this Website") );
-
- $output .= $subtemplate->output;
+ if( $user->is_admin == 1 ) {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/web/part.tmpl", global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Change this Website') );
+ } else {
+ $subtemplate = new HTML::Template( filename => $templatedir."/admin/web/part-modo.tmpl", global_vars => 1 );
+ $subtemplate->param( SEND => gettext('Show this Website'));
}
- $template->param( LIST => $output );
+
+ $subtemplate->param( WEBS => $webs );
+ $template->param( LIST => $subtemplate->output );
}
Modified: trunk/vhffs-panel/admin/web/search.pl
===================================================================
--- trunk/vhffs-panel/admin/web/search.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/web/search.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/admin/web/show.pl
===================================================================
--- trunk/vhffs-panel/admin/web/show.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/admin/web/show.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,7 +79,7 @@
my $message = gettext( "CGI ERROR !");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ( $object = new Vhffs::Services::Httpd( $vhffs , $webname , '401' ) ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined ( $object = Vhffs::Services::Httpd::get_by_servername( $vhffs , $webname ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "Cannot fetch object");
Modified: trunk/vhffs-panel/alert.pl
===================================================================
--- trunk/vhffs-panel/alert.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/alert.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/alert_submit.pl
===================================================================
--- trunk/vhffs-panel/alert_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/alert_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/auth.pl
===================================================================
--- trunk/vhffs-panel/auth.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/auth.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,51 +37,56 @@
use Locale::gettext;
use HTML::Template;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Panel::Main;
+use Vhffs::Panel::Commons;
use Vhffs::Constants;
-my $vhffs = init Vhffs::Main;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{cgi};
+my $submitted = defined($cgi->param('login_submit'));
-#Set the language cookie
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
+if($submitted) {
+ # User tried to log in
+ # we try to clean the previous session
+ my $oldsid = CGI->cookie('session');
+ if( $oldsid ) {
+ my $oldsession = new CGI::Session(undef, $oldsid, {Directory=>'/tmp'});
+ $oldsession->delete();
+ }
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $hostname = $vhffs->get_config->get_host_name;
-my $cgi = new CGI;
-my $template;
+ my $username = $cgi->param('username');
+ my $password = $cgi->param('password');
+ my $user;
+ $user = Vhffs::User::get_by_username($vhffs, $username) if(defined $username);
-Vhffs::Panel::Main::check( $vhffs );
+ #Incomplete input
+ if( ! defined( $username ) || ! defined ( $password ) || !defined $user
+ || !$user->check_password( $password )) {
+ $panel->add_error( gettext('Login failed !') );
+ } elsif($user->get_status != Vhffs::Constants::ACTIVATED) {
+ $panel->add_error( gettext('User is not active yet') );
+ } else {
+ # Creates the new session
+ my $session = new CGI::Session("driver:File", undef, {Directory=>'/tmp'});
+ $session->expires("+1h");
+ $session->param("username", $user->get_username);
+ $session->param("uid", $user->get_uid);
-$template = new HTML::Template( filename => $templatedir."/main/auth.tmpl", associate => $cgi );
+ my $sessioncookie = new CGI::Cookie(-name => $session->name, -value => $session->id);
-$template->param( TITLE => gettext("VHFFS Login") );
-$template->param( TEXT_WELCOME => sprintf( gettext("Welcome on %s") , $hostname ) );
-$template->param( VHFFS_INFO => sprintf( "Run VHFFS %s (%s)" , Vhffs::Constants::VHFFS_VERSION , Vhffs::Constants::VHFFS_RELEASE_NAME ) );
-$template->param( TEXT_PLEASEIDENTIFY => gettext("Please enter your username and password") );
-$template->param( TEXT_USERNAME => gettext("Username") );
-$template->param( TEXT_PASSWORD => gettext("Password") );
-$template->param( TEXT_LOGIN => gettext("Access to panel") );
-$template->param( TEXT_LOSTPASSWORD => gettext("I've lost my password") );
-$template->param( TEXT_SUBSCRIBE => gettext("Subscribe") );
+ # Refresh cookies (avoid theme and language loss when user
+ # deletes cookies).
+ my $themecookie = new CGI::Cookie( -name=> 'theme', -value=>$user->get_theme, -expires=>'+10y' );
+ my $langcookie = new CGI::Cookie( -name=>'language', -value=>$user->get_lang, -expires=>'+10y' );
-$template->param( LANGS => Vhffs::Panel::Main::select_lang( $vhffs ) );
-
-
-if( $vhffs->get_config->stats_on_home == 1 )
-{
- use Vhffs::Stats;
- my $stats = new Vhffs::Stats( $vhffs );
- $stats->fetch;
- my $users = $stats->get_user_total;
- my $groups = $stats->get_groups_total;
-
- $template->param( TEXT_STATS => sprintf( gettext( "Woah, %s users and %s groups already trust %s" ) , $users, $groups , $hostname ) );
+ $panel->redirect('/panel.pl', [$sessioncookie, $themecookie, $langcookie]);
+ }
}
-if( $vhffs->get_config->get_panel_public == 1 )
-{
- $template->param( TEXT_PUBLIC => gettext( "Go to public area" ) );
+if(!$submitted || $panel->has_errors) {
+ Vhffs::Panel::Commons::display_login($vhffs, $panel);
}
-
-display_light Vhffs::Panel::Main( $vhffs , $template , $cookie );
Modified: trunk/vhffs-panel/cvs/create.pl
===================================================================
--- trunk/vhffs-panel/cvs/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/cvs/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
@@ -55,18 +56,46 @@
my $maintemplate = $panel->{'template'};
my $user = $panel->{'user'};
my $group = $panel->{'group'};
+my $cgi = $panel->{cgi};
+my $submitted = defined($cgi->param('cvs_submit'));
+my $repo_name = $cgi->param('REPOSITORY_NAME');
+my $description = $cgi->param('DESCRIPTION');
+
my $templatedir = $vhffs->get_config->get_templatedir;
-my $template = new HTML::Template( filename => $templatedir."/cvs/create.tmpl" );
+if($submitted) {
+ if( $repo_name !~ /^[a-z0-9]+$/ ) {
+ $panel->add_error( gettext('Your repository name is not correct. It must contains only caracter and numbers') );
+ } elsif( length( $repo_name ) < 3 ) {
+ $panel->add_error( gettext('Your repository name is not correct. It must contains at least 3 caracters') );
+ } elsif( $description =~ /^\s*$/ ) {
+ $panel->add_error( gettext('You must enter a description') );
+ } else {
+ #Create CVS
+ my $cvs = Vhffs::Panel::Cvs::create_cvs( $vhffs, $repo_name, $description, $user , $group );
+ if( defined $cvs ) {
+ my $url = '/panel.pl?project='.$panel->{groupname}.'&msg='.gettext('The CVS object was successfully created !');
+ $panel->redirect($url);
+ } else {
+ $panel->add_error( gettext( 'An error occured while creating the object.It probably already exists' ) );
+ }
+ }
+}
-$template->param( TITLE => gettext("Create a CVS Repository") );
-$template->param( REPOSITORY_NAME => gettext("Repository Name") );
-$template->param( GROUP_NAME => gettext("Group owning this CVS") );
+if(!$submitted || $panel->has_errors()) {
+ my $template = new HTML::Template( filename => $templatedir."/cvs/create.tmpl" );
+
+ $panel->set_title( gettext('Create a CVS Repository') );
+ $template->param( REPOSITORY_NAME => gettext("Repository Name") );
+ $template->param( REPOSITORY_VALUE => $repo_name );
+ $template->param( GROUP_NAME => gettext("Group owning this CVS") );
-$template->param( GROUP => $group->get_groupname );
-$template->param( SEND => gettext("Send") );
-$template->param( DESCRIPTION => gettext("Description") );
+ $template->param( GROUP => $group->get_groupname );
+ $template->param( SEND => gettext("Send") );
+ $template->param( DESCRIPTION => gettext("Description") );
+ $template->param( DESCRIPTION_VALUE => $description);
-display Vhffs::Panel::Main($panel, $template->output);
+ display Vhffs::Panel::Main($panel, $template->output);
+}
Deleted: trunk/vhffs-panel/cvs/cvs_submit.pl
===================================================================
--- trunk/vhffs-panel/cvs/cvs_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/cvs/cvs_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,101 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-# This file is a part of VHFFS project
-# Please consider the entire project
-
-# Author: sod
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-use Vhffs::Panel::Group;
-
-my $panel = new Vhffs::Panel::Main;
-if(!$panel) {
- exit 0;
-}
-
-my $vhffs = $panel->{'vhffs'};
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-my $user = $panel->{'user'};
-my $group = $panel->{'group'};
-my $groupname = $panel->{'groupname'};
-my $cgi = $panel->{'cgi'};
-my $message;
-
-my $repo_name = $cgi->param("REPOSITORY_NAME");
-my $description = $cgi->param("DESCRIPTION");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-
-if( ! ( $repo_name =~ /^[a-z0-9]+$/ ) )
-{
- $message = "Your repository name is not correct. It must contains only caracter and numbers";
-}
-elsif( length( $repo_name ) < 3 )
-{
- $message = "Your repository name is not correct. It must contains at least 3 caracters";
-}
-else
-{
- #Create CVS
- my $cvs = Vhffs::Panel::Cvs::create_cvs( $vhffs , "$repo_name" , $user , $group );
- if( defined $cvs )
- {
- $cvs->set_description( $description );
- $cvs->commit;
- $message = gettext("The CVS object was successfully created !");
- }
- else
- {
- $message = gettext( "An error occured while creating the object.It probably already exists" );
- }
-}
-
-my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-$template->param( MESSAGE => $message );
-
-set_refresh_url Vhffs::Panel::Main($panel, "/panel.pl?project=$groupname", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/cvs/delete.pl
===================================================================
--- trunk/vhffs-panel/cvs/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/cvs/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -66,13 +67,13 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $cvs = new Vhffs::Services::Cvs( $vhffs , $repo , $user , $group );
+my $cvs;
-if( ( ! defined $repo ) || ( ! defined $cvs ) || ( ! defined $sure ) )
+if( ( ! defined $repo ) || ( ! defined $sure ) )
{
$message = sprintf( gettext("CGI Error ! %s"), $repo );
}
-elsif( $cvs->fetch < 0 )
+elsif( !defined($cvs = Vhffs::Services::Cvs::get_by_cvsroot($vhffs, $repo) ) )
{
$message = gettext( "Cannot retrieve informations about this CVS repository" );
}
Modified: trunk/vhffs-panel/cvs/prefs.pl
===================================================================
--- trunk/vhffs-panel/cvs/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/cvs/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -60,19 +61,19 @@
my $repo_name = $cgi->param("name");
my $template;
-my $cvs = new Vhffs::Services::Cvs( $vhffs , $repo_name , $user );
+my $cvs;
my $message;
my $templatedir = $vhffs->get_config->get_templatedir;
-if( ( ! defined $repo_name ) || ( ! defined $cvs ) )
+if( ! defined $repo_name )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "CGI Error !");
$template->param( MESSAGE => $message );
}
-elsif( $cvs->fetch < 0 )
+elsif( !defined($cvs = Vhffs::Services::Cvs::get_by_cvsroot($vhffs, $repo_name) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "Cannot get informations on this object");
Modified: trunk/vhffs-panel/cvs/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/cvs/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/cvs/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -66,14 +67,13 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $cvs = new Vhffs::Services::Cvs( $vhffs , $repo , $user , $group );
+my $cvs;
-if( ( ! defined $repo ) || ( ! defined $cvs ) )
+if( ( ! defined $repo ) )
{
$message = sprintf( gettext("CGI Error ! %s"), $repo );
-}
-elsif( $cvs->fetch < 0 )
-{
+
+} elsif( !defined($cvs = Vhffs::Services::Cvs::get_by_cvsroot($vhffs, $repo) ) ) {
$message = gettext( "Cannot retrieve informations about this CVS repository" );
}
elsif( ( Vhffs::Acl::what_perm_for_user( $user , $cvs , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
Deleted: trunk/vhffs-panel/dns/add_a.pl
===================================================================
--- trunk/vhffs-panel/dns/add_a.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/add_a.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,133 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-#Add a A to a domain
-#This is the CGI part, it uses the main API of VHFFS
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-
-
-#Fetch some vars from the main API
-my $cgi = $panel->{'cgi'};
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("PREFIX");
-my $ip = $cgi->param("IP");
-my $user = $panel->{'user'};
-my $question = $cgi->param("QUESTION");
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) || ( ! defined $ip ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
- $message = gettext( "Cannot get informations on this object");
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- #If $question equals to 1, we must use the adress defined in the VHFFS config file
- #With this option, the user just put the name for the A redir and the API takes the IP from the config file
- if( ( defined $question ) && ( $question == 1 ) )
- {
- # add_a( $foo , undef ) will add to the domain
- # foo.domain IN A adress_in_config_file
- if( $dns->add_a( $name , undef ) < 0 )
- {
- $message = gettext("Cannot add this ressource to this domain");
- }
- else
- {
- $message = gettext("Resource successfully added to this domain");
- }
- }
- else
- {
- #Check if the IP is valid and add it on the domain
- if( ! ( $ip =~ /[\d+\.].[\d+\.].[\d+\.].[\d+]/ ) )
- {
- $message = gettext("Invalid IP");
- }
- elsif( $dns->add_a( $name , $ip ) < 0 )
- {
- $message = gettext("Cannot add this ressource to this domain");
- }
- else
- {
- $message = gettext("Resource successfully added to this domain");
- }
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/add_cname.pl
===================================================================
--- trunk/vhffs-panel/dns/add_cname.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/add_cname.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,109 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("PREFIX");
-my $destination = $cgi->param("DESTINATION");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) || ( ! defined $destination ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->add_cname( $name , $destination ) < 0 )
- {
- $message = gettext("Cannot add this ressource to this domain");
- }
- else
- {
- $message = gettext("Resource successfully added to this domain");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/add_mx.pl
===================================================================
--- trunk/vhffs-panel/dns/add_mx.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/add_mx.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,109 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $priority = $cgi->param("PRIORITY");
-my $mx = $cgi->param("MXNAME");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $mx ) || ( ! defined $priority ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->add_mx( $mx , $priority ) < 0 )
- {
- $message = gettext("Cannot add this ressource to this domain");
- }
- else
- {
- $message = gettext("Resource successfully added to this domain");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/add_ns.pl
===================================================================
--- trunk/vhffs-panel/dns/add_ns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/add_ns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,108 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $destination = $cgi->param("DESTINATION");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $destination ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->add_ns( $destination ) < 0 )
- {
- $message = gettext("Cannot add this ressource to this domain");
- }
- else
- {
- $message = gettext("Resource successfully added to this domain");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/dns/create.pl
===================================================================
--- trunk/vhffs-panel/dns/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -9,6 +9,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/dns/delete.pl
===================================================================
--- trunk/vhffs-panel/dns/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -56,7 +57,7 @@
my $sure = $cgi->param("DELETE");
my $user = $panel->{'user'};
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
+my $dns = Vhffs::Services::DNS::get_by_domainname( $vhffs , $domain_name );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -73,11 +74,11 @@
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-if( ( ! defined $domain_name ) || ( ! defined $dns ) )
+if( ! defined $domain_name )
{
$message = gettext( "CGI Error!");
}
-elsif( $dns->fetch < 0 )
+elsif( ! defined $dns )
{
$message = gettext( "Cannot get informations on this object");
Deleted: trunk/vhffs-panel/dns/delete_a.pl
===================================================================
--- trunk/vhffs-panel/dns/delete_a.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/delete_a.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,79 +0,0 @@
-#!/usr/bin/perl -w
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("ANAME");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-
-my $template;
-my $output = "";
-my $message;
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) )
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->delete_a( $name ) < 0 )
- {
- $message = gettext("Cannot delete it.");
- }
- else
- {
- $message = gettext("This part of the domain is now removed.");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/delete_cname.pl
===================================================================
--- trunk/vhffs-panel/dns/delete_cname.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/delete_cname.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,108 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("NAME");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) )
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->delete_cname( $name ) < 0 )
- {
- $message = gettext("Cannot delete it.");
- }
- else
- {
- $message = gettext("This part of the domain is now removed.");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/delete_mx.pl
===================================================================
--- trunk/vhffs-panel/dns/delete_mx.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/delete_mx.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,108 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $priority = $cgi->param("PRIORITY");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $priority ) )
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->delete_mx( $priority ) < 0 )
- {
- $message = gettext("Cannot delete it.");
- }
- else
- {
- $message = gettext("This part of the domain is now removed.");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/delete_ns.pl
===================================================================
--- trunk/vhffs-panel/dns/delete_ns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/delete_ns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,107 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $ip = $cgi->param("IP");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $ip ) )
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->delete_ns( $ip ) < 0 )
- {
- $message = gettext("Cannot delete it.");
- }
- else
- {
- $message = gettext("This part of the domain is now removed.");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/dns/dns_submit.pl
===================================================================
--- trunk/vhffs-panel/dns/dns_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/dns_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -64,23 +65,19 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $dns = Vhffs::Panel::DNS::create_dns( $vhffs , "$domain_name" , $user , $group );
if( ! ( $domain_name =~ /^[a-z0-9\.\-]+$/ ) )
{
- $message = gettext("Invalid domain name");
+ $message = gettext('Invalid domain name');
+} else {
+ my $dns = Vhffs::Panel::DNS::create_dns( $vhffs, $domain_name, $description, $user, $group );
+ if( defined $dns ) {
+ $message = gettext('The DNS object was successfully created !');
+ } else {
+ $message = gettext('An error occured while creating the object. The domain is not correct or aleady exists in Vhffs database');
+ }
}
-elsif( defined $dns )
-{
- $dns->set_description( $description );
- $dns->commit;
- $message = gettext("The DNS object was successfully created !");
-}
-else
-{
- $message = gettext( "An error occured while creating the object. The domain is not correct or aleady exists in Vhffs database" );
-}
my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
Modified: trunk/vhffs-panel/dns/dns_type_submit.pl
===================================================================
--- trunk/vhffs-panel/dns/dns_type_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/dns_type_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,12 +38,14 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Panel::Menu;
use Vhffs::Panel::Group;
+use Vhffs::Services::DNS;
my $panel = new Vhffs::Panel::Main;
if(!$panel) {
@@ -62,8 +64,8 @@
my $prefix = $cgi->param("PREFIX");
my $ip = $cgi->param("IP");
-my question = $cgi->param("QUESTION");
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name );
+my $question = $cgi->param("QUESTION");
+my $dns = Vhffs::Services::DNS::get_by_domainname( $vhffs , $domain_name );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -74,32 +76,19 @@
}
else
{
- if( $dns->fetch < 0 )
- {
- $message = "Error while fetching object $domain_name";
- }
- else
- {
-
- if( $dns->add_a( $prefix , $ip ) < 0 )
- {
- $message = "Error while create a type $retour";
+ if( $dns->add_a( $prefix , $ip ) < 0 ) {
+ $message = "Error while create a type A";
+ } else {
+ if( $dns->commit < 0) {
+ $message = "Error while update object";
+ } else {
+ $message = "Modifications applied to the database";
}
- else
- {
- if( $dns->commit < 0)
- {
- $message = "Error while update object $retour";
- }
- else
- {
- $message = "Modifications applied to the database";
- }
- }
}
}
+
my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$template->param( MESSAGE => $message );
Deleted: trunk/vhffs-panel/dns/modif_a.pl
===================================================================
--- trunk/vhffs-panel/dns/modif_a.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/modif_a.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,113 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("PREFIX");
-my $ip = $cgi->param("IP");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) || ( ! defined $ip ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( ! ( $ip =~ /[\d+\.].[\d+\.].[\d+\.].[\d+]/ ) )
- {
- $message = gettext("Invalid IP");
- }
- elsif( $dns->update_a( $name , $ip ) < 0 )
- {
- $message = gettext("Cannot modify this ressource on this domain");
- }
- else
- {
- $message = gettext("Updated !");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/modif_cname.pl
===================================================================
--- trunk/vhffs-panel/dns/modif_cname.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/modif_cname.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,109 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $name = $cgi->param("PREFIX");
-my $destination = $cgi->param("DESTINATION");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $name ) || ( ! defined $destination ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->update_cname( $name , $destination ) < 0 )
- {
- $message = gettext("Cannot update CNAME on this domain");
- }
- else
- {
- $message = gettext("CNAME field successfully updated");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Deleted: trunk/vhffs-panel/dns/modif_mx.pl
===================================================================
--- trunk/vhffs-panel/dns/modif_mx.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/modif_mx.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,109 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-my $cgi = $panel->{'cgi'};
-
-my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("DOMAIN");
-my $priority = $cgi->param("PRIORITY");
-my $mx = $cgi->param("IP");
-my $user = $panel->{'user'};
-
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
-
-
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-
-my $group = $panel->{'group'};
-my $projectname = $session->param("project");
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $template;
-my $output = "";
-my $message;
-
-$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-
-if( ( ! defined $domain_name ) || ( ! defined $dns ) || ( ! defined $mx ) || ( ! defined $priority ))
-{
- $message = gettext( "CGI Error!");
-}
-elsif( $dns->fetch < 0 )
-{
-
- $message = gettext( "Cannot get informations on this object");
-
-}
-elsif( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-elsif( $dns->get_status != Vhffs::Constants::ACTIVATED )
-{
- $message = gettext("You're not allowed to do this (ACL rights)");
-}
-else
-{
- if( $dns->update_mx( $mx , $priority ) < 0 )
- {
- $message = gettext("Cannot update MX on this domain");
- }
- else
- {
- $message = gettext("MX successfully changed");
- }
-}
-
-$template->param( MESSAGE => $message );
-set_refresh_url Vhffs::Panel::Main($panel, "/dns/prefs.pl?name=$domain_name", 0);
-display Vhffs::Panel::Main($panel, $template->output);
Modified: trunk/vhffs-panel/dns/prefs.pl
===================================================================
--- trunk/vhffs-panel/dns/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/dns/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -52,10 +53,10 @@
my $cgi = $panel->{'cgi'};
my $vhffs = $panel->{'vhffs'};
-my $domain_name = $cgi->param("name");
+my $domain_name = $cgi->param('domain');
my $user = $panel->{'user'};
-my $dns = new Vhffs::Services::DNS( $vhffs , $domain_name , $user );
+my $dns = Vhffs::Services::DNS::get_by_domainname( $vhffs , $domain_name );
my $session = $panel->{'session'};
@@ -71,13 +72,13 @@
my $output = "";
my $message;
-if( ( ! defined $domain_name ) || ( ! defined $dns ) )
+if( ! defined $domain_name )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "CGI Error!");
$template->param( MESSAGE => $message );
}
-elsif( ( my $retour = $dns->fetch ) < 0 )
+elsif( !defined $dns)
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -100,16 +101,88 @@
}
else
{
+ my $action = $cgi->param('action');
+ACTION: {
+ if(defined $action) {
+ # Check user's rights
+ if( ( Vhffs::Acl::what_perm_for_user( $user , $dns , $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ) ) {
+ $panel->add_error(gettext('You\'re not allowed to do this (ACL rights)'));
+ last ACTION;
+ }
+ my $id = $cgi->param('rr_id');
+ my $data = $cgi->param('data');
+ my $name = $cgi->param('name');
+ my $aux = $cgi->param('aux');
+
+ if($action eq 'manage_a') {
+ if(defined $cgi->param('modify_a_submit')) {
+ # User just want to modify an A record
+ eval { Vhffs::Panel::DNS::update_a($dns, $id, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to modify A record: %s'), $@)); }
+ else { $panel->add_info(gettext('A Record updated')); }
+ } else {
+ # User wants to delete it
+ eval { Vhffs::Panel::DNS::delete_a($dns, $id); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to delete A record: %s'), $@)); }
+ else { $panel->add_info(gettext('A Record deleted')); }
+ }
+ } elsif($action eq 'add_a') {
+ my $redirect = $cgi->param('redirect');
+ eval { Vhffs::Panel::DNS::add_a($dns, (defined $redirect && $redirect eq 'true'), $name, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to add A record: %s'), $@)); }
+ else { $panel->add_info(gettext('A record added')); }
+ } elsif($action eq 'manage_mx') {
+ if(defined $cgi->param('modify_mx_submit')) {
+ # User wants to modify an MX record
+ eval { Vhffs::Panel::DNS::update_mx($dns, $id, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to modify MX record: %s'), $@)); }
+ else { $panel->add_info(gettext('MX Record updated')); }
+ } else {
+ # MX deletion
+ eval { Vhffs::Panel::DNS::delete_mx($dns, $id); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to delete MX record: %s'), $@)); }
+ else { $panel->add_info(gettext('MX Record deleted')); }
+ }
+ } elsif($action eq 'add_mx') {
+ eval { Vhffs::Panel::DNS::add_mx($dns, $data, $aux); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to add MX record: %s'), $@)); }
+ else { $panel->add_info(gettext('MX Record added')); }
+ } elsif($action eq 'manage_ns') {
+ # Only deletion is allowed for NS record
+ eval { Vhffs::Panel::DNS::delete_ns($dns, $id); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to delete NS record: %s'), $@)); }
+ else { $panel->add_info(gettext('NS Record deleted')); }
+ } elsif($action eq 'add_ns') {
+ eval { Vhffs::Panel::DNS::add_ns($dns, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to add NS record: %s'), $@)); }
+ else { $panel->add_info(gettext('NS Record added')); }
+ } elsif($action eq 'manage_cname') {
+ if(defined $cgi->param('modify_cname_submit')) {
+ eval { Vhffs::Panel::DNS::update_cname($dns, $id, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to modify CNAME record: %s'), $@)); }
+ else { $panel->add_info(gettext('CNAME Record updated')); }
+ } else {
+ eval { Vhffs::Panel::DNS::delete_cname($dns, $id); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to delete CNAME record: %s'), $@)); }
+ else { $panel->add_info(gettext('CNAME Record deleted')); }
+ }
+ } elsif($action eq 'add_cname') {
+ eval { Vhffs::Panel::DNS::add_cname($dns, $name, $data); };
+ if($@) { $panel->add_error(sprintf(gettext('Unable to add CNAME record: %s'), $@)); }
+ else { $panel->add_info(gettext('CNAME Record added')); }
+ }
+ }
+}
my $cnames = $dns->get_cname_type;
- my $a = $dns->get_a_type;
+ my $a_rr = $dns->get_a_type;
my $mx = $dns->get_mx_type;
my $ns = $dns->get_ns_type;
+ $panel->set_title(sprintf(gettext("DNS Administration - %s"), $domain_name));
$template = new HTML::Template( filename => $templatedir."/dns/prefs.tmpl" );
- $template->param( TITLE => gettext("Admin DNS") );
+ $template->param( DOMAIN_NAME => $domain_name );
- $template->param( DOMAIN_NAME => $domain_name );
$template->param( TEXT_TYPEA => gettext("All A TYPE for you domain name") );
$template->param( TEXT_TYPEMX => gettext("All MX TYPE for you domain name") );
$template->param( TEXT_TYPECNAME => gettext("All CNAME for you domain name") );
@@ -172,86 +245,56 @@
$subtemplate = new HTML::Template( filename =>$templatedir. "/dns/list_sub.tmpl" );
+ if( scalar(keys %{$a_rr}) ) {
+ my $thirdtemplate = new HTML::Template( filename => $templatedir.'/dns/list_a_sub.tmpl', global_vars => 1, die_on_bad_params => 0);
+ my @list_a = sort {$a->{name} cmp $b->{name}} values(%{$a_rr});
+ $thirdtemplate->param( DEL => gettext( 'Delete' ) );
+ $thirdtemplate->param( DOMAIN => $domain_name );
+ $thirdtemplate->param( MODIFY => gettext( 'Modify' ) );
+ $thirdtemplate->param( A_RR => \@list_a);
+ $template->param( LIST_A => $thirdtemplate->output );
+ } else {
+ $template->param( LIST_A => gettext('No A type found' ));
+ }
- if( defined $a )
- {
- foreach( keys %{$a} )
- {
- my $thirdtemplate = new HTML::Template( filename => $templatedir."/dns/list_a_sub.tmpl" );
- $thirdtemplate->param( NOM => $_ );
- $thirdtemplate->param( IPNOM => $a->{$_}{data} );
- $thirdtemplate->param( DEL => gettext( "Delete" ) );
- $thirdtemplate->param( MODIFY => gettext( "Modify" ) );
- $thirdtemplate->param( DOMAIN => $domain_name );
- $output .= $thirdtemplate->output;
- }
- $template->param( LIST_A => $output );
- }
- else
- {
- $template->param( LIST_A => gettext("No A type found" ));
- }
+ if( scalar(keys %{$mx} ) ) {
+ $thirdtemplate = new HTML::Template( filename => $templatedir.'/dns/list_mx_sub.tmpl', global_vars => 1, die_on_bad_params => 0 );
+ my @list_mx = sort {$a->{aux} <=> $b->{aux}} values(%{$mx});
+ $thirdtemplate->param( DEL => gettext( 'Delete' ) );
+ $thirdtemplate->param( DOMAIN => $domain_name );
+ $thirdtemplate->param( MODIFY => gettext( 'Modify' ) );
+ $thirdtemplate->param( TEXT_PRIORITY => gettext( 'Priority: ' ));
+ $thirdtemplate->param( MX_RR => \@list_mx );
+ $template->param( LIST_MX => $thirdtemplate->output );
+ } else {
+ $template->param( LIST_MX => gettext( 'No MX reccord for this domain' ));
+ }
- if( defined $mx )
- {
- $output = "";
- foreach( keys ( %{$mx} ) )
- {
- $thirdtemplate = new HTML::Template( filename => $templatedir."/dns/list_mx_sub.tmpl" );
- $thirdtemplate->param( PRIORITY_VALUE => $_ );
- $thirdtemplate->param( TEXT_PRIORITY => gettext("Priority: "));
- $thirdtemplate->param( IP_VALUE => $mx->{$_}{data} );
- $thirdtemplate->param( DEL => gettext( "Delete" ) );
- $thirdtemplate->param( MODIFY => gettext( "Modify" ) );
- $thirdtemplate->param( DOMAIN => $domain_name );
- $output .= $thirdtemplate->output;
- }
- $template->param( LIST_MX => $output );
- }
- else
- {
- $template->param( LIST_MX => gettext( "No MX reccord for this domain" ));
- }
+ if( scalar(keys %{$cnames} ) ) {
+ $thirdtemplate = new HTML::Template( filename => $templatedir.'/dns/list_cname_sub.tmpl', global_vars => 1, die_on_bad_params => 0 );
+ $thirdtemplate->param( DEL => gettext( 'Delete' ) );
+ $thirdtemplate->param( MODIFY => gettext( 'Modify' ) );
+ $thirdtemplate->param( DOMAIN => $domain_name );
+ my @list_cname = sort {$a->{name} cmp $b->{name}} values(%{$cnames});
+ $thirdtemplate->param( CNAME_RR => \@list_cname );
- if( defined $cnames )
- {
- $output = "";
- foreach( keys ( %{$cnames} ) )
- {
- $thirdtemplate = new HTML::Template( filename => $templatedir."/dns/list_cname_sub.tmpl" );
- $thirdtemplate->param( VALUE_NAME => $_ );
- $thirdtemplate->param( VALUE_DESTINATION => $cnames->{$_}{data} );
- $thirdtemplate->param( DEL => gettext( "Delete" ) );
- $thirdtemplate->param( MODIFY => gettext( "Modify" ) );
- $thirdtemplate->param( DOMAIN => $domain_name );
- $output .= $thirdtemplate->output;
- }
- $template->param( LIST_CNAME => $output );
- }
- else
- {
- $template->param( LIST_CNAME => gettext( "No CNAME available on this domain") );
- }
+ $template->param( LIST_CNAME => $thirdtemplate->output );
+ } else {
+ $template->param( LIST_CNAME => gettext( 'No CNAME available on this domain' ) );
+ }
- if( defined $ns )
- {
- $output = "";
- foreach( keys ( %{$ns} ) )
- {
- $thirdtemplate = new HTML::Template( filename => $templatedir."/dns/list_ns_sub.tmpl" );
- $thirdtemplate->param( IP => $_ );
- $thirdtemplate->param( DEL => gettext( "Delete" ) );
- $thirdtemplate->param( DOMAIN => $domain_name );
- $output .= $thirdtemplate->output;
- }
- $template->param( LIST_NS => $output );
- }
- else
- {
- $template->param( LIST_NS => gettext( "No NS available on this domain") );
- }
+ if( scalar(keys %{$ns}) ) {
+ my @list_ns = sort {$a->{data} cmp $b->{data}} values(%{$ns});
+ $thirdtemplate = new HTML::Template( filename => $templatedir.'/dns/list_ns_sub.tmpl', global_vars => 1, die_on_bad_params => 0 );
+ $thirdtemplate->param( DEL => gettext( 'Delete' ) );
+ $thirdtemplate->param( DOMAIN => $domain_name );
+ $thirdtemplate->param( NS_RR => \@list_ns );
+ $template->param( LIST_NS => $thirdtemplate->output );
+ } else {
+ $template->param( LIST_NS => gettext( "No NS available on this domain") );
+ }
if( $user->is_admin == 1 )
{
Deleted: trunk/vhffs-panel/functions.js
===================================================================
--- trunk/vhffs-panel/functions.js 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/functions.js 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +0,0 @@
-function ShowHideId( el ) {
- var menu = document.getElementById( el );
- if(menu.style.display == 'none') {
- menu.style.display = '';
- } else {
- menu.style.display = 'none';
-
- }
-}
-
Modified: trunk/vhffs-panel/getavatar.pl
===================================================================
--- trunk/vhffs-panel/getavatar.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/getavatar.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use CGI;
use GD;
use GD::Text::Wrap;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Object;
use Vhffs::Panel::Avatar;
@@ -55,7 +56,7 @@
$vhffs = init Vhffs::Main;
$oid = $cgi->param( "oid" );
-$object = new Vhffs::Object( $vhffs , $oid , '401' );
+$object = Vhffs::Object::get_by_oid( $vhffs , $oid );
$path = Vhffs::Panel::Avatar::exists_avatar( $vhffs , $object );
Modified: trunk/vhffs-panel/group/create.pl
===================================================================
--- trunk/vhffs-panel/group/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/group/delete.pl
===================================================================
--- trunk/vhffs-panel/group/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
Modified: trunk/vhffs-panel/group/join_group.pl
===================================================================
--- trunk/vhffs-panel/group/join_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/join_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -61,24 +62,20 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $user2 = new Vhffs::User( $vhffs , $username , 401 );
+my $user2 = Vhffs::User::get_by_username( $vhffs , $username );
my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
if( ! defined( $username ) )
{
$message = gettext("CGI Error");
}
-elsif( ! defined( $user2 ) )
-{
- $message = gettext( "No such user on Vhffs");
-}
elsif( ( Vhffs::Acl::what_perm_for_user( $user , $group, $vhffs ) < Vhffs::Constants::ACL_MODIFY ) && ( $user->is_admin != 1 ))
{
$message = gettext( "You're not allowed to do this (ACL rights)" );
}
else{
- if( $user2->fetch > 0 )
+ if( defined $user2 )
{
if( $group->add_user( $user2 ) < 0 )
{
@@ -96,19 +93,19 @@
my $subtemplate;
my $output = "";
- my $users = Vhffs::Panel::User::getall_users( $vhffs , $username );
+ my $users = Vhffs::Panel::User::search( $vhffs , $username );
if( defined $users )
{
$template = new HTML::Template( filename => $templatedir."/group/add_user.tmpl" );
$template->param( TEXT_TITLE => gettext("Many users matched your query. Please choose between them") );
- foreach( sort ( keys %{$users} ) )
+ foreach( @{$users} )
{
$subtemplate = new HTML::Template( filename => $templatedir."/group/list_user.tmpl" );
- $subtemplate->param( VALUE_FIRSTNAME => $users->{$_}{'firstname'} );
- $subtemplate->param( VALUE_LASTNAME => $users->{$_}{'lastname'} );
- $subtemplate->param( VALUE_USERNAME => $users->{$_}{'username'} );
+ $subtemplate->param( VALUE_FIRSTNAME => $_->{'firstname'} );
+ $subtemplate->param( VALUE_LASTNAME => $_->{'lastname'} );
+ $subtemplate->param( VALUE_USERNAME => $_->{'username'} );
$subtemplate->param( VALUE_GROUPNAME => $group->get_groupname );
$subtemplate->param( TEXT_SEND => gettext("Add this user to this group"));
Modified: trunk/vhffs-panel/group/prefs.pl
===================================================================
--- trunk/vhffs-panel/group/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -61,9 +62,9 @@
my $message;
-my $group = new Vhffs::Group( $vhffs , $projectname , '401' );
+my $group = $panel->{'group'};
-if( ( ! defined $group ) || ( $group->fetch < 0 ) )
+if( ! defined $group )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$template->param( MESSAGE => gettext( "Error. This group doesn't exists") );
Modified: trunk/vhffs-panel/group/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/group/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -68,11 +69,6 @@
#We test if the owner exist
my $retour;
-#$retour = $userowner->fetch;
-#if( $retour < 0 )
-#{
-# $message = gettext("This user doesn't exist in VHFFS database");
-#}
if( ! defined ( $description ) )
{
$message = gettext("CGI Error !");
Modified: trunk/vhffs-panel/group/project_submit.pl
===================================================================
--- trunk/vhffs-panel/group/project_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/project_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,29 +79,9 @@
}
else
{
- $retour = Vhffs::Panel::Group::create_group( $groupname , $user , $vhffs );
-
- if( $retour == -1 )
- {
- $message = gettext("The groupname should contain at least 3 caracters and must contain only letters or numbers");
- }
- #elsif( ! defined ( $group = Vhffs::Panel::Group::create_group( $groupname , $user , $vhffs ) ) )
- elsif( $retour == -2 )
- {
- $message = gettext("This group already exists");
- }
- elsif( $retour < -2 )
- {
- $message = gettext("Error while creation !");
- }
- else
- {
- $group = new Vhffs::Group( $vhffs , $groupname , $user );
- $group->fetch;
- $group->set_description( quotemeta( $description ) );
-
- # Commit all the changes for the current project
- $group->commit;
+ if ( ! defined($group = Vhffs::Panel::Group::create_group( $groupname , $user , $vhffs, $description )) ) {
+ $message = gettext('Error creating group (maybe a group with the same name already exists)');
+ } else {
$message = gettext("Project Successfully created !");
}
}
Modified: trunk/vhffs-panel/group/quota_used.pl
===================================================================
--- trunk/vhffs-panel/group/quota_used.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/quota_used.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -42,6 +42,7 @@
use GD::Text::Wrap;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -60,7 +61,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
my $template;
my $subtemplate;
-my $group = new Vhffs::Group( $vhffs , $groupname , '401' );
+my $group = Vhffs::Group::get_by_groupname( $vhffs , $groupname );
my $status;
my $quota;
@@ -80,7 +81,7 @@
$status = 0;
-if( ( ! defined $group ) || ( $group->fetch < 0 ) )
+if( ( ! defined $group ) )
{
$gd = GD::Image->new(70,100);
$white = $gd->colorAllocate(255,255,255);
Modified: trunk/vhffs-panel/group/remove_user_from_group.pl
===================================================================
--- trunk/vhffs-panel/group/remove_user_from_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/group/remove_user_from_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -59,13 +60,13 @@
my $message;
my $username = $cgi->param("USERNAME");
-my $user2 = new Vhffs::User( $vhffs , $username , 401 );
+my $user2 = Vhffs::User::get_by_username( $vhffs , $username );
my $templatedir = $vhffs->get_config->get_templatedir;
#We test if the owner exist
-if( ( ! defined $username ) || ( ! defined $user2 ) )
+if( ! defined $username )
{
$message = gettext("CGI Error");
}
@@ -73,7 +74,7 @@
{
$message = gettext( "You're not allowed to do this (ACL rights)" );
}
-elsif( $user2->fetch < 0 )
+elsif( !defined $user2 )
{
$message = gettext( "This user does not exists ");
}
@@ -82,7 +83,7 @@
$message = gettext( "Cannot remove the owner from a group");
}
else{
- if( $group->remove_user_from_group( $user2 ) < 0 )
+ if( $group->remove_user( $user2 ) < 0 )
{
$message = gettext( "This user is not in this group " . $user2->get_uid);
}
Modified: trunk/vhffs-panel/history.pl
===================================================================
--- trunk/vhffs-panel/history.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/history.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -71,19 +72,19 @@
my $message;
-$object = new Vhffs::Object( $vhffs , $oid , '401' );
+$object = Vhffs::Object::get_by_oid( $vhffs , $oid );
my $templatesdir = $vhffs->get_config->get_templatedir;
-if( ( ! defined $oid ) || ( ! defined $object ) )
+if( ! defined $oid )
{
$template = new HTML::Template( filename => "$templatesdir/misc/simplemsg.tmpl" );
$message = gettext( "CGI Error !");
$template->param( MESSAGE => $message );
}
-elsif( $object->fetch < 0 )
+elsif( !defined $object )
{
$template = new HTML::Template( filename => "$templatesdir/misc/simplemsg.tmpl" );
Copied: trunk/vhffs-panel/js (from rev 555, branches/vhffs_4.1/vhffs-panel/js)
Deleted: trunk/vhffs-panel/login.pl
===================================================================
--- trunk/vhffs-panel/login.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/login.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,129 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-use Crypt::PasswdMD5;
-use Vhffs::Misc::Salt;
-
-use Vhffs::User;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-
-# nettoyage de la session precedente
-my $oldsid = CGI->cookie("session");
-if($oldsid) {
- my $oldsession = new CGI::Session(undef, $oldsid, {Directory=>'/tmp'});
- $oldsession->delete();
-}
-
-# Init the Vhffs Main System
-my $vhffs = init Vhffs::Main;
-
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-
-# recuperation des donnees des champs du form de login
-my $current_cgi = new CGI;
-my $username = $current_cgi->param("username");
-my $password = $current_cgi->param("password");
-my $user = new Vhffs::User( $vhffs, $username, 401 );
-
-my $auth = 0;
-
-my $template;
-
-
-#If platform is closed, the user cannot log in
-if( $vhffs->get_config->get_panel_open == 0 )
-{
- $template = new HTML::Template( filename => $templatedir."/main/close.tmpl" );
- $template->param( TITLE => gettext("Platform temporary closed") );
- $template->param( TEXT_CLOSE => gettext("Platform temporary closed.") );
- $template->param( TEXT_EXPLAIN => gettext("This platform is temporary closed. Administrators are performing some maintenances tasks. Please come back in a few minutes to log in.") );
- display_light Vhffs::Panel::Main( $vhffs , $template );
- exit 0;
-}
-
-if( ( ! defined( $username ) ) || ( ! defined ( $password ) ) || ( ! defined $user ) )
-{
-
- $template = new HTML::Template( filename => $templatedir."/main/login_failed.tmpl" );
- $template->param( TITLE => gettext("VHFFS Login failed") );
- $template->param( TEXT_LOGINFAILED => gettext("Login failed !") );
- $template->param( TEXT_LOGIN => gettext("Login") );
-
- display_light Vhffs::Panel::Main( $vhffs , $template );
-}
-else
-{
-
-
- my $ret = $user->fetch;
- if ( $ret >= 0 ) {
- $auth=1 if ( $user->check_password( $password ) && ( $user->get_status == Vhffs::Constants::ACTIVATED ) )
- }
-
- if( $auth == 1 )
- {
- my $session = new CGI::Session("driver:File", undef, {Directory=>'/tmp'});
- $session->expires("+1h");
- $session->param("username", $user->get_username);
- $session->param("uid", $user->get_uid);
-
- my $sid = $session->id();
- my $cookie = CGI->cookie(session => $sid);
-
- $template = new HTML::Template( filename => $templatedir."/main/login_ok.tmpl" );
- $template->param( TITLE => gettext("VHFFS Login OK") );
- $template->param( TEXT_PLEASEWAIT => gettext("Login OK, please wait...") );
- $template->param( TEXT_PANEL => gettext("Panel Access") );
-
- display_light Vhffs::Panel::Main( $vhffs , $template , $cookie);
- }
- else
- {
-
- $template = new HTML::Template( filename => $templatedir."/main/login_failed.tmpl" );
- $template->param( TITLE => gettext("VHFFS Login failed") );
- $template->param( TEXT_LOGINFAILED => gettext("Login failed !") );
- $template->param( TEXT_LOGIN => gettext("Login") );
-
- display_light Vhffs::Panel::Main( $vhffs , $template );
- }
-}
Modified: trunk/vhffs-panel/logout.pl
===================================================================
--- trunk/vhffs-panel/logout.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/logout.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,20 +37,19 @@
use CGI;
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
-# Init the Vhffs Main System
-my $vhffs = init Vhffs::Main;
-my $templatedir = $vhffs->get_config->get_templatedir;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
-Vhffs::Panel::Main::cookie_lang( $vhffs );
-
#clean session
-my $sid = CGI->cookie("session");
-if($sid)
+my $sid = CGI->cookie(CGI::Session::name());
+if( $sid )
{
- my $session = new CGI::Session(undef, $sid, {Directory=>'/tmp'});
- $session->delete();
+ my $session = new CGI::Session(undef, $sid, {Directory=>'/tmp'});
+ $session->delete();
}
@@ -60,4 +59,4 @@
$template->param( TEXT_LOGOUT => gettext("You left your VHFFS session!") );
$template->param( TEXT_LOGIN => gettext("Access to panel") );
-display_light Vhffs::Panel::Main( $vhffs , $template );
+display_light Vhffs::Panel::Main( $panel , $template );
Modified: trunk/vhffs-panel/lost.pl
===================================================================
--- trunk/vhffs-panel/lost.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/lost.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,17 +37,15 @@
use Locale::gettext;
use HTML::Template;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Panel::Main;
-# Init the Vhffs Main System
-my $vhffs = init Vhffs::Main;
-my $templatedir = $vhffs->get_config->get_templatedir;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
-my $cgi = new CGI;
-
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-
my $tmpl = new HTML::Template( filename => $templatedir."/main/lost.tmpl", associate => $cgi );
#$tmpl->param( TITLE => gettext("VHFFS Password Lost") );
@@ -57,4 +55,4 @@
$tmpl->param( TEXT_BUTTON => gettext("Give me a new password") );
$tmpl->param( TEXT_BACK => gettext("Back to login page") );
-display_light Vhffs::Panel::Main( $vhffs , $tmpl );
+display_light Vhffs::Panel::Main( $panel , $tmpl );
Modified: trunk/vhffs-panel/lost_ack.pl
===================================================================
--- trunk/vhffs-panel/lost_ack.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/lost_ack.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,23 +38,23 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
-# Init the Vhffs Main System
-my $vhffs = init Vhffs::Main;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-
# recuperation des donnees des champs du form de login
-my $cgi = new CGI;
+my $cgi = $panel->{'cgi'};
my $username = $cgi->param("username");
-my $user = new Vhffs::User( $vhffs, $username, 401 );
+my $user = Vhffs::User::get_by_username( $vhffs, $username );
my $template;
-if ( ( defined $user) && ( $user->fetch > 0 ) )
+
+if ( defined $user && $user->{'state'} == Vhffs::Constants::ACTIVATED )
{
#create a new password for this user
my $plainpassword = $user->generate_password;
@@ -70,7 +70,7 @@
$template->param( TEXT_WAITPASS => sprintf( gettext("Please wait %s, a new password will be sent to you in a few minutes..."), $username ) );
$template->param( TEXT_LOGIN => gettext("Login") );
- display_light Vhffs::Panel::Main( $vhffs , $template );
+ display_light Vhffs::Panel::Main( $panel , $template );
}
else
{
@@ -81,5 +81,5 @@
$template->param( TEXT_FAILED => gettext("Password recovery failed!") );
$template->param( TEXT_LOGIN => gettext("Login") );
- display_light Vhffs::Panel::Main( $vhffs , $template );
+ display_light Vhffs::Panel::Main( $panel , $template );
}
Modified: trunk/vhffs-panel/mail/add_account.pl
===================================================================
--- trunk/vhffs-panel/mail/add_account.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/add_account.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,11 +64,11 @@
my $password = $cgi->param("PASSWORD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
-if( $mail->fetch < 0 )
+if( !defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -104,14 +105,7 @@
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to record changes on this domain");
- }
- else
- {
- $message = gettext( "This box has been successfully added to this domain" );
- }
+ $message = gettext( "This box has been successfully added to this domain" );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/add_forward.pl
===================================================================
--- trunk/vhffs-panel/mail/add_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/add_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,13 +64,12 @@
my $fmail = $cgi->param("FMAIL");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-if( $mail->fetch < 0 )
-{
+if( ! defined $mail ) {
$message = gettext( "Cannot get informations on this object");
$template->param( MESSAGE => $message );
}
@@ -96,14 +96,7 @@
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext("Unable to record changes on this domain");
- }
- else
- {
- $message = gettext("This forward has been successfully added to this domain");
- }
+ $message = gettext("Unable to record changes on this domain");
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/change_forward.pl
===================================================================
--- trunk/vhffs-panel/mail/change_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/change_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,7 +64,7 @@
my $forward = $cgi->param("FORWARD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,17 +73,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ( ! defined $boxname ) || ( ! defined $forward ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -108,18 +101,11 @@
if( ( $retour = $mail->change_forward( $boxname , $forward ) ) < 0 )
{
- $message = gettext( "Can't modify forwarding" ) . "$retour , $boxname , $domain , $forward";
+ $message = sprintf( gettext( 'Unable to modify forward %s (%d)' ), $boxname , $retour );
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to reccord changes on this domain" );
- }
- else
- {
- $message = gettext( "Forwarding successfully added" );
- }
+ $message = gettext( 'Forward successfully added' );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/create.pl
===================================================================
--- trunk/vhffs-panel/mail/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/mail/delete.pl
===================================================================
--- trunk/vhffs-panel/mail/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -62,7 +63,7 @@
my $sure = $cgi->param("DELETE");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,9 +73,9 @@
{
$message = gettext( "CGI ERROR");
}
-elsif( $mail->fetch < 0 )
+elsif( !defined $mail )
{
- $message = gettext( "Cannot get informations on this object");
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
}
elsif( $mail->get_status != Vhffs::Constants::ACTIVATED )
{
Modified: trunk/vhffs-panel/mail/delete_box.pl
===================================================================
--- trunk/vhffs-panel/mail/delete_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/delete_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -62,24 +63,16 @@
my $boxname = $cgi->param("LOCALPART");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ! defined $boxname )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
Modified: trunk/vhffs-panel/mail/delete_forward.pl
===================================================================
--- trunk/vhffs-panel/mail/delete_forward.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/delete_forward.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -62,7 +63,7 @@
my $boxname = $cgi->param("LOCALPART");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -70,14 +71,9 @@
if( ! defined $mail )
{
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-}
elsif( ! defined $boxname )
{
$message = gettext( "CGI ERROR");
@@ -97,11 +93,11 @@
{
if( $mail->delforward( $boxname ) < 0 )
{
- $message = "Can't delete forward";
+ $message = sprintf(gettext('Unable to delete forward %s'), $boxname);
}
else
{
- $message = "Forward successfully deleted";
+ $message = gettext("Forward successfully deleted");
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/password_box.pl
===================================================================
--- trunk/vhffs-panel/mail/password_box.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/password_box.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,7 +64,7 @@
my $password = $cgi->param("PASSWORD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,17 +73,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ( ! defined $password ) || ( ! defined $boxname ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -112,14 +105,7 @@
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to reccord changes on this domain" );
- }
- else
- {
- $message = gettext( "Password successfully changed" );
- }
+ $message = gettext( "Password successfully changed" );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/prefs.pl
===================================================================
--- trunk/vhffs-panel/mail/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -67,13 +68,13 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
-if( $mail->fetch < 0 )
+if( !defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- my $message = gettext( "Cannot get informations on this object");
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/save_catchall.pl
===================================================================
--- trunk/vhffs-panel/mail/save_catchall.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/save_catchall.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -65,10 +66,10 @@
my $templatedir = $vhffs->get_config->get_templatedir;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-if( $mail->fetch < 0 )
+if( !defined $mail )
{
$message = gettext( "Cannot get informations on this object");
$template->param( MESSAGE => $message );
Modified: trunk/vhffs-panel/mail/spambox.pl
===================================================================
--- trunk/vhffs-panel/mail/spambox.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/spambox.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,7 +64,7 @@
my $password = $cgi->param("PASSWORD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,17 +73,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ! defined $boxname )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -114,18 +107,11 @@
if( ( $retour = $mail->change_spam_status( $boxname ) ) < 0 )
{
- $message = gettext( "Error when applying changes" );
+ $message = sprintf(gettext( 'Unable to change spam status for %s' ), $boxname);
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to reccord changes on this domain" );
- }
- else
- {
- $message = sprintf(gettext( "Spam status updated for box %s" ) , $boxname );
- }
+ $message = sprintf(gettext( 'Spam status updated for box %s' ) , $boxname );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/spamvirus.pl
===================================================================
--- trunk/vhffs-panel/mail/spamvirus.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/spamvirus.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -63,7 +64,7 @@
my $password = $cgi->param("PASSWORD");
my $template;
my $message;
-my $mail = new Vhffs::Services::Mail( $vhffs , $domain , $user , $group );
+my $mail = Vhffs::Services::Mail::get_by_mxdomain( $vhffs , $domain );
my $templatedir = $vhffs->get_config->get_templatedir;
@@ -72,17 +73,9 @@
if( ! defined $mail )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = sprintf( gettext("Cannot instanciate object %s"), $domain );
+ $message = sprintf( gettext("Unable to get information on mail domain %s"), $domain );
$template->param( MESSAGE => $message );
}
-elsif( $mail->fetch < 0 )
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Cannot get informations on this object");
- $template->param( MESSAGE => $message );
-
-}
elsif( ! defined $boxname )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -114,18 +107,11 @@
if( ( $retour = $mail->change_virus_status( $boxname ) ) < 0 )
{
- $message = gettext( "Error when applying changes" );
+ $message = sprintf(gettext( 'Unable to change virus protection status for %s' ), $boxname);
}
else
{
- if( $mail->commit < 0 )
- {
- $message = gettext( "Unable to reccord changes on this domain" );
- }
- else
- {
- $message = sprintf(gettext( "Virus status updated for box %s" ) , $boxname );
- }
+ $message = sprintf(gettext( "Virus status updated for box %s" ) , $boxname );
}
$template->param( MESSAGE => $message );
}
Modified: trunk/vhffs-panel/mail/submit.pl
===================================================================
--- trunk/vhffs-panel/mail/submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mail/submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -76,10 +77,8 @@
{
$message = gettext("Invalid mail domain");
}
-elsif( defined ( $mail = Vhffs::Panel::Mail::create_mail( $vhffs , $domain , $user , $group ) ))
+elsif( defined ( $mail = Vhffs::Panel::Mail::create_mail( $vhffs , $domain , $description, $user , $group ) ))
{
- $mail->set_description( $description );
- $mail->commit;
$message = gettext("Mail area successfully created !");
}
else
Modified: trunk/vhffs-panel/mailinglist/add_sub.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/add_sub.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/add_sub.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -69,7 +70,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain , $user , $group );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -79,10 +80,6 @@
}
elsif( ! defined ( $list ) )
{
- $message = gettext( "Cannot build object");
-}
-elsif( $list->fetch < 0 )
-{
$message = gettext( "Cannot get informations on this object");
}
elsif( $list->get_status != Vhffs::Constants::ACTIVATED )
Modified: trunk/vhffs-panel/mailinglist/change_right.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/change_right.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/change_right.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -71,7 +72,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs, $lpart, $domain );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -81,10 +82,6 @@
}
elsif( ! defined ( $list ) )
{
- $message = gettext( "Cannot build object");
-}
-elsif( $list->fetch < 0 )
-{
$message = gettext( "Cannot get informations on this object");
}
elsif( $list->get_status != Vhffs::Constants::ACTIVATED )
Modified: trunk/vhffs-panel/mailinglist/create.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/mailinglist/del_member.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/del_member.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/del_member.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -69,7 +70,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs, $lpart, $domain );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -79,10 +80,6 @@
}
elsif( ! defined ( $list ) )
{
- $message = gettext( "Cannot build object");
-}
-elsif( $list->fetch < 0 )
-{
$message = gettext( "Cannot get informations on this object");
}
elsif( $list->get_status != Vhffs::Constants::ACTIVATED )
Modified: trunk/vhffs-panel/mailinglist/delete.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -68,7 +69,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -78,10 +79,6 @@
}
elsif( ! defined $list )
{
- $message = gettext( "Cannot build object" );
-}
-elsif( $list->fetch < 0 )
-{
$message = gettext( "Cannot get informations on this object");
}
elsif( $list->get_status != Vhffs::Constants::ACTIVATED )
Modified: trunk/vhffs-panel/mailinglist/prefs.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -47,9 +48,7 @@
use Vhffs::Acl;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
+exit 0 unless $panel;
my $vhffs = $panel->{'vhffs'};
my $session = $panel->{'session'};
@@ -75,10 +74,10 @@
}
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
-if( ( ! defined $list ) || ( $list->fetch < 0 ) )
+if( ! defined $list )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -109,48 +108,55 @@
$template->param( VALUE_LOCALPART => $list->get_localpart );
$template->param( SUBTITLE_OPTIONS => gettext("Options") );
- $template->param( TEXT_MODERATED => gettext("Moderated") );
- $template->param( TEXT_OPENPOST => gettext("Open post") );
- $template->param( TEXT_OPENSUB => gettext("Open subscribing") );
- $template->param( TEXT_OPENARCHIVE => gettext("Open archives") );
+ $template->param( TEXT_SUBSCRIBE_CONTROL => gettext("Subscribe control:") );
+ $template->param( TEXT_SUBSCRIBE_NO_APPROVAL_REQUIRED => gettext("Open, no approval required") );
+ $template->param( TEXT_SUBSCRIBE_APPROVAL_REQUIRED => gettext("Open, approval required") );
+ $template->param( TEXT_SUBSCRIBE_CLOSED => gettext("Closed") );
+ $template->param( TEXT_POSTING_CONTROL => gettext("Posting control:") );
+ $template->param( TEXT_POSTING_OPEN_ALL => gettext("Open for everyone") );
+ $template->param( TEXT_POSTING_MODERATED_ALL => gettext("Moderated for everyone") );
+ $template->param( TEXT_POSTING_OPEN_MEMBERS_MODERATED_OTHERS => gettext("Open for members, moderated for non-members") );
+ $template->param( TEXT_POSTING_MEMBERS_ONLY => gettext("Members only") );
+ $template->param( TEXT_POSTING_MEMBERS_ONLY_MODERATED => gettext("Members only and moderated") );
+ $template->param( TEXT_POSTING_ADMINS_ONLY => gettext("Admins only") );
+ $template->param( VALUE_SUBSCRIBE_NO_APPROVAL_REQUIRED => Vhffs::Constants::ML_SUBSCRIBE_NO_APPROVAL_REQUIRED );
+ $template->param( VALUE_SUBSCRIBE_APPROVAL_REQUIRED => Vhffs::Constants::ML_SUBSCRIBE_APPROVAL_REQUIRED );
+ $template->param( VALUE_SUBSCRIBE_CLOSED => Vhffs::Constants::ML_SUBSCRIBE_CLOSED );
+ $template->param( VALUE_POSTING_OPEN_ALL => Vhffs::Constants::ML_POSTING_OPEN_ALL );
+ $template->param( VALUE_POSTING_MODERATED_ALL => Vhffs::Constants::ML_POSTING_MODERATED_ALL );
+ $template->param( VALUE_POSTING_OPEN_MEMBERS_MODERATED_OTHERS => Vhffs::Constants::ML_POSTING_OPEN_MEMBERS_MODERATED_OTHERS );
+ $template->param( VALUE_POSTING_MEMBERS_ONLY => Vhffs::Constants::ML_POSTING_MEMBERS_ONLY );
+ $template->param( VALUE_POSTING_MEMBERS_ONLY_MODERATED => Vhffs::Constants::ML_POSTING_MEMBERS_ONLY_MODERATED );
+ $template->param( VALUE_POSTING_ADMINS_ONLY => Vhffs::Constants::ML_POSTING_ADMINS_ONLY );
+ $template->param( SELECTED_SUBSCRIBE_NO_APPROVAL_REQUIRED => "selected" ) if( $list->{sub_ctrl} == Vhffs::Constants::ML_SUBSCRIBE_NO_APPROVAL_REQUIRED );
+ $template->param( SELECTED_SUBSCRIBE_APPROVAL_REQUIRED => "selected" ) if( $list->{sub_ctrl} == Vhffs::Constants::ML_SUBSCRIBE_APPROVAL_REQUIRED );
+ $template->param( SELECTED_SUBSCRIBE_CLOSED => "selected" ) if( $list->{sub_ctrl} == Vhffs::Constants::ML_SUBSCRIBE_CLOSED );
+ $template->param( SELECTED_POSTING_OPEN_ALL => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_OPEN_ALL );
+ $template->param( SELECTED_POSTING_MODERATED_ALL => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_MODERATED_ALL );
+ $template->param( SELECTED_POSTING_OPEN_MEMBERS_MODERATED_OTHERS => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_OPEN_MEMBERS_MODERATED_OTHERS );
+ $template->param( SELECTED_POSTING_MEMBERS_ONLY => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_MEMBERS_ONLY );
+ $template->param( SELECTED_POSTING_MEMBERS_ONLY_MODERATED => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_MEMBERS_ONLY_MODERATED );
+ $template->param( SELECTED_POSTING_ADMINS_ONLY => "selected" ) if( $list->{post_ctrl} == Vhffs::Constants::ML_POSTING_ADMINS_ONLY );
+
+ $template->param( TEXT_OPENARCHIVE => gettext("Public archives") );
$template->param( TEXT_REPLYTO => gettext("Reply to: on list") );
$template->param( TEXT_PREFIX => gettext("Prefix on subject") );
$template->param( VALUE_PREFIX => $list->get_prefix );
$template->param( TEXT_SUBMIT_PREFS => gettext("Save options") );
+
+ $template->param( TITLE_SIGNATURE => gettext("Signature") );
+ $template->param( VALUE_SIGNATURE => $list->get_signature );
+ $template->param( TEXT_SUBMIT_SIGNATURE => gettext("Update signature") );
$template->param( TITLE_MEMBERS => gettext("Manage members") );
$template->param( TITLE_LIST_MEMBERS => gettext("List all members") );
$template->param( TITLE_ADD_MEMBER => gettext("Add a member") );
$template->param( TEXT_ADD_MEMBER => gettext("Email adress") );
$template->param( BUTTON_ADD_MEMBER => gettext("Add !") );
+ $template->param( CHECK_OPENARCHIVE => "checked" ) if( $list->get_open_archive == 1 );
+ $template->param( CHECK_REPLYTO => "checked" ) if( $list->get_replyto == 1 );
-
- if( $list->get_open_archive == 1 )
- {
- $template->param( CHECK_OPENARCHIVE => "checked" );
- }
- if( $list->get_open_sub == 1 )
- {
- $template->param( CHECK_OPENSUB => "checked" );
- }
-
-
- if( $list->get_open_post == 1 )
- {
- $template->param( CHECK_OPENPOST => "checked" );
- }
-
- if( $list->get_replyto == 1 )
- {
- $template->param( CHECK_REPLYTO => "checked" );
- }
-
- if( $list->get_moderated == 1 )
- {
- $template->param( CHECK_MODERATED => "checked" );
- }
-
my $subs = $list->get_members;
my $output = "";
if( defined $subs )
@@ -164,22 +170,22 @@
$subtemplate->param( VALUE_LOCALPART => $list->get_localpart );
$subtemplate->param( VALUE_DOMAIN => $list->get_domain );
- $subtemplate->param( VALUE_RIGHT_SUB => Vhffs::Constants::ML_RIGHT_SUB );
- $subtemplate->param( VALUE_RIGHT_SUB_WAITING_FOR_REPLY => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY );
- $subtemplate->param( VALUE_RIGHT_SUB_WAITING_FOR_DELETE => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL);
- $subtemplate->param( VALUE_RIGHT_ADMIN => Vhffs::Constants::ML_RIGHT_ADMIN );
+ $subtemplate->param( VALUE_RIGHT_SUB => Vhffs::Constants::ML_RIGHT_SUB );
+ $subtemplate->param( VALUE_RIGHT_SUB_WAITING_FOR_REPLY => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY );
+ $subtemplate->param( VALUE_RIGHT_SUB_WAITING_FOR_VALIDATION => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_VALIDATION );
+ $subtemplate->param( VALUE_RIGHT_SUB_WAITING_FOR_DELETE => Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL);
+ $subtemplate->param( VALUE_RIGHT_ADMIN => Vhffs::Constants::ML_RIGHT_ADMIN );
+ $subtemplate->param( TEXT_RIGHT_SUB => gettext( "Subscribed" ) );
+ $subtemplate->param( TEXT_RIGHT_SUB_WAITING_FOR_REPLY => gettext( "Waiting for confirmation" ) );
+ $subtemplate->param( TEXT_RIGHT_SUB_WAITING_FOR_VALIDATION => gettext( "Waiting for validation" ) );
+ $subtemplate->param( TEXT_RIGHT_SUB_WAITING_FOR_DELETE => gettext( "Waiting for deletion" ) );
+ $subtemplate->param( TEXT_RIGHT_ADMIN => gettext( "Admin" ) );
+ $subtemplate->param( SELECTED_RIGHT_SUB => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB );
+ $subtemplate->param( SELECTED_RIGHT_SUB_WAITING_FOR_REPLY => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY );
+ $subtemplate->param( SELECTED_RIGHT_SUB_WAITING_FOR_VALIDATION => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_VALIDATION );
+ $subtemplate->param( SELECTED_RIGHT_SUB_WAITING_FOR_DELETE => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL );
+ $subtemplate->param( SELECTED_RIGHT_ADMIN => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_ADMIN );
- $subtemplate->param( TEXT_RIGHT_SUB => gettext( "Subscriber" ) );
- $subtemplate->param( TEXT_RIGHT_SUB_WAITING_FOR_REPLY => gettext( "Subscribed. Waiting for confirmation" ) );
- $subtemplate->param( TEXT_RIGHT_SUB_WAITING_FOR_DELETE => gettext( "Waiting for delete" ) );
-
- $subtemplate->param( TEXT_RIGHT_ADMIN => gettext( "Admin" ) );
-
- $subtemplate->param( SELECTED_RIGHT_ADMIN => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_ADMIN );
- $subtemplate->param( SELECTED_RIGHT_SUB_WAITING_FOR_DELETE => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_DEL );
- $subtemplate->param( SELECTED_RIGHT_SUB => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB );
- $subtemplate->param( SELECTED_RIGHT_SUB_WAITING_FOR_REPLY => "selected" ) if( $subs->{$_}{perm} == Vhffs::Constants::ML_RIGHT_SUB_WAITING_FOR_REPLY );
-
$output .= $subtemplate->output;
$num_members++;
}
Modified: trunk/vhffs-panel/mailinglist/save_options.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/save_options.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/save_options.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -47,9 +48,7 @@
use Vhffs::Acl;
use Vhffs::Constants;
my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
+exit 0 unless $panel;
my $vhffs = $panel->{'vhffs'};
my $session = $panel->{'session'};
@@ -62,11 +61,10 @@
my $lpart = $cgi->param("LOCALPART");
my $openarchive = $cgi->param("OPENARCHIVE");
-my $openpost = $cgi->param("OPENPOST");
-my $moderated = $cgi->param("MODERATED");
my $replyto = $cgi->param("REPLYTO");
-my $opensub = $cgi->param("OPENSUB");
my $prefix = $cgi->param("PREFIX");
+my $sub_ctrl = $cgi->param("SUBSCRIBE_CONTROL");
+my $post_ctrl = $cgi->param("POSTING_CONTROL");
my $template;
my $subtemplate;
@@ -74,7 +72,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain , $user , $group );
+my $list = Vhffs::Services::Mailing::get_by_mladdress( $vhffs , $lpart , $domain );
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -84,10 +82,6 @@
}
elsif( ! defined ( $list ) )
{
- $message = gettext( "Cannot build object");
-}
-elsif( $list->fetch < 0 )
-{
$message = gettext( "Cannot get informations on this object");
}
elsif( $list->get_status != Vhffs::Constants::ACTIVATED )
@@ -102,34 +96,11 @@
{
$list->set_prefix( $prefix ) if( defined $prefix );
- if( ! defined $moderated )
- {
- $list->set_moderated( 0 );
- }
- else
- {
- $list->set_moderated( 1 );
- }
- if( ! defined $opensub )
- {
- $list->set_open_sub( 0 );
- }
- else
- {
- $list->set_open_sub( 1 );
- }
+ $list->set_sub_ctrl( $sub_ctrl ) if( defined $sub_ctrl );
+ $list->set_post_ctrl( $post_ctrl ) if( defined $post_ctrl );
- if( ! defined $openpost )
- {
- $list->set_open_post( 0 );
- }
- else
- {
- $list->set_open_post( 1 );
- }
-
if( ! defined $openarchive )
{
$list->set_open_archive( 0 );
Copied: trunk/vhffs-panel/mailinglist/save_sig.pl (from rev 555, branches/vhffs_4.1/vhffs-panel/mailinglist/save_sig.pl)
Modified: trunk/vhffs-panel/mailinglist/submit.pl
===================================================================
--- trunk/vhffs-panel/mailinglist/submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mailinglist/submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -100,38 +101,20 @@
}
else
{
- my $retour;
- $retour = Vhffs::Panel::Mailinglist::create_list( $vhffs , $lpart , $domain , $user , $group );
+ my $lst;
+ $lst = Vhffs::Panel::Mailinglist::create_list( $vhffs, $lpart, $domain, $description, $user, $group );
- if( $retour > 0 )
- {
- $message = gettext("Mailing-list successfully created !");
-
- $list = new Vhffs::Services::Mailing( $vhffs , $lpart , $domain );
- $message = gettext("An error occured while fetching information about this mailing list") if( $list->fetch < 0 );
- $list->set_description( $description );
- $message = gettext("An error occured while applying changes") if ( $list->commit < 0 );
- }
- elsif( $retour == -1 )
- {
- $message = gettext("An error occured while creating the list");
- }
- elsif( $retour == -2 )
- {
+ if( ref($lst) ) {
+ $message = gettext("Mailing-list successfully created !");
+ } elsif( $lst == -1 ) {
+ $message = gettext("An error occured while creating the list");
+ } elsif( $lst == -2 ) {
$message = gettext("An error occured while adding yourself to the ACL");
- }
- elsif( $retour == -3 )
- {
- $message = gettext("An error occured while adding an ACL for the group");
- }
- else
- {
- $message = gettext("Error while creating list (unknow problem)");
- }
-
-
-# $list->set_description( $description );
-# $list->commit;
+ } elsif( $lst == -3 ) {
+ $message = gettext("An error occured while adding an ACL for the group");
+ } else {
+ $message = gettext("Error while creating list (unknow problem)");
+ }
}
Modified: trunk/vhffs-panel/mysql/create.pl
===================================================================
--- trunk/vhffs-panel/mysql/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mysql/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/mysql/delete.pl
===================================================================
--- trunk/vhffs-panel/mysql/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mysql/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -62,11 +63,11 @@
my $dbname = $cgi->param("DBNAME");
my $sure = $cgi->param("DELETE");
-my $mysql = new Vhffs::Services::Mysql( $vhffs , $dbname , $user , $group );
+my $mysql = Vhffs::Services::Mysql::get_by_dbname( $vhffs, $dbname );
my $templatedir = $vhffs->get_config->get_templatedir;
-if ( ! defined( $mysql ) || ( $mysql->fetch < 0 ) )
+if ( ! defined( $mysql ) )
{
$message = gettext("This database doesn't exist in VHFFS database");
}
Modified: trunk/vhffs-panel/mysql/prefs.pl
===================================================================
--- trunk/vhffs-panel/mysql/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mysql/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -61,7 +62,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $mysql = new Vhffs::Services::Mysql( $vhffs , $dbname , $user , $group );
+my $mysql = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $dbname );
my $message;
if( ! defined $dbname )
@@ -70,7 +71,7 @@
$message = gettext( "CGI Error !");
$template->param( MESSAGE => $message );
}
-elsif( $mysql->fetch < 0 )
+elsif( ! defined($mysql) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "Cannot get informations on this object");
Modified: trunk/vhffs-panel/mysql/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/mysql/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mysql/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -66,10 +67,10 @@
my $dbname = $cgi->param("name");
-my $mysql = new Vhffs::Services::Mysql( $vhffs , $dbname , $user , $group );
+my $mysql = Vhffs::Services::Mysql::get_by_dbname( $vhffs , $dbname );
-if ( ! defined( $mysql ) || ( $mysql->fetch < 0 ) )
+if ( ! defined( $mysql ) )
{
$message = gettext("This database doesn't exist on VHFFS");
}
Modified: trunk/vhffs-panel/mysql/submit.pl
===================================================================
--- trunk/vhffs-panel/mysql/submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/mysql/submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -93,10 +94,8 @@
{
$message = gettext( "The password is not valid" );
}
-elsif( defined ( $mysql = Vhffs::Panel::Mysql::create_mysql($vhffs,$dbname,$user,$group,$dbuser,$dbpass ) ) )
+elsif( defined ( $mysql = Vhffs::Panel::Mysql::create_mysql($vhffs,$dbname,$user,$group,$dbuser,$dbpass,$description ) ) )
{
- $mysql->set_description( $description );
- $mysql->commit;
$message = gettext("The MySQL object was successfully created !");
}
else
Modified: trunk/vhffs-panel/object/upavatar.pl
===================================================================
--- trunk/vhffs-panel/object/upavatar.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/object/upavatar.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Object;
use Vhffs::User;
use Vhffs::Main;
@@ -71,7 +72,7 @@
$cgioid = $cgi->param( 'OID' );
$filename = $cgi->param( 'avatar' );
-$object = new Vhffs::Object( $vhffs , $cgioid , '401' );
+$object = Vhffs::Object::get_by_oid( $vhffs , $cgioid );
$message = "";
@@ -95,7 +96,7 @@
{
$message = gettext( "Object-ID error" );
}
-elsif( ( ! defined( $object ) ) || ( $object->fetch < 0 ) )
+elsif( ! defined( $object ) )
{
$message = gettext( "Cannot find object" );
}
Modified: trunk/vhffs-panel/panel.pl
===================================================================
--- trunk/vhffs-panel/panel.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/panel.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
@@ -60,26 +61,23 @@
my $projectname = $cgi->param("project");
my $templatedir = $vhffs->get_config->get_templatedir;
-Vhffs::Panel::Main::check( $vhffs );
-
-
#We try to know if an admin want to su
if( defined $su_user )
{
if( $user->is_admin == 1 )
{
- my $user_bis = new Vhffs::User( $vhffs , $su_user , '401' );
- if( defined( $user_bis ) && ( $user_bis->fetch > 0 ) )
+ my $user_bis = Vhffs::User::get_by_username( $vhffs , $su_user );
+ if( defined( $user_bis ) )
{
$user = undef;
$user = $user_bis;
- $session->clear("username");
- $session->clear("uid");
- $session->param("username", $user_bis->get_username);
- $session->param("uid", $user_bis->get_uid);
+ $session->clear("username");
+ $session->clear("uid");
+ $session->param("username", $user_bis->get_username);
+ $session->param("uid", $user_bis->get_uid);
$session->flush();
$panel = new Vhffs::Panel::Main();
- $message = gettext( sprintf( "Su successfull with name %s " , $su_user) );
+ $message = gettext( sprintf( "Su successful with name %s " , $su_user) );
}
else
{
@@ -103,7 +101,8 @@
{
if( defined $projectname )
{
- $template = project_info Vhffs::Panel::Main($vhffs , $session , $user);
+ $template = project_info Vhffs::Panel::Main($vhffs, $panel->{group});
+ $template->param( MESSAGE => $cgi->param('msg') ) if(defined $cgi->param('msg'));
}
else
{
@@ -112,4 +111,3 @@
}
display Vhffs::Panel::Main($panel, $template->output);
-
Modified: trunk/vhffs-panel/pgsql/create.pl
===================================================================
--- trunk/vhffs-panel/pgsql/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/pgsql/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/pgsql/delete.pl
===================================================================
--- trunk/vhffs-panel/pgsql/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/pgsql/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -63,13 +64,13 @@
my $dbname = $cgi->param("DBNAME");
-my $pgsql = new Vhffs::Services::Postgres( $vhffs , $dbname , $user , $group );
+my $pgsql = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $dbname );
my $templatedir = $vhffs->get_config->get_templatedir;
-if ( ! defined( $pgsql ) || ( $pgsql->fetch < 0 ) )
+if ( ! defined( $pgsql ) )
{
- $message = gettext("This user doesn't exist in VHFFS database");
+ $message = gettext("This DB doesn't exist in VHFFS database");
}
elsif( Vhffs::Acl::what_perm_for_user( $user , $pgsql , $vhffs ) < Vhffs::Constants::ACL_DELETE )
{
Modified: trunk/vhffs-panel/pgsql/pgsql_submit.pl
===================================================================
--- trunk/vhffs-panel/pgsql/pgsql_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/pgsql/pgsql_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -79,20 +80,18 @@
{
$message = gettext("Password must contains only alphanum caracters");
}
-elsif( ( length( $dbname ) < 3 ) || ( length( $dbname ) >= 16 ) )
+elsif( ! Vhffs::Services::Postgres::check_dbname($dbname) )
{
$message = gettext( "Database name must contain between 3 and 16 characters" );
}
else
{
- my $postgres = Vhffs::Panel::Pgsql::create_pgsql( $vhffs , $dbname , $user , $group , $dbuser , $dbpass );
+ my $postgres = Vhffs::Panel::Pgsql::create_pgsql( $vhffs , $dbname , $user , $group , $dbuser , $dbpass, $description );
if( defined $postgres )
{
- $postgres->set_description( $description );
- $postgres->commit;
$message = gettext("The PostgreSQL object was successfully created !");
}
else
Modified: trunk/vhffs-panel/pgsql/prefs.pl
===================================================================
--- trunk/vhffs-panel/pgsql/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/pgsql/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -59,11 +60,11 @@
my $dbname = $cgi->param("name");
my $template;
my $message;
-my $pgsql = new Vhffs::Services::Postgres( $vhffs , $dbname , $user , $group );
+my $pgsql = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $dbname );
my $templatedir = $vhffs->get_config->get_templatedir;
-if( $pgsql->fetch < 0 )
+if( ! defined $pgsql)
{
my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
Modified: trunk/vhffs-panel/pgsql/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/pgsql/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/pgsql/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -67,13 +68,13 @@
my $dbname = $cgi->param("name");
-my $pgsql = new Vhffs::Services::Postgres( $vhffs , $dbname , $user , $group );
+my $pgsql = Vhffs::Services::Postgres::get_by_dbname( $vhffs , $dbname );
-if ( ! defined( $pgsql ) || ( $pgsql->fetch < 0 ) )
+if ( ! defined( $pgsql ) )
{
- $message = gettext("This user doesn't exist in VHFFS database");
+ $message = gettext("This DB doesn't exist in VHFFS database");
}
elsif( $pgsql->get_status != Vhffs::Constants::ACTIVATED )
{
Modified: trunk/vhffs-panel/public/allgroups.pl
===================================================================
--- trunk/vhffs-panel/public/allgroups.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/allgroups.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,19 +36,21 @@
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use Vhffs::Constants;
use CGI;
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-my $cgi = new CGI;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $cgi = $panel->{'cgi'};
+my $templatedir = $panel->{'templatedir'};
+
my $subtemplate;
my $template;
-my $templatedir = $vhffs->get_config->get_templatedir;
my $group;
my $letter = ( defined $cgi->param('letter') ? $cgi->param('letter') : 'a' );
undef $letter if( $letter eq 'all');
@@ -56,9 +58,7 @@
my $output_final="";
my $maintemplate = new HTML::Template( filename => $templatedir."/public/lastgroups.tmpl" );
-my $hostname;
-$hostname = $vhffs->get_config->get_host_name;
-$hostname = "VHFFS" if( ! defined $hostname );
+my $hostname = $vhffs->get_config->get_host_name;
$maintemplate->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
@@ -116,4 +116,6 @@
$maintemplate->param( BANNER => $subtemplate->output );
$maintemplate->param( VALUES => $output_final );
-print "Content-Type: text/html; charset=utf-8\n\n" . $maintemplate->output;
+
+
+display_light Vhffs::Panel::Main( $panel , $maintemplate );
Modified: trunk/vhffs-panel/public/allwebsites.pl
===================================================================
--- trunk/vhffs-panel/public/allwebsites.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/allwebsites.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,6 +37,7 @@
use strict;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -45,16 +46,20 @@
use Vhffs::Panel::Main;
use Vhffs::Services::Httpd;
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $cgi = $panel->{'cgi'};
+my $templatedir = $panel->{'templatedir'};
+
my $template;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $webs = Vhffs::Services::Httpd::getall( $vhffs , Vhffs::Constants::ACTIVATED);
+my $letters = Vhffs::Services::Httpd::get_used_letters($vhffs);
+my $letter = ( defined $cgi->param('letter') ? $cgi->param('letter') : (defined $letters->[0] ? $letters->[0]->{letter} : undef) );
+undef $letter if ( $letter eq 'all' );
+my $webs = Vhffs::Services::Httpd::getall_by_letter( $vhffs, $letter, Vhffs::Constants::ACTIVATED);
my $output_final = "";
my $web;
my $maintemplate;
my $subtemplate;
-my $cgi = new CGI;
my $hostname = $vhffs->get_config->get_host_name;
$maintemplate = new HTML::Template( filename => $templatedir."/public/allwebsites.tmpl" );
@@ -62,8 +67,13 @@
$maintemplate->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
$maintemplate->param( TEXT_TITLE => sprintf( gettext("All websites on %s") , $hostname ) );
+$maintemplate->param( LETTERS => $letters );
+$maintemplate->param( ALL => gettext('All') );
+if( @{$webs} == 0 )
+{
+ $maintemplate->param( MESSAGE => gettext('No webarea') );
+}
-
my $output = "";
foreach $web (@{$webs})
@@ -95,4 +105,4 @@
$maintemplate->param( BANNER => $subtemplate->output );
-print "Content-Type: text/html; charset=utf-8\n\n" . $maintemplate->output;
+display_light Vhffs::Panel::Main( $panel , $maintemplate );
Modified: trunk/vhffs-panel/public/group.pl
===================================================================
--- trunk/vhffs-panel/public/group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -46,12 +47,13 @@
use Vhffs::Panel::Main;
use Vhffs::Functions;
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $cgi = $panel->{'cgi'};
+my $templatedir = $panel->{'templatedir'};
+
my $template;
my $subtemplate;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $cgi = new CGI;
my $repos;
my $files;
my $objs;
@@ -69,7 +71,7 @@
$message = gettext( "CGI ERROR!");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ($group= new Vhffs::Group( $vhffs , $name , '401' ) ) ) || ( $group->fetch < 0 ))
+elsif( ! defined ($group= Vhffs::Group::get_by_groupname( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -96,7 +98,7 @@
my $user;
if( ! defined $users )
{
- $template->param( VALUE_USERS => gettext("No group for this user") );
+ $template->param( VALUE_USERS => gettext("No user for this group") );
}
else
{
@@ -189,33 +191,6 @@
- if( $vhffs->get_config->use_largefile == 1 )
- {
- use Vhffs::Services::LargeFile;
- $files = Vhffs::Services::LargeFile::getall_by_group( $vhffs , $group );
- $output = "";
- $template->param( LARGEFILE_TITLE => gettext("Hosted files for this group"));
- if( defined $files )
- {
- foreach( @{$files} )
- {
- $subtemplate = new HTML::Template( filename => $templatedir."/public/misc/largefile-part.tmpl" );
- $subtemplate->param( FILENAME => $_->get_filename );
- $subtemplate->param( TYPE => $_->get_type );
- $subtemplate->param( LICENCE => $_->get_description );
- $subtemplate->param( DOWNLOAD => "Download this file" );
- $subtemplate->param( GROUPNAME => $_->get_group->get_groupname );
- $output .= $subtemplate->output;
- }
-
- $template->param( LARGEFILE_VALUE => $output );
- }
- else
- {
- $template->param( LARGEFILE_VALUE => gettext("No file available for this group") );
- }
- }
-
if( $vhffs->get_config->use_mailing == 1 )
{
use Vhffs::Services::Mailing;
@@ -251,6 +226,6 @@
$subtemplate->param( SEARCH => gettext( "Search:" ) );
$template->param( BANNER => $subtemplate->output );
}
-print "Content-Type: text/html; charset=utf-8\n\n" . $template->output;
+display_light Vhffs::Panel::Main( $panel , $template );
Modified: trunk/vhffs-panel/public/index.pl
===================================================================
--- trunk/vhffs-panel/public/index.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/index.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,24 +37,23 @@
use strict;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Acl;
use Vhffs::Constants;
use Vhffs::Panel::Main;
-my $vhffs = init Vhffs::Main;
+
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
+my $hostname = $vhffs->get_config->get_host_name;
+
my $template;
my $subtemplate;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $hostname;
-my $cgi = new CGI;
-$hostname = $vhffs->get_config->get_host_name;
-$hostname = "VHFFS" if( ! defined $hostname );
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-
-
$template = new HTML::Template( filename => $templatedir."/public/index.tmpl" );
$template->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
@@ -89,4 +88,4 @@
$template->param( BANNER => $subtemplate->output );
-print "Content-Type: text/html; charset=utf-8\n\n" . $template->output;
+display_light Vhffs::Panel::Main( $panel , $template );
Deleted: trunk/vhffs-panel/public/largefile.pl
===================================================================
--- trunk/vhffs-panel/public/largefile.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/largefile.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,162 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Main;
-use Vhffs::Acl;
-use Vhffs::Constants;
-use Vhffs::Panel::Main;
-use Vhffs::Functions;
-use Vhffs::Services::LargeFile;
-
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-my $template;
-my $subtemplate;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $cgi = new CGI;
-my $repos;
-my $files;
-my $filename;
-my $groupname;
-my $group;
-my $file;
-my $message;
-my $mirrors;
-my $mirror;
-my $temp;
-
-$filename = $cgi->param("filename");
-$groupname = $cgi->param("groupname");
-
-$groupname = Vhffs::Functions::check_arg( $groupname );
-$filename = Vhffs::Functions::check_arg( $filename );
-
-
-
-if( ( ! defined $groupname ) || ( ! defined $filename ) )
-{
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "CGI ERROR!");
- $message .= $filename . $groupname;
- $template->param( MESSAGE => $message );
-}
-elsif( $vhffs->get_config->use_largefile != 1 )
-{
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Does not support largefile");
- $template->param( MESSAGE => $message );
-}
-elsif( ( ! defined ($group= new Vhffs::Group( $vhffs , $groupname , '401' ) ) ) || ( $group->fetch < 0 ))
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "No such group");
- $template->param( MESSAGE => $message );
-
-}
-elsif( ( ! defined ( $file = new Vhffs::Services::LargeFile( $vhffs , $filename , '401' , $group ) ) ) || ( $file->fetch < 0 ))
-{
-
- $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
- $message = gettext( "Invalid file");
- $template->param( MESSAGE => $message );
-
-}
-else
-{
- $template = new HTML::Template( filename => $templatedir."/public/largefile.tmpl" );
- $template->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
- $template->param( TEXT_TITLE => sprintf( gettext("Download %s") , $file->get_filename ) );
- $template->param( TEXT_TYPE => gettext("File type") );
- $template->param( TEXT_SIZE => gettext("Size") );
- $template->param( TEXT_HASH => gettext("Hash") );
- $template->param( TEXT_LICENCE => gettext("License of this file") );
-
- $template->param( VALUE_TYPE => gettext("File type") );
- $template->param( VALUE_SIZE => gettext("Size") );
-
- if( $file->get_hash eq "" )
- {
- $template->param( VALUE_HASH => gettext("No hash") );
- }
- else
- {
- $template->param( VALUE_HASH => $file->get_hash );
- }
- $template->param( VALUE_LICENCE => $file->get_licence );
- $template->param( VALUE_SIZE => $file->get_size );
- $template->param( VALUE_TYPE => $file->get_type );
-
- $template->param( TEXT_MIRRORS => gettext( "Mirrors" ));
-
- $mirrors = $vhffs->get_config->largefile_mirrors;
-
- if( ! defined( $mirrors ) )
- {
- $template->param( VALUE_MIRRORS => gettext( "No server" ));
- }
- else
- {
- $temp = "";
- foreach $mirror ( @{$mirrors} )
- {
- $subtemplate = new HTML::Template( filename => $templatedir."/public/misc/largefile-dl.tmpl" );
- $subtemplate->param( DOWNLOAD => gettext( "Download" ) );
- $subtemplate->param( GROUPNAME => $file->get_group->get_groupname );
- $subtemplate->param( URL => $mirror->{'url'} );
- $subtemplate->param( LOGO => $mirror->{'logo'} );
- $subtemplate->param( MIRRORNAME => $mirror->{'name'} );
- $subtemplate->param( LINK => $mirror->{'link'} );
- $subtemplate->param( COUNTRY => $mirror->{'country'} );
- $subtemplate->param( FILENAME => $file->get_filename );
- $subtemplate->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
-
- $temp .= $subtemplate->output;
- }
- $template->param( VALUE_MIRRORS => $temp );
-
- }
-
-}
-print "Content-Type: text/html; charset=utf-8\n\n" . $template->output;
-
-
Modified: trunk/vhffs-panel/public/lastgroups.pl
===================================================================
--- trunk/vhffs-panel/public/lastgroups.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/lastgroups.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,27 +36,26 @@
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Panel::Main;
use CGI;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
-my $cgi = new CGI;
my $template;
my $subtemplate;
-my $templatedir = $vhffs->get_config->get_templatedir;
my $group;
my $groups = Vhffs::Group::get_last_groups( $vhffs );
my $output_final="";
my $maintemplate = new HTML::Template( filename => $templatedir."/public/lastgroups.tmpl" );
-my $hostname;
-$hostname = $vhffs->get_config->get_host_name;
-$hostname = "VHFFS" if( ! defined $hostname );
+my $hostname = $vhffs->get_config->get_host_name;
$maintemplate->param( THEME => Vhffs::Panel::Main::get_theme( $vhffs ) );
@@ -110,4 +109,5 @@
$maintemplate->param( VALUES => $output_final );
-print "Content-Type: text/html; charset=utf-8\n\n" . $maintemplate->output;
+
+display_light Vhffs::Panel::Main( $panel , $maintemplate );
Modified: trunk/vhffs-panel/public/lastusers.pl
===================================================================
--- trunk/vhffs-panel/public/lastusers.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/lastusers.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,6 +37,7 @@
use strict;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -44,20 +45,20 @@
use Vhffs::Constants;
use Vhffs::Panel::Main;
use Vhffs::Conf;
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
+
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
+
my $template;
-my $templatedir = $vhffs->get_config->get_templatedir;
my $users = Vhffs::User::get_last_users( $vhffs );
my $output_final = "";
my $user;
my $maintemplate;
my $subtemplate;
-my $cgi = new CGI;
-my $hostname;
-$hostname = $vhffs->get_config->get_host_name;
-$hostname = "VHFFS" if( ! defined $hostname );
+my $hostname = $vhffs->get_config->get_host_name;
$maintemplate = new HTML::Template( filename => $templatedir."/public/lastusers.tmpl" );
@@ -116,4 +117,4 @@
$maintemplate->param( VALUES => $output_final );
$maintemplate->param( BANNER => $subtemplate->output );
-print "Content-Type: text/html; charset=utf-8\n\n" . $maintemplate->output;
+display_light Vhffs::Panel::Main( $panel , $maintemplate );
Modified: trunk/vhffs-panel/public/rss/lastgroups.pl
===================================================================
--- trunk/vhffs-panel/public/rss/lastgroups.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/rss/lastgroups.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,6 +31,7 @@
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
Modified: trunk/vhffs-panel/public/rss/lastusers.pl
===================================================================
--- trunk/vhffs-panel/public/rss/lastusers.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/rss/lastusers.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,6 +31,7 @@
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
Modified: trunk/vhffs-panel/public/user.pl
===================================================================
--- trunk/vhffs-panel/public/user.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/user.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -46,29 +47,26 @@
use Vhffs::Panel::Main;
use Vhffs::Functions;
-my $vhffs = init Vhffs::Main;
-my $cookie = Vhffs::Panel::Main::cookie_lang( $vhffs );
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
+
my $template;
my $subtemplate;
-my $templatedir = $vhffs->get_config->get_templatedir;
-my $cgi = new CGI;
my $name = $cgi->param("name");
$name = Vhffs::Functions::check_arg( $name );
my $user;
-$user= new Vhffs::User( $vhffs , $name , '401' );
-
-
-
if( ! defined $name )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
my $message = gettext( "CGI ERROR!");
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined ($user= new Vhffs::User( $vhffs , $name , '401' ) ) ) || ( $user->fetch < 0 ))
+elsif( ! defined ($user= Vhffs::User::get_by_username( $vhffs , $name ) ) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
@@ -123,4 +121,4 @@
}
-print "Content-Type: text/html; charset=utf-8\n\n" . $template->output;
+display_light Vhffs::Panel::Main( $panel , $template );
Modified: trunk/vhffs-panel/public/websearch.pl
===================================================================
--- trunk/vhffs-panel/public/websearch.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/public/websearch.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -37,6 +37,7 @@
use strict;
use CGI;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -46,14 +47,15 @@
use Vhffs::Services::Httpd;
use Vhffs::Functions;
-my $vhffs = init Vhffs::Main;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
+
my $template;
-my $templatedir = $vhffs->get_config->get_templatedir;
-
my $output_final = "";
my $web;
my $maintemplate;
-my $cgi = new CGI;
my $name = $cgi->param("name");
$name = Vhffs::Functions::check_arg( $name );
@@ -89,4 +91,4 @@
$maintemplate->param( VALUES => $output );
-print "Content-Type: text/html; charset=utf-8\n\n" . $maintemplate->output;
+display_light Vhffs::Panel::Main( $panel , $maintemplate );
Modified: trunk/vhffs-panel/repository/create.pl
===================================================================
--- trunk/vhffs-panel/repository/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/repository/delete.pl
===================================================================
--- trunk/vhffs-panel/repository/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -66,13 +67,13 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $repo = new Vhffs::Services::Repository( $vhffs , $repo_name , $user , $group );
+my $repo = Vhffs::Services::Repository::get_by_reponame( $vhffs , $repo_name );
-if( ( ! defined $repo_name ) || ( ! defined $repo ) || ( ! defined $sure ) )
+if( ( ! defined $repo_name ) || ( ! defined $sure ) )
{
$message = sprintf( gettext("CGI Error ! %s"), $repo_name );
}
-elsif( $repo->fetch < 0 )
+elsif( ! defined $repo )
{
$message = gettext( "Cannot retrieve informations about this Download repository" );
}
Modified: trunk/vhffs-panel/repository/prefs.pl
===================================================================
--- trunk/vhffs-panel/repository/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -60,20 +61,17 @@
my $repo_name = $cgi->param("name");
my $template;
-my $repo = new Vhffs::Services::Repository( $vhffs , $repo_name , $user );
+my $repo = Vhffs::Services::Repository::get_by_reponame( $vhffs , $repo_name );
my $message;
my $templatedir = $vhffs->get_config->get_templatedir;
-if( ( ! defined $repo_name ) || ( ! defined $repo ) )
-{
+if( ! defined $repo_name ) {
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "CGI Error !");
$template->param( MESSAGE => $message );
-}
-elsif( $repo->fetch < 0 )
-{
+} elsif( ! defined $repo ) {
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "Cannot get informations on this object");
$template->param( MESSAGE => $message );
Modified: trunk/vhffs-panel/repository/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/repository/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -66,13 +67,13 @@
my $templatedir = $vhffs->get_config->get_templatedir;
-my $repo = new Vhffs::Services::Repository( $vhffs , $repo_name, $user , $group );
+my $repo = Vhffs::Services::Repository::get_by_reponame( $vhffs , $repo_name );
-if( ( ! defined $repo_name ) || ( ! defined $repo ) )
+if( ! defined $repo_name )
{
$message = sprintf( gettext("CGI Error ! %s"), $repo_name );
}
-elsif( $repo->fetch < 0 )
+elsif( ! defined $repo )
{
$message = gettext( "Cannot retrieve informations about this Download repository" );
}
Modified: trunk/vhffs-panel/repository/quota_used.pl
===================================================================
--- trunk/vhffs-panel/repository/quota_used.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/quota_used.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -42,6 +42,7 @@
use GD::Text::Wrap;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -61,7 +62,7 @@
my $templatedir = $vhffs->get_config->get_templatedir;
my $template;
my $subtemplate;
-my $repo = new Vhffs::Services::Repository( $vhffs , $reponame , '401' );
+my $repo = Vhffs::Services::Repository::get_by_reponame( $vhffs , $reponame );
my $status;
my $quota;
@@ -81,7 +82,7 @@
$status = 0;
-if( ( ! defined $repo ) || ( $repo->fetch < 0 ) )
+if( ! defined $repo )
{
$gd = GD::Image->new(70,100);
$white = $gd->colorAllocate(255,255,255);
Modified: trunk/vhffs-panel/repository/repository_submit.pl
===================================================================
--- trunk/vhffs-panel/repository/repository_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/repository/repository_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -43,6 +43,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
Modified: trunk/vhffs-panel/show_code.pl
===================================================================
--- trunk/vhffs-panel/show_code.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/show_code.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use CGI;
use GD;
use GD::Text::Wrap;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Panel::Confirmation;
@@ -50,15 +51,15 @@
$cgi = new CGI;
$vhffs = init Vhffs::Main;
-$cid = $cgi->param( "cid" );
-$code = Vhffs::Panel::Confirmation::get_code( $vhffs , $cid );
+$code = $cgi->param("code");
+exit 0 unless ( defined $code && $code =~ /[0-9a-fA-F]{16}/ );
-if(( ! ( defined $code ) ) || ( ! ( defined $cid ) ) )
-{
- print CGI->header( -type=>"text/html", -charset=>"utf-8" );
- print "cid error";
- exit 1;
-}
+#if(( ! ( defined $code ) ) || ( ! ( defined $cid ) ) )
+#{
+# print CGI->header( -type=>"text/html", -charset=>"utf-8" );
+# print "cid error";
+# exit 1;
+#}
$gd = GD::Image->new(70,30);
$white = $gd->colorAllocate(255,255,255);
@@ -72,7 +73,8 @@
width => 70,
line_space => 0,
color => $black,
- text => $code,
+# text => $code->{clear},
+ text => Vhffs::Panel::Confirmation::decrypt_code( $vhffs , $code ),
);
$wp->set_font(gdLargeFont, 14);
$wp->set(align => 'center');
@@ -80,9 +82,12 @@
$wp->set(para_space => 10, preserve_nl => 0);
# Assume the user has set FONT_PATH or TTF_FONT_PATH
#$wp->font_path('/usr/share/fonts/ttfonts');
+
+#my $cookie = CGI->cookie( CODE_HASH => $code->{hash} );
+#print CGI->header( -type=>"image/png", -cookie => $cookie );
print CGI->header( -type=>"image/png" );
-binmode STDOUT ;
+binmode STDOUT;
print STDOUT $gd->png();
-
+fflush STDOUT;
close STDOUT;
Modified: trunk/vhffs-panel/subscribe.pl
===================================================================
--- trunk/vhffs-panel/subscribe.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/subscribe.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -40,9 +40,11 @@
use POSIX qw(locale_h);
use CGI;
use locale;
+use strict;
use Locale::gettext;
use HTML::Template;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Functions;
@@ -50,42 +52,24 @@
use Vhffs::Panel::Main;
use Vhffs::Panel::Confirmation;
-#Get some basics informations with CGI
-my $cgi;
+my $panel = new_light Vhffs::Panel::Main();
+my $vhffs = $panel->{'vhffs'};
+my $templatedir = $panel->{'templatedir'};
+my $cgi = $panel->{'cgi'};
my $uid;
-my $good_news;
-my $vhffs;
-my $templatedir;
-my $cid;
-my $realcode;
-my $code;
-$cgi = new CGI;
-
-#Initialize vars
-$good_news = "";
-
-#Init the Vhffs Main System
-$vhffs = init Vhffs::Main;
-$templatedir = $vhffs->get_config->get_templatedir;
-
-Vhffs::Panel::Main::check( $vhffs );
-Vhffs::Panel::Main::cookie_lang( $vhffs );
-
-
-$submitted = $cgi->param( "CREATE_SUBMIT" );
-$mail = $cgi->param( "MAIL" );
-$username = $cgi->param( "USERNAME" );
-$firstname = $cgi->param( "FIRSTNAME");
-$lastname = $cgi->param( "LASTNAME" );
-$city = $cgi->param("CITY");
-$zipcode = $cgi->param("ZIPCODE");
-$country = $cgi->param("COUNTRY");
-$address = $cgi->param("ADDRESS");
-$cid = $cgi->param("CID");
-$code = $cgi->param("CONFIRMATION");
-$realcode = Vhffs::Panel::Confirmation::get_code( $vhffs , $cid );
-
+my $submitted = $cgi->param( "CREATE_SUBMIT" );
+my $mail = $cgi->param( "MAIL" );
+my $username = $cgi->param( "USERNAME" );
+my $firstname = $cgi->param( "FIRSTNAME");
+my $lastname = $cgi->param( "LASTNAME" );
+my $city = $cgi->param("CITY");
+my $zipcode = $cgi->param("ZIPCODE");
+my $country = $cgi->param("COUNTRY");
+my $address = $cgi->param("ADDRESS");
+my $code = $cgi->param("CONFIRMATION");
+my $cryptcode = $cgi->param("CRYPTED_CODE");
+my @errors = ();
my $template;
my $message;
@@ -96,8 +80,7 @@
$template->param( MESSAGE => gettext("You cannot subscribe to VHFFS") );
} elsif( defined $submitted ) {
# don't check if form hasn't been submitted
- @errors = ();
- if( ( ! defined $cid ) || ( ! defined $code ) || ( $code ne $realcode ) )
+ if( ( ! defined $code ) || ( ! Vhffs::Panel::Confirmation::check_code( $vhffs, $code, $cryptcode ) ) )
{
push(@errors, {error => gettext("Codes do not match")});
}
@@ -105,9 +88,9 @@
{
push(@errors, {error => gettext("You must declare your username")});
}
- if( ( length ( $username ) < 3 ) || ( length ( $username ) > 12 ) )
+ if( ! Vhffs::User::check_username($username) )
{
- push(@errors, {error => gettext("Username must contain between 3 and 12 characters")});
+ push(@errors, {error => gettext('Invalid username, it must contain between 3 and 12 alphanumeric characters, all in lowercase')});
}
if( ! defined $country )
{
@@ -161,31 +144,17 @@
if( ( scalar @errors ) == 0)
{
my $retour;
- my $user = new Vhffs::User( $vhffs , $username , '401' );
- if( defined $user )
- {
- $uid = $user->create;
+ my $user = Vhffs::User::create( $vhffs, $username, &Vhffs::Functions::generate_random_password(),
+ 0, $mail, $firstname, $lastname, $city, $zipcode, $country, $address);
- if( $uid < 0 )
+ if(! defined $user )
{
- #If the API returns a negative value as uid, the user cannot be created !
push( @errors, {error => gettext("Cannot create user, the username you entered already exists")});
}
else
{
- #Get user information
- $user->fetch;
-
#We set informations user fill in the form
- $user->set_mail( $mail );
- $user->set_firstname( $firstname );
- $user->set_lastname( $lastname );
- $user->set_city( $city );
- $user->set_zipcode( $zipcode );
- $user->set_country( $country );
- $user->set_address( $address );
$user->set_status( Vhffs::Constants::WAITING_FOR_CREATION );
- $user->set_password( Vhffs::Functions::generate_random_password );
#Commit all the changes for the current user
if( ( $retour = $user->commit ) < 0 )
@@ -194,18 +163,14 @@
}
else
{
- $good_news = gettext("User Successfully created");
- $good_news2 = gettext("Please wait while we are creating the account, it will take some minutes");
+ my $good_news = gettext("User Successfully created");
+ my $good_news2 = gettext("Please wait while we are creating the account, it will take some minutes");
$template = new HTML::Template( filename => $templatedir."/user/create_complete.tmpl" );
$template->param( TEXT_BACK => gettext("Back to Login") );
$template->param( GOOD_NEWS => $good_news );
$template->param( GOOD_NEWS2 => $good_news2 );
}
}
-
- } else {
- push ( @errors, { error => gettext("Cannot create user. Your username should contain at least 3 characters which are only lower case and digits.") } );
- }
}
if ( ( scalar @errors ) > 0 ) {
$template = new HTML::Template( filename => $templatedir."/user/create.tmpl" );
@@ -225,9 +190,7 @@
$template = new HTML::Template( filename => $templatedir."/user/create.tmpl" );
}
-if( ( ! defined $submitted ) || ( ( defined @errors) && ( (scalar @errors) != 0 ) ) ) {
- $confirmation = Vhffs::Panel::Confirmation::create_code( $vhffs );
-
+if( ( ! defined $submitted ) || (scalar @errors) != 0 ) {
# $template is defined in every cases
$template->param( TEXT_SUBSCRIBE => gettext("Subscription") );
@@ -242,11 +205,13 @@
$template->param( ADDRESS_TEXT => gettext("Address") );
$template->param( SEND => gettext("Subscribe") );
$template->param( BACK => gettext("Back to Login") );
+
+ my $code = Vhffs::Panel::Confirmation::generate_code( $vhffs );
+ $template->param( CRYPTED_CODE => $code->{'cryptedhexa'} );
+
$template->param( CONFIRMATION_TEXT => gettext("Code confirmation") );
$template->param( REPEAT_CONFIRMATION_TEXT => gettext("Recopy the code") );
- $template->param( CID => $confirmation->[0] );
-
}
$template->param( TITLE => gettext("Subscribe") );
-display_light Vhffs::Panel::Main( $vhffs , $template );
+display_light Vhffs::Panel::Main( $panel , $template );
Modified: trunk/vhffs-panel/svn/create.pl
===================================================================
--- trunk/vhffs-panel/svn/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/svn/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/svn/delete.pl
===================================================================
--- trunk/vhffs-panel/svn/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/svn/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -63,15 +64,15 @@
my $repo = $cgi->param( "name" );
my $sure = $cgi->param( "DELETE" );
-my $svn = new Vhffs::Services::Svn( $vhffs , $repo , $user , $group );
+my $svn = Vhffs::Services::Svn::get_by_reponame( $vhffs , $repo );
my $templatedir = $vhffs->get_config->get_templatedir;
-if( ( ! defined $repo ) || ( ! defined $svn ) || ( ! defined $sure ) )
+if( ( ! defined $repo ) || ( ! defined $sure ) )
{
$message = gettext("CGI Error !");
}
-elsif( $svn->fetch < 0 )
+elsif( ! defined $svn )
{
$message = gettext( "Cannot retrieve informations about this repository" );
}
Modified: trunk/vhffs-panel/svn/prefs.pl
===================================================================
--- trunk/vhffs-panel/svn/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/svn/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -69,25 +70,24 @@
if( defined $cgigroupname )
{
- $group = new Vhffs::Group( $vhffs , $cgigroupname , '401' );
- $group->fetch;
+ $group = Vhffs::Group::get_by_groupname( $vhffs , $cgigroupname );
}
-$svn = new Vhffs::Services::Svn( $vhffs , $repo_name , undef , $group );
+$svn = Vhffs::Services::Svn::get_by_reponame( $vhffs , $repo_name );
-if( ( ! defined $repo_name ) || ( ! defined $svn ) )
+if( ! defined $repo_name )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "CGI Error" );
$template->param( MESSAGE => $message );
}
-elsif( ( ! defined $group ) || ( $group->fetch < 0 ) )
+elsif( ! defined $group )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$template->param( MESSAGE => gettext("Grant an user access to this repository") );
}
-elsif( $svn->fetch < 0 )
+elsif( !defined $svn )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$message = gettext( "Cannot get informations on this object");
Modified: trunk/vhffs-panel/svn/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/svn/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/svn/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -39,6 +39,7 @@
use strict;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -64,15 +65,15 @@
my $repo = $cgi->param( "REPO_NAME" );
my $public = $cgi->param( "PUBLIC" );
-my $svn = new Vhffs::Services::Svn( $vhffs , $repo , $user , $group );
+my $svn = Vhffs::Services::Svn::get_by_reponame( $vhffs , $repo );
my $templatedir = $vhffs->get_config->get_templatedir;
-if( ( ! defined $repo ) || ( ! defined $svn ) )
+if( ! defined $repo )
{
$message = sprintf( gettext("CGI Error ! %s"), $repo );
}
-elsif( $svn->fetch < 0 )
+elsif( ! defined($svn) )
{
$message = gettext( "Cannot retrieve informations about this Subversion repository" );
}
Modified: trunk/vhffs-panel/svn/svn_submit.pl
===================================================================
--- trunk/vhffs-panel/svn/svn_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/svn/svn_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -66,33 +67,19 @@
my $svn;
-if( ! defined( $repo_name ) )
-{
+if( ! defined( $repo_name ) ) {
$message = gettext("CGI Error !");
-}
-elsif( ( length( $repo_name ) < 3 ) || ( ! ( $repo_name =~ /^[a-z0-9]+$/)) )
-{
+} elsif( ( length( $repo_name ) < 3 ) || ( ! ( $repo_name =~ /^[a-z0-9]+$/)) ) {
$message = gettext("The repository name is too short. It must contains at least 3 caracters, and must only contain letters and numbers");
-}
-elsif( ( $svn = Vhffs::Panel::Svn::create_svn( $vhffs , $repo_name , $user , $group ) ) < 0 )
-{
- if( $svn == -2 )
- {
+} elsif( ( $svn = Vhffs::Panel::Svn::create_svn( $vhffs , $repo_name , $description, $user , $group ) ) < 0 ) {
+ if( $svn == -2 ) {
$message = gettext( "This repository name already exists" );
- }
- elsif( $svn == -3 )
- {
+ } elsif( $svn == -3 ) {
$message = gettext( "An error occured while setting up the ACL" );
- }
- else
- {
+ } else {
$message = gettext( "An error occured while creating the object" );
}
-}
-else
-{
- $svn->set_description( $description );
- $svn->commit;
+} else {
$message = gettext("The Subversion object was successfully created !");
}
Modified: trunk/vhffs-panel/templates/admin/cvs/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/cvs/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/cvs/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
<li id="adminCVS">
- <tmpl_var name="TEXT_ADMIN_CVS">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_CVS"></a>
<ul id="adminCVSMenu">
<li id="adminCVSList">
<a href="/admin/cvs/list.pl">
Modified: trunk/vhffs-panel/templates/admin/cvs/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/cvs/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/cvs/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="CVSES">
<tr>
<td>
<TMPL_VAR NAME="CVSROOT">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/cvs/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/cvs/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/cvs/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="CVSES">
<tr>
<td>
<TMPL_VAR NAME="CVSROOT">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/dns/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/dns/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/dns/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="adminDNS">
- <tmpl_var name="TEXT_ADMIN_DNS">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_DNS"></a>
<ul id="adminDNSMenu">
<li id="adminDNSList">
<a href="/admin/dns/list.pl">
Modified: trunk/vhffs-panel/templates/admin/dns/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/dns/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/dns/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,12 +1,13 @@
-
+<TMPL_LOOP NAME="DNSES">
<tr>
<td>
<TMPL_VAR NAME="DOMAIN">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
</td>
</tr>
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/dns/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/dns/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/dns/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="DNSES">
<tr>
<td>
<TMPL_VAR NAME="DOMAIN">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/group/edit.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/group/edit.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/group/edit.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -9,13 +9,24 @@
</p>
<form method="post" action="edit_submit.pl">
-
+ <p>
+ <label>
+ <TMPL_VAR NAME="TEXT_GID">
+ </label>
+ <TMPL_VAR NAME="VALUE_GID">
+ </p>
<p>
- <label for="GROUPNAME">
+ <label>
<TMPL_VAR NAME="TEXT_GROUPNAME">
</label>
<TMPL_VAR NAME="VALUE_GROUPNAME">
</p>
+ <p>
+ <label>
+ <TMPL_VAR NAME="TEXT_OWNER">
+ </label>
+ <TMPL_VAR NAME="VALUE_OWNER">
+ </p>
<p>
<label for="QUOTA">
<TMPL_VAR NAME="TEXT_QUOTA">
@@ -29,18 +40,6 @@
<input type="text" name="QUOTA_USED" id="QUOTA_USED" value="<TMPL_VAR NAME="VALUE_QUOTA_USED">" />
</p>
<p>
- <label for="GID">
- <TMPL_VAR NAME="TEXT_GID">
- </label>
- <input type="text" name="GID" id="GID" value="<TMPL_VAR NAME="VALUE_GID">" />
- </p>
- <p>
- <label for="OWNER">
- <TMPL_VAR NAME="TEXT_OWNER">
- </label>
- <input type="text" name="OWNER" id="OWNER" value="<TMPL_VAR NAME="VALUE_OWNER">" />
- </p>
- <p>
<label for="STATUS">
<TMPL_VAR NAME="TEXT_STATUS">
</label>
Modified: trunk/vhffs-panel/templates/admin/group/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/group/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/group/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,6 @@
<li id="adminGroup">
- <tmpl_var name="TEXT_ADMIN_GROUP">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_GROUP"></a>
<ul id="adminGroupMenu">
<li id="adminGroupList">
<a href="/admin/group/list.pl">
Modified: trunk/vhffs-panel/templates/admin/group/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/group/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/group/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,4 @@
-
+<TMPL_LOOP NAME="GROUPS">
<tr>
<td>
<TMPL_VAR NAME="GROUPNAME">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/group/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/group/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/group/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,4 @@
-
+<TMPL_LOOP NAME="GROUPS">
<tr>
<td>
<TMPL_VAR NAME="GROUPNAME">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/mail/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mail/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mail/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
<li id="adminMail">
- <tmpl_var name="TEXT_ADMIN_MAIL">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_MAIL"></a>
<ul id="adminMailMenu">
<li id="adminMailList">
<a href="/admin/mail/list.pl">
Modified: trunk/vhffs-panel/templates/admin/mail/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mail/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mail/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="MAILS">
<tr>
<td>
<TMPL_VAR NAME="DOMAIN">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/mail/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mail/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mail/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="MAILS">
<tr>
<td>
<TMPL_VAR NAME="DOMAIN">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/mailing/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mailing/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mailing/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
<li id="adminMailing">
- <tmpl_var name="TEXT_ADMIN_MAILLING">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_MAILLING"></a>
<ul id="adminMailingMenu">
<li id="adminMailingList">
<a href="/admin/mailing/list.pl">
Modified: trunk/vhffs-panel/templates/admin/mailing/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mailing/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mailing/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="LISTS">
<tr>
<td>
- <TMPL_VAR NAME="LPART">@<TMPL_VAR NAME="DOMAIN">
+ <TMPL_VAR NAME="LOCAL_PART">@<TMPL_VAR NAME="DOMAIN">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -19,4 +19,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/main/general.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/main/general.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/main/general.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,12 +1,12 @@
<li id="adminHome">
- <tmpl_var name="TEXT_ADMIN_GENERAL">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_GENERAL"></a>
<ul id="adminHomeMenu">
<li id="adminHomeStats">
<a href="/admin/stats.pl">
<tmpl_var name="TEXT_STATS">
</a>
</li>
- <li id="adminHomeStats">
+ <li id="adminHomeSubstituteUser">
<a href="/admin/su.pl">
<tmpl_var name="TEXT_VHFFSSU">
</a>
@@ -31,7 +31,7 @@
<tmpl_var name="TEXT_MAILING">
</a>
</li>
- <li id="adminHomeMailing">
+ <li id="adminHomeMailingHandling">
<a href="/admin/broadcast_list.pl">
<tmpl_var name="TEXT_AMAILING">
</a>
Modified: trunk/vhffs-panel/templates/admin/main/main.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/main/main.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/main/main.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,4 @@
-<p class="title">
-<tmpl_var name="MENU_TITLE"> (<a href="javascript:ShowHideId('adminMenu')" class="smalllink"><tmpl_var name="SHOW_HIDE"></a>)
-</p>
+<a href="#" id="adminMenuTitle"><tmpl_var name="MENU_TITLE"></a>
<ul id="adminMenu">
<tmpl_var name="ADMIN_GENERAL">
<tmpl_var name="ADMIN_USERS">
@@ -13,6 +11,5 @@
<tmpl_var name="ADMIN_DNS">
<tmpl_var name="ADMIN_MAIL">
<tmpl_var name="ADMIN_MAILLINGLIST">
- <tmpl_var name="ADMIN_LARGEFILE">
<tmpl_var name="ADMIN_REPOSITORY">
</ul>
Modified: trunk/vhffs-panel/templates/admin/misc/list.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/misc/list.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/misc/list.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,10 +2,10 @@
<table>
<tr>
- <td><TMPL_VAR NAME="TEXT_NAME"></td>
- <td><TMPL_VAR NAME="TEXT_GROUP"></td>
- <td><TMPL_VAR NAME="TEXT_STATUS"></td>
- <td></td>
+ <th><TMPL_VAR NAME="TEXT_TITLE1"></th>
+ <th><TMPL_VAR NAME="TEXT_TITLE2"></th>
+ <th><TMPL_VAR NAME="TEXT_TITLE3"></th>
+ <th><TMPL_VAR NAME="TEXT_TITLE4"></th>
</tr>
<TMPL_VAR NAME="LIST">
</table>
Modified: trunk/vhffs-panel/templates/admin/misc/mailings_part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/misc/mailings_part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/misc/mailings_part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -14,7 +14,7 @@
<td>
<form method="post" action="moderation_submit.pl">
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
- <input type="hidden" name="OID_ASKER" value="<TMPL_VAR NAME="OID_ASKER">" />
+ <input type="hidden" name="UID_ASKER" value="<TMPL_VAR NAME="UID_ASKER">" />
<input type="hidden" name="ACCEPT" value="1" />
<input type="submit" value="<TMPL_VAR NAME="ACCEPT">" />
</form>
@@ -24,7 +24,7 @@
<form method="post" action="moderation_submit.pl">
<textarea name="reason" cols="30" rows="4"></textarea>
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
- <input type="hidden" name="OID_ASKER" value="<TMPL_VAR NAME="OID_ASKER">" />
+ <input type="hidden" name="UID_ASKER" value="<TMPL_VAR NAME="UID_ASKER">" />
<input type="hidden" name="ACCEPT" value="0" />
<input type="submit" value="<TMPL_VAR NAME="REFUSE">" />
</form>
Modified: trunk/vhffs-panel/templates/admin/misc/moderation.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/misc/moderation.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/misc/moderation.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -64,13 +64,6 @@
</table>
<h2>
- <TMPL_VAR NAME="TEXT_LARGEFILE">
- </h2>
- <table>
- <TMPL_VAR NAME="MODERATION_LARGEFILE">
- </table>
-
- <h2>
<TMPL_VAR NAME="TEXT_REPOSITORY">
</h2>
<table>
Modified: trunk/vhffs-panel/templates/admin/misc/moderation_part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/misc/moderation_part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/misc/moderation_part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -21,7 +21,7 @@
<td>
<form method="post" action="moderation_submit.pl">
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
- <input type="hidden" name="OID_ASKER" value="<TMPL_VAR NAME="OID_ASKER">" />
+ <input type="hidden" name="UID_ASKER" value="<TMPL_VAR NAME="UID_ASKER">" />
<input type="hidden" name="ACCEPT" value="1" />
<input type="submit" value="<TMPL_VAR NAME="ACCEPT">" />
</form>
@@ -31,7 +31,7 @@
<form method="post" action="moderation_submit.pl">
<textarea name="reason" cols="30" rows="4"></textarea>
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
- <input type="hidden" name="OID_ASKER" value="<TMPL_VAR NAME="OID_ASKER">" />
+ <input type="hidden" name="UID_ASKER" value="<TMPL_VAR NAME="UID_ASKER">" />
<input type="hidden" name="ACCEPT" value="0" />
<input type="submit" value="<TMPL_VAR NAME="REFUSE">" />
</form>
Modified: trunk/vhffs-panel/templates/admin/misc/stats.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/misc/stats.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/misc/stats.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -90,11 +90,3 @@
<li><TMPL_VAR NAME="TEXT_TOTAL_SUBS">: <TMPL_VAR NAME="VALUE_TOTAL_SUBS"></li>
</ul>
-
-<h2>
- <TMPL_VAR NAME="TEXT_LARGEFILE">:
-</h2>
-<ul>
- <li><TMPL_VAR NAME="TEXT_TOTAL_FILES">: <TMPL_VAR NAME="VALUE_TOTAL_FILES"></li>
- <li><TMPL_VAR NAME="TEXT_TOTAL_FILES_ACTIVATED">: <TMPL_VAR NAME="VALUE_TOTAL_FILES_ACTIVATED"></li>
-</ul>
Modified: trunk/vhffs-panel/templates/admin/mysql/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mysql/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mysql/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,7 +3,7 @@
<li id="adminMySQL">
- <tmpl_var name="TEXT_ADMIN_MYSQL">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_MYSQL"></a>
<ul id="adminMySQLMenu">
<li id="adminMySQLList">
<a href="/admin/mysql/list.pl">
Modified: trunk/vhffs-panel/templates/admin/mysql/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mysql/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mysql/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="DBS">
<tr>
<td>
<TMPL_VAR NAME="DBNAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/mysql/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/mysql/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/mysql/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="DBS">
<tr>
<td>
<TMPL_VAR NAME="DBNAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/object/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/object/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/object/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="OBJECTS">
<tr>
<td>
- <TMPL_VAR NAME="OID">
+ <TMPL_VAR NAME="OID"> (<TMPL_VAR NAME="TYPE">)
</td>
<td>
- <TMPL_VAR NAME="USER">
+ <TMPL_VAR NAME="USERNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -19,4 +19,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/pgsql/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/pgsql/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/pgsql/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,7 +3,7 @@
<li id="adminPostGres">
- <tmpl_var name="TEXT_ADMIN_POSTGRES">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_POSTGRES"></a>
<ul id="adminPostGresMenu">
<li id="adminPostGresList">
<a href="/admin/pgsql/list.pl">
Modified: trunk/vhffs-panel/templates/admin/pgsql/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/pgsql/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/pgsql/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="DBS">
<tr>
<td>
<TMPL_VAR NAME="DBNAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/pgsql/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/pgsql/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/pgsql/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="DBS">
<tr>
<td>
<TMPL_VAR NAME="DBNAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/repository/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/repository/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/repository/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
<li id="adminRepositoryDownload">
- <tmpl_var name="TEXT_ADMIN_REPOSITORY">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_REPOSITORY"></a>
<ul id="adminRepositoryDownloadMenu">
<li id="adminRepositoryDownloadList">
<a href="/admin/repository/list.pl">
Modified: trunk/vhffs-panel/templates/admin/repository/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/repository/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/repository/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="REPOSITORIES">
<tr>
<td>
<TMPL_VAR NAME="NAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/repository/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/repository/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/repository/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="REPOSITORIES">
<tr>
<td>
<TMPL_VAR NAME="NAME">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/svn/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/svn/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/svn/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="adminSVN">
- <tmpl_var name="TEXT_ADMIN_SVN">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_SVN"></a>
<ul id="adminSVNMenu">
<li id="adminSVNList">
<a href="/admin/svn/list.pl">
Modified: trunk/vhffs-panel/templates/admin/svn/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/svn/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/svn/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,13 +1,13 @@
-
+<TMPL_LOOP NAME="SVNREPOS">
<tr>
<td>
<TMPL_VAR NAME="SVNROOT">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/svn/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/svn/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/svn/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="SVNREPOS">
<tr>
<td>
<TMPL_VAR NAME="SVNROOT">
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -13,9 +13,9 @@
<form method="post" action="../../svn/prefs.pl">
<input type="hidden" id="OID" name="OID" value="<TMPL_VAR NAME="OID">" />
<input type="hidden" id="name" name="name" value="<TMPL_VAR NAME="SVNROOT">" />
- <input type="hidden" id="cgigroup" name="cgigroup" value="<TMPL_VAR NAME="CGIGROUP">" />
+ <input type="hidden" id="cgigroup" name="cgigroup" value="<TMPL_VAR NAME="GROUPNAME">" />
<input type="submit" value="<TMPL_VAR NAME="SEND">" />
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/user/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/user/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/user/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,6 @@
<li id="adminUser">
- <tmpl_var name="TEXT_ADMIN_USER">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_USER"></a>
<ul id="adminUserMenu">
<li id="adminUserList">
<a href="/admin/user/list.pl">
Modified: trunk/vhffs-panel/templates/admin/user/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/user/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/user/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,7 @@
-
+<TMPL_LOOP NAME="USERS">
<tr>
<td>
- <TMPL_VAR NAME="NAME">
+ <TMPL_VAR NAME="USERNAME">
</td>
<td>
<TMPL_VAR NAME="FIRSTNAME">
@@ -14,10 +14,10 @@
</td>
<td>
<form method="post" action="show.pl">
- <input type="hidden" name="NAME" value="<TMPL_VAR NAME="NAME">" />
+ <input type="hidden" name="NAME" value="<TMPL_VAR NAME="USERNAME">" />
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
<input type="submit" value="<TMPL_VAR NAME="SEND">" />
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/user/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/user/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/user/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,23 +1,20 @@
-
+<TMPL_LOOP NAME="USERS">
<tr>
<td>
- <TMPL_VAR NAME="NAME">
+ <TMPL_VAR NAME="USERNAME">
</td>
<td>
- <TMPL_VAR NAME="FIRSTNAME">
+ <TMPL_VAR NAME="FIRSTNAME"> <TMPL_VAR NAME="LASTNAME">
</td>
<td>
- <TMPL_VAR NAME="LASTNAME">
- </td>
- <td>
<TMPL_VAR NAME="STATE">
</td>
<td>
<form method="post" action="edit.pl">
- <input type="hidden" name="NAME" value="<TMPL_VAR NAME="NAME">" />
+ <input type="hidden" name="NAME" value="<TMPL_VAR NAME="USERNAME">" />
<input type="hidden" name="OID" value="<TMPL_VAR NAME="OID">" />
<input type="submit" value="<TMPL_VAR NAME="SEND">" />
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/web/edit.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/web/edit.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/web/edit.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,10 +2,10 @@
<form method="post" action="edit_submit.pl">
<p>
- <label for="SERVERNAME">
+ <label>
<TMPL_VAR NAME="TEXT_SERVERNAME">
</label>
- <input type="text" name="SERVERNAME" id="SERVERNAME" value="<TMPL_VAR NAME="VALUE_SERVERNAME">" />
+ <TMPL_VAR NAME="VALUE_SERVERNAME">
</p>
<p>
<label for="CRAWL">
@@ -17,28 +17,28 @@
</select>
</p>
<p>
- <label for="TEXT_GROUP">
+ <label>
<TMPL_VAR NAME="TEXT_GROUP">
</label>
- <input type="text" name="TEXT_GROUP" id="TEXT_GROUP" value="<TMPL_VAR NAME="VALUE_GROUP">" />
+ <TMPL_VAR NAME="VALUE_GROUP">
</p>
<p>
- <label for="OWNER">
+ <label>
<TMPL_VAR NAME="TEXT_OWNER">
</label>
- <input type="text" name="OWNER" id="OWNER" value="<TMPL_VAR NAME="VALUE_OWNER">" />
+ <TMPL_VAR NAME="VALUE_OWNER">
</p>
<p>
- <label for="TEXT_ALERT">
+ <label for="TEXT_ALERT">
<TMPL_VAR NAME="TEXT_ALERT">
</label>
- <input type="text" name="TEXT_ALERT" id="TEXT_ALERT" value="<TMPL_VAR NAME="VALUE_ALERT">" />
+ <input type="text" name="TEXT_ALERT" id="TEXT_ALERT" VALUE="<TMPL_VAR NAME="VALUE_ALERT">"/>
</p>
<p>
- <label for="ALERT_STATE">
+ <label>
<TMPL_VAR NAME="TEXT_ALERT_STATE">
</label>
- <input type="text" name="ALERT_STATE" id="ALERT_STATE" value="<TMPL_VAR NAME="VALUE_ALERT_STATE">" />
+ <TMPL_VAR NAME="VALUE_ALERT_STATE">
</p>
<p>
<label for="STATUS">
Modified: trunk/vhffs-panel/templates/admin/web/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/web/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/web/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,6 @@
<li id="adminWeb">
- <tmpl_var name="TEXT_ADMIN_WEB">
+ <a href="#"><tmpl_var name="TEXT_ADMIN_WEB"></a>
<ul id="adminWebMenu">
<li id="adminWebList">
<a href="/admin/web/list.pl">
Modified: trunk/vhffs-panel/templates/admin/web/part-modo.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/web/part-modo.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/web/part-modo.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="WEBS">
<tr>
<td>
<a href="http://<TMPL_VAR NAME="SERVERNAME">"><TMPL_VAR NAME="SERVERNAME"></a>
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/admin/web/part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/admin/web/part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/admin/web/part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,10 @@
-
+<TMPL_LOOP NAME="WEBS">
<tr>
<td>
<a href="http://<TMPL_VAR NAME="SERVERNAME">"><TMPL_VAR NAME="SERVERNAME"></a>
</td>
<td>
- <TMPL_VAR NAME="GROUP">
+ <TMPL_VAR NAME="GROUPNAME">
</td>
<td>
<TMPL_VAR NAME="STATE">
@@ -17,4 +17,4 @@
</form>
</td>
</tr>
-
+</TMPL_LOOP>
Modified: trunk/vhffs-panel/templates/cvs/create.tmpl
===================================================================
--- trunk/vhffs-panel/templates/cvs/create.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/cvs/create.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,6 @@
<h1><TMPL_VAR NAME="TITLE"></h1>
-<form method="post" action="cvs_submit.pl">
+<form method="post" action="create.pl">
<p>
<label>
<TMPL_VAR NAME="GROUP_NAME">:
@@ -11,15 +11,15 @@
<label for="REPOSITORY_NAME">
<TMPL_VAR NAME="REPOSITORY_NAME">:
</label>
- <input type="text" name="REPOSITORY_NAME" id="REPOSITORY_NAME"/>
+ <input type="text" name="REPOSITORY_NAME" id="REPOSITORY_NAME" value="<tmpl_var name="REPOSITORY_VALUE">"/>
</p>
<p>
<label for="PROJECT_USAGE">
<TMPL_VAR NAME="DESCRIPTION">:
</label>
- <textarea name="DESCRIPTION" cols="45" rows="7"></textarea>
+ <textarea name="DESCRIPTION" cols="45" rows="15"><tmpl_var name="DESCRIPTION_VALUE"></textarea>
</p>
<p class="button" id="buttonSend">
- <input type="submit" value="<TMPL_VAR NAME="SEND">" />
+ <input type="submit" value="<TMPL_VAR NAME="SEND">" id="cvs_submit" name="cvs_submit" />
</p>
</form>
Modified: trunk/vhffs-panel/templates/cvs/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/cvs/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/cvs/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="repositoryCVS">
- <tmpl_var name="TEXT_CVS">
+ <a href="#"><tmpl_var name="TEXT_CVS"></a>
<ul id="repositoryCVSMenu">
<li id="repositoryCVSDocumentation">
<a href="<tmpl_var name="URL_CVSDOC">" title="<tmpl_var name="TEXT_CVSDOC">">
Modified: trunk/vhffs-panel/templates/cvs/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/cvs/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/cvs/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,8 +1,9 @@
<li class="repositoryCVSEntry">
<a href="/cvs/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
<tmpl_var name="NAME"></a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
- - <a href="<tmpl_var name="CVSWEBURL">/cvs_<tmpl_var name="GROUPNAME">_<tmpl_var name="NAME">/"><tmpl_var name="CVSWEB"></a>
-
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ <li><a href="<tmpl_var name="CVSWEBURL">/cvs_<tmpl_var name="GROUPNAME">_<tmpl_var name="NAME">/"><tmpl_var name="CVSWEB"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/cvs/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/cvs/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/cvs/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,10 @@
<li class="repositoryCVSEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li>
+ <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a>
+ </li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/cvs/prefs.tmpl
===================================================================
--- trunk/vhffs-panel/templates/cvs/prefs.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/cvs/prefs.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -23,13 +23,11 @@
<h2><tmpl_var name="PERM_TITLE"></h2>
<form method="post" action="/cvs/prefs_save.pl">
<p>
- <label>
- <tmpl_var name="PERM_TEXT">
- </label>
- </p>
- <p class="button" id="buttonSend">
+ <tmpl_var name="PERM_TEXT">
+ </p>
+ <p class="button">
+ <input type="submit" value="<tmpl_var name="PERM_BUTTON">" />
<input type="hidden" name="REPO_NAME" value="<tmpl_var name="TEXT_REPONAME">" />
- <input type="submit" value="<tmpl_var name="PERM_BUTTON">" />
</p>
</form>
Modified: trunk/vhffs-panel/templates/dns/list_a_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/list_a_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/list_a_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,21 +1,16 @@
-<form method="post" action="modif_a.pl">
- <p>
- <label for="IP">
- <TMPL_VAR NAME="NOM">->
- </label>
- <input type="text" name="IP" id="IP" value="<TMPL_VAR NAME="IPNOM">" />
- </p>
-
- <p class="button" id="buttonModify">
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="hidden" name="PREFIX" value="<TMPL_VAR NAME="NOM">" />
- <input type="submit" value="<TMPL_VAR NAME="MODIFY">" />
- </p>
+<tmpl_loop name="A_RR">
+<form method="post" action="prefs.pl">
+ <p>
+ <label for="data_<tmpl_var name="id">">
+ <TMPL_VAR NAME="NAME">->
+ </label>
+ <input type="text" name="data" id="data_<tmpl_var name="id">" value="<TMPL_VAR NAME="data">" />
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN">" />
+ <input type="hidden" name="rr_id" value="<tmpl_var name="id">" />
+ <input type="hidden" name="name" value="<TMPL_VAR NAME="NAME">" />
+ <input type="hidden" name="action" value="manage_a"/>
+ <input type="submit" value="<TMPL_VAR NAME="MODIFY">" class="autowidth" name="modify_a_submit" />
+ <input type="submit" value="<TMPL_VAR NAME="DEL">" name="delete_a_submit" class="autowidth"/>
+ </p>
</form>
-<form method="post" action="delete_a.pl">
- <p class="button" id="buttonDelete">
- <input type="hidden" name="ANAME" value="<TMPL_VAR NAME="NOM">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="submit" value="<TMPL_VAR NAME="DEL">" />
- </p>
-</form>
+</tmpl_loop>
Modified: trunk/vhffs-panel/templates/dns/list_cname_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/list_cname_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/list_cname_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,22 +1,15 @@
-<form method="post" action="modif_cname.pl">
+<tmpl_loop CNAME_RR>
+<form method="post" action="prefs.pl">
<p>
- <label for="IP">
- <TMPL_VAR NAME="VALUE_NAME">->
+ <label for="data_<tmpl_var name="id">">
+ <TMPL_VAR NAME="name">->
</label>
- <input type="text" name="DESTINATION" value="<TMPL_VAR NAME="VALUE_DESTINATION">" />
+ <input type="text" name="data" id="data_<tmpl_var name="id">"value="<TMPL_VAR NAME="data">" />
+ <input type="hidden" name="action" value="manage_cname" />
+ <input type="hidden" name="rr_id" value="<tmpl_var name="id">"/>
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN">" />
+ <input type="submit" name="modify_cname_submit" value="<TMPL_VAR NAME="MODIFY">" class="autowidth" />
+ <input type="submit" name="delete_cname_submit" value="<TMPL_VAR NAME="DEL">" class="autowidth" />
</p>
-
- <p class="button" id="buttonModify">
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="hidden" name="PREFIX" value="<TMPL_VAR NAME="VALUE_NAME">" />
- <input type="submit" value="<TMPL_VAR NAME="MODIFY">">
- </p>
</form>
-<form method="post" action="delete_cname.pl">
- <p class="button" id="buttonDelete">
- <input type="hidden" name="NAME" value="<TMPL_VAR NAME="VALUE_NAME">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="submit" value="<TMPL_VAR NAME="DEL">" />
- </p>
-</form>
-
+</tmpl_loop>
Modified: trunk/vhffs-panel/templates/dns/list_mx_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/list_mx_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/list_mx_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,30 +1,14 @@
-
-<tr>
- <td>
- <label for="IP">
- <TMPL_VAR NAME="TEXT_PRIORITY"><TMPL_VAR NAME="PRIORITY_VALUE">
- </label>
- </td>
- <td>
- <form method="post" action="modif_mx.pl">
- <input type="text" name="IP" id="IP" value="<TMPL_VAR NAME="IP_VALUE">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="hidden" name="PRIORITY" value="<TMPL_VAR NAME="PRIORITY_VALUE">" />
- <input type="submit" value="<TMPL_VAR NAME="MODIFY">" />
- </form>
- </td>
-</tr>
-
-<tr>
- <td>
-
- </td>
- <td>
- <form method="post" action="delete_mx.pl">
- <input type="hidden" name="PRIORITY" value="<TMPL_VAR NAME="PRIORITY_VALUE">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="submit" value="<TMPL_VAR NAME="DEL">" />
- </form>
- </td>
-</tr>
-
+<tmpl_loop name="MX_RR">
+<form method="post" action="prefs.pl">
+<p><label for="data_<tmpl_var name="id">">
+ <TMPL_VAR NAME="TEXT_PRIORITY"><TMPL_VAR NAME="aux">
+</label>
+ <input type="text" name="data" id="data_<tmpl_var name="id">" value="<TMPL_VAR NAME="data">" />
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN">" />
+ <input type="hidden" name="rr_id" value="<tmpl_var name="id">" />
+ <input type="hidden" name="action" value="manage_mx" />
+ <input type="submit" value="<TMPL_VAR NAME="MODIFY">" name="modify_mx_submit" class="autowidth"/>
+ <input type="submit" value="<TMPL_VAR NAME="DEL">" name="delete_mx_submit" class="autowidth"/>
+</p>
+</form>
+</tmpl_loop>
Modified: trunk/vhffs-panel/templates/dns/list_ns_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/list_ns_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/list_ns_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,13 +1,11 @@
-<tr>
- <td>
- <TMPL_VAR NAME="IP">
- </td>
- <td>
- <form method="post" action="delete_ns.pl">
- <input type="hidden" name="IP" value="<TMPL_VAR NAME="IP">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN">" />
- <input type="submit" value="<TMPL_VAR NAME="DEL">" />
- </form>
- </td>
-</tr>
-
+<tmpl_loop name="NS_RR">
+<form method="post" action="prefs.pl">
+<p>
+ <label><TMPL_VAR NAME="data"></label>
+ <input type="hidden" name="action" value="manage_ns" />
+ <input type="hidden" name="rr_id" value="<TMPL_VAR NAME="id">" />
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="domain">" />
+ <input type="submit" name="delete_ns_submit" value="<TMPL_VAR NAME="DEL">" class="autowidth"/>
+</p>
+</form>
+</tmpl_loop>
Modified: trunk/vhffs-panel/templates/dns/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,13 +1,13 @@
- <li id="DNS">
- <tmpl_var name="TEXT_DNS">
- <ul id="DNSMenu">
-
- <tmpl_var name="SUB_DNS">
-
+ <li id="DNS">
+ <a href="#"><tmpl_var name="TEXT_DNS"></a>
+ <ul id="DNSMenu">
+
+ <tmpl_var name="SUB_DNS">
+
<li id="DNSCreate">
- <a href="/dns/create.pl" title="<tmpl_var name="TEXT_CREATE">">
- <tmpl_var name="TEXT_CREATE">
+ <a href="/dns/create.pl" title="<tmpl_var name="TEXT_CREATE">">
+ <tmpl_var name="TEXT_CREATE">
</a>
</li>
- </ul>
- </li>
+ </ul>
+ </li>
Modified: trunk/vhffs-panel/templates/dns/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,8 @@
-
<li class="DNSEntry">
- <a href="/dns/prefs.pl?name=<tmpl_var name="DOMAIN">" title="<tmpl_var name="DOMAIN">">
- <tmpl_var name="DOMAIN">
+ <a href="/dns/prefs.pl?domain=<tmpl_var name="DOMAIN">" title="<tmpl_var name="DOMAIN">">
+ <tmpl_var name="DOMAIN">
</a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/dns/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,9 @@
<li class="DNSEntryWait">
- <tmpl_var name="DOMAIN"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="DOMAIN"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li>
+ <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a>
+ </li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/dns/prefs.tmpl
===================================================================
--- trunk/vhffs-panel/templates/dns/prefs.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/dns/prefs.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,48 +1,32 @@
-
-<h1><TMPL_VAR NAME="TITLE"> - <TMPL_VAR NAME="DOMAIN_NAME"></h1>
-
-
-
<h2><TMPL_VAR NAME="TEXT_TYPEA"></h2>
-
<h3><TMPL_VAR NAME="TEXT_LIST_A"></h3>
-<table>
- <TMPL_VAR NAME="LIST_A">
-</table>
+<TMPL_VAR NAME="LIST_A">
<h3><TMPL_VAR NAME="TEXT_ADD_A"></h3>
-<form method="post" action="add_a.pl">
+<form method="post" action="prefs.pl">
<p>
- <label for="PREFIX">
+ <label for="add_a_prefix">
<TMPL_VAR NAME="TEXT_DOMAINNAME">
</label>
- <input type="text" name="PREFIX" id="PREFIX" /><strong>.<TMPL_VAR NAME="DOMAIN_NAME"></strong>
+ <input type="text" name="name" id="add_a_prefix" /><strong>.<TMPL_VAR NAME="DOMAIN_NAME"></strong>
</p>
- <p>
- <label for="IP">
+ <p id="add_a_ip" style="display:none">
+ <label for="add_a_data">
<TMPL_VAR NAME="TEXT_ADDIP">
</label>
- <input type="text" name="IP" />
+ <input type="text" name="data" id="add_a_data" />
</p>
- <fieldset>
- <legend>
- <TMPL_VAR NAME="TEXT_QUESTION_REDIRECTION"> :
- </legend>
- <p>
- <input type="radio" name="QUESTION" id="QUESTION_YES" value="1" checked="checked" />
- <label for="QUESTION_YES">
- <TMPL_VAR NAME="TEXT_YES">
- </label>
- </p>
- <p>
- <input type="radio" name="QUESTION" value="0" id="QUESTION_NO" />
- <label for="QUESTION_NO">
- <TMPL_VAR NAME="TEXT_NO">
- </label>
- </p>
- </fieldset>
- <p class="button" id="buttonModify">
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
+ <p><TMPL_VAR NAME="TEXT_QUESTION_REDIRECTION">:
+ <input type="radio" name="redirect" id="redirect_true" value="true" checked="checked"
+ onclick="document.getElementById('add_a_ip').style.display='none'"/>
+ <label for="redirect_true" style="display:inline;float:none"><TMPL_VAR NAME="TEXT_YES"></label>
+ <input type="radio" name="redirect" value="false" id="redirect_false"
+ onclick="document.getElementById('add_a_ip').style.display='block'"/>
+ <label for="redirect_false" style="display:inline;float:none"><TMPL_VAR NAME="TEXT_NO"></label>
+ </p>
+ <p class="button">
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
+ <input type="hidden" name="action" value="add_a"/>
<input type="submit" value="<TMPL_VAR NAME="TEXT_SUBMIT">" />
</p>
</form>
@@ -51,56 +35,52 @@
<h2><TMPL_VAR NAME="TEXT_TYPEMX"></h2>
<h3><TMPL_VAR NAME="TEXT_LIST_MX"></h3>
-<table><TMPL_VAR NAME="LIST_MX"></table>
+<TMPL_VAR NAME="LIST_MX">
<h3><TMPL_VAR NAME="TEXT_ADD_MX"></h3>
-
-<TMPL_VAR NAME="FORM_ADD_MX">
-
-<form method="post" action="/dns/add_mx.pl">
+<form method="post" action="prefs.pl">
<p>
- <label for="MXNAME">
+ <label for="add_mx_data">
<TMPL_VAR NAME="MX_NAME">
</label>
- <input type="text" name="MXNAME" id="MXNAME" />
+ <input type="text" name="data" id="add_mx_data" />
</p>
<p>
- <label for="PRIORITY">
+ <label for="add_mx_aux">
<TMPL_VAR NAME="MX_PRIORITY">
</label>
- <input type="text" name="PRIORITY" id="PRIORITY" />
+ <input type="text" name="aux" id="add_mx_aux" />
</p>
- <p class="button" id="buttonSubmit">
+ <p class="button">
+ <input type="hidden" name="action" value="add_mx" />
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
<input type="submit" value="<TMPL_VAR name="TEXT_SUBMIT">" />
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
</p>
</form>
<h2><TMPL_VAR NAME="TEXT_TYPECNAME"></h2>
<h3><TMPL_VAR NAME="TEXT_LIST_CNAME"></h3>
-<table>
- <TMPL_VAR NAME="LIST_CNAME">
-</table>
+<TMPL_VAR NAME="LIST_CNAME">
<h3><TMPL_VAR NAME="TEXT_ADD_CNAME"></h3>
-<TMPL_VAR NAME="FORM_ADD_CNAME">
-<form method="post" action="/dns/add_cname.pl">
+<form method="post" action="prefs.pl">
<p>
- <label for="PREFIX">
+ <label for="add_cname_name">
<TMPL_VAR NAME="CNAME_PREFIX">
</label>
- <input type="text" name="PREFIX" id="PREFIX" /><strong>.<TMPL_VAR NAME="DOMAIN_NAME"></strong>
+ <input type="text" name="name" id="add_cname_name" /><strong>.<TMPL_VAR NAME="DOMAIN_NAME"></strong>
</p>
<p>
- <label for="DESTINATION">
+ <label for="add_cname_data">
<TMPL_VAR NAME="CNAME_DESTINATION">
</label>
- <input type="text" name="DESTINATION" id="DESTINATION" />
+ <input type="text" name="data" id="add_cname_data" />
</p>
- <p class="button" id="buttonSubmit">
- <input type="hidden" name="DOMAIN" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
+ <p class="button">
+ <input type="hidden" name="action" value="add_cname" />
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN_NAME">" />
<input type="submit" value="<TMPL_VAR NAME="TEXT_SUBMIT">" />
</p>
</form>
@@ -109,26 +89,12 @@
<h3><TMPL_VAR NAME="TEXT_LIST_NS"></h3>
<TMPL_VAR NAME="LIST_NS">
<h3><TMPL_VAR NAME="TEXT_ADD_NS"></h3>
-<TMPL_VAR NAME="FORM_ADD_NS">
-
-
-<form method="post" action="/dns/add_ns.pl">
- <table border=0 width="60%">
- <tr>
- <td>
- <TMPL_VAR NAME="NS_HOSTNAME_TEXT">
- </td>
- <td>
- <INPUT TYPE="TEXT" name="DESTINATION">
- </td>
- </tr>
- <tr>
- <td colspan="2" align="right">
- <INPUT TYPE="HIDDEN" NAME="DOMAIN" VALUE=<TMPL_VAR NAME="DOMAIN_NAME">>
- <INPUT TYPE="SUBMIT" VALUE=<TMPL_VAR NAME="TEXT_SUBMIT">>
- </td>
- </tr>
- </table>
+<form method="post" action="prefs.pl">
+ <label for="add_ns_data"><TMPL_VAR NAME="NS_HOSTNAME_TEXT"></label>
+ <input type="text" name="data" id="add_ns_data"/>
+ <input type="hidden" name="action" value="add_ns"/>
+ <input type="hidden" name="domain" value="<TMPL_VAR NAME="DOMAIN_NAME">"/>
+ <input type="submit" value="<TMPL_VAR NAME="TEXT_SUBMIT">" class="autowidth"/>
</form>
@@ -168,7 +134,7 @@
</p>
</fieldset>
- <p class="button" id="buttonDelete">
+ <p class="button">
<input type="hidden" name="name" value="<tmpl_var name="DOMAIN_NAME">" />
<input type="submit" value="<tmpl_var name="TEXT_DELETE">" />
</p>
Modified: trunk/vhffs-panel/templates/group/info.tmpl
===================================================================
--- trunk/vhffs-panel/templates/group/info.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/group/info.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -5,6 +5,7 @@
<tmpl_var name="QUOTA_VALUE">
</div>
+ <p class="info"><tmpl_var name="MESSAGE"></p>
<h2><tmpl_var name="WEBAREA"></h2>
<ul>
<tmpl_var name="WEBAREA_VALUES">
@@ -50,7 +51,3 @@
<tmpl_var name="MLS_VALUES">
</ul>
- <h2><tmpl_var name="LARGEFILE"></h2>
- <ul>
- <tmpl_var name="LARGEFILE_VALUES">
- </ul>
Modified: trunk/vhffs-panel/templates/group/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/group/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/group/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,5 @@
<li id="project">
- <tmpl_var name="TEXT_MYPROJECTS">
- <a href="javascript:ShowHideId('projectMenu')" class="smalllink">(<tmpl_var name="SHOW_HIDE">)</a>
+ <a href="#" id="projectMenuTitle"><tmpl_var name="TEXT_MYPROJECTS"></a>
<ul id="projectMenu">
<tmpl_var name="SUB_GROUP">
<li id="projectCreate">
Modified: trunk/vhffs-panel/templates/group/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/group/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/group/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,4 +2,9 @@
<a href="/panel.pl?project=<tmpl_var name="PROJECTNAME">" title="<tmpl_var name="PROJECTNAME">">
<tmpl_var name="PROJECTNAME">
</a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">" title="<tmpl_var name="HISTORY_TEXT">">
+ <tmpl_var name="HISTORY_TEXT">
+ </a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/group/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/group/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/group/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,5 @@
<li class="projectEntryWait">
- <tmpl_var name="PROJECTNAME">
- <tmpl_var name="REASON">
+ <a href="#"><tmpl_var name="PROJECTNAME"> <tmpl_var name="REASON"></a>
</li>
Modified: trunk/vhffs-panel/templates/mail/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mail/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mail/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,14 +1,14 @@
-
- <li id="mail">
- <tmpl_var name="TEXT_MAIL">
- <ul id="mailMenu">
-
- <tmpl_var name="SUB_MAIL">
-
+
+ <li id="mail">
+ <a href="#"><tmpl_var name="TEXT_MAIL"></a>
+ <ul id="mailMenu">
+
+ <tmpl_var name="SUB_MAIL">
+
<li id="mailCreate">
- <a href="/mail/create.pl" title="<tmpl_var name="TEXT_CREATE">">
- <tmpl_var name="TEXT_CREATE">
+ <a href="/mail/create.pl" title="<tmpl_var name="TEXT_CREATE">">
+ <tmpl_var name="TEXT_CREATE">
</a>
</li>
- </ul>
- </li>
+ </ul>
+ </li>
Modified: trunk/vhffs-panel/templates/mail/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mail/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mail/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="mailEntry">
- <a href="/mail/prefs.pl?name=<tmpl_var name="DOMAIN">" title="<tmpl_var name="DOMAIN">">
- <tmpl_var name="DOMAIN">
+ <a href="/mail/prefs.pl?name=<tmpl_var name="DOMAIN">" title="<tmpl_var name="DOMAIN">">
+ <tmpl_var name="DOMAIN">
</a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/mail/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mail/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mail/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,9 @@
<li class="mailEntryWait">
- <tmpl_var name="DOMAIN"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="DOMAIN"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/mailinglist/list_part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mailinglist/list_part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mailinglist/list_part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -7,6 +7,7 @@
<form method="post" action="change_right.pl">
<select name="RIGHT" id="RIGHT">
<option value="<TMPL_VAR NAME="VALUE_RIGHT_SUB_WAITING_FOR_REPLY">" <TMPL_VAR NAME="SELECTED_RIGHT_SUB_WAITING_FOR_REPLY">> <TMPL_VAR NAME="TEXT_RIGHT_SUB_WAITING_FOR_REPLY"></option>
+ <option value="<TMPL_VAR NAME="VALUE_RIGHT_SUB_WAITING_FOR_VALIDATION">" <TMPL_VAR NAME="SELECTED_RIGHT_SUB_WAITING_FOR_VALIDATION">> <TMPL_VAR NAME="TEXT_RIGHT_SUB_WAITING_FOR_VALIDATION"></option>
<option value="<TMPL_VAR NAME="VALUE_RIGHT_SUB">" <TMPL_VAR NAME="SELECTED_RIGHT_SUB">> <TMPL_VAR NAME="TEXT_RIGHT_SUB"></option>
<option value="<TMPL_VAR NAME="VALUE_RIGHT_SUB_WAITING_FOR_DELETE">" <TMPL_VAR NAME="SELECTED_RIGHT_SUB_WAITING_FOR_DELETE">> <TMPL_VAR NAME="TEXT_RIGHT_SUB_WAITING_FOR_DELETE"></option>
<option value="<TMPL_VAR NAME="VALUE_RIGHT_ADMIN">" <TMPL_VAR NAME="SELECTED_RIGHT_ADMIN">> <TMPL_VAR NAME="TEXT_RIGHT_ADMIN"></option>
@@ -26,4 +27,4 @@
<input type="submit" value="<tmpl_var name="BUTTON_DELETE_MEMBER">" />
</form>
</td>
-</tr>
\ No newline at end of file
+</tr>
Modified: trunk/vhffs-panel/templates/mailinglist/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mailinglist/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mailinglist/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,14 +1,14 @@
-
- <li id="mailingList">
- <tmpl_var name="TEXT_MAILINGLIST">
+
+ <li id="mailingList">
+ <a href="#"><tmpl_var name="TEXT_MAILINGLIST"></a>
<ul id="mailingListMenu">
-
- <tmpl_var name="SUB_MAILINGLIST">
-
+
+ <tmpl_var name="SUB_MAILINGLIST">
+
<li id="mailingListCreate">
- <a href="/mailinglist/create.pl" title="<tmpl_var name="TEXT_CREATE">">
- <tmpl_var name="TEXT_CREATE">
+ <a href="/mailinglist/create.pl" title="<tmpl_var name="TEXT_CREATE">">
+ <tmpl_var name="TEXT_CREATE">
</a>
</li>
- </ul>
- </li>
\ No newline at end of file
+ </ul>
+ </li>
Modified: trunk/vhffs-panel/templates/mailinglist/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mailinglist/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mailinglist/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="mailingListEntry">
- <a href="/mailinglist/prefs.pl?local=<tmpl_var name="LOCAL">&domain=<tmpl_var name="DOMAIN">" title="<tmpl_var name="NAME">">
+ <a href="/mailinglist/prefs.pl?local=<tmpl_var name="LOCAL">&domain=<tmpl_var name="DOMAIN">" title="<tmpl_var name="NAME">">
<tmpl_var name="NAME">
</a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/mailinglist/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mailinglist/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mailinglist/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="mailingListEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/mailinglist/prefs.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mailinglist/prefs.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mailinglist/prefs.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -10,27 +10,45 @@
<p>
<tmpl_var name="TEXT_PREFIX">
<input type="TEXT" size=20 name="PREFIX" value="<tmpl_var name="VALUE_PREFIX">"/>
-
</p>
<p>
- <input type="checkbox" name="MODERATED" id="MODERATED" value="1" <tmpl_var name="CHECK_MODERATED"> />
- <label for="MODERATED">
- <tmpl_var name="TEXT_MODERATED">
- </label>
+ <tmpl_var name="TEXT_SUBSCRIBE_CONTROL">
+ <select name="SUBSCRIBE_CONTROL" id="SUBSCRIBE_CONTROL">
+ <option value="<tmpl_var name="VALUE_SUBSCRIBE_NO_APPROVAL_REQUIRED">" <tmpl_var name="SELECTED_SUBSCRIBE_NO_APPROVAL_REQUIRED">>
+ <tmpl_var name="TEXT_SUBSCRIBE_NO_APPROVAL_REQUIRED">
+ </option>
+ <option value="<tmpl_var name="VALUE_SUBSCRIBE_APPROVAL_REQUIRED">" <tmpl_var name="SELECTED_SUBSCRIBE_APPROVAL_REQUIRED">>
+ <tmpl_var name="TEXT_SUBSCRIBE_APPROVAL_REQUIRED">
+ </option>
+ <option value="<tmpl_var name="VALUE_SUBSCRIBE_CLOSED">" <tmpl_var name="SELECTED_SUBSCRIBE_CLOSED">>
+ <tmpl_var name="TEXT_SUBSCRIBE_CLOSED">
+ </option>
+ </select>
</p>
<p>
- <input type="checkbox" name="OPENSUB" value="1" <tmpl_var name="CHECK_OPENSUB"> />
- <label for="OPENSUB">
- <tmpl_var name="TEXT_OPENSUB">
- </label>
+ <tmpl_var name="TEXT_POSTING_CONTROL">
+ <select name="POSTING_CONTROL" id="POSTING_CONTROL">
+ <option value="<tmpl_var name="VALUE_POSTING_OPEN_ALL">" <tmpl_var name="SELECTED_POSTING_OPEN_ALL">>
+ <tmpl_var name="TEXT_POSTING_OPEN_ALL">
+ </option>
+ <option value="<tmpl_var name="VALUE_POSTING_MODERATED_ALL">" <tmpl_var name="SELECTED_POSTING_MODERATED_ALL">>
+ <tmpl_var name="TEXT_POSTING_MODERATED_ALL">
+ </option>
+ <option value="<tmpl_var name="VALUE_POSTING_OPEN_MEMBERS_MODERATED_OTHERS">" <tmpl_var name="SELECTED_POSTING_OPEN_MEMBERS_MODERATED_OTHERS">>
+ <tmpl_var name="TEXT_POSTING_OPEN_MEMBERS_MODERATED_OTHERS">
+ </option>
+ <option value="<tmpl_var name="VALUE_POSTING_MEMBERS_ONLY">" <tmpl_var name="SELECTED_POSTING_MEMBERS_ONLY">>
+ <tmpl_var name="TEXT_POSTING_MEMBERS_ONLY">
+ </option>
+ <option value="<tmpl_var name="VALUE_POSTING_MEMBERS_ONLY_MODERATED">" <tmpl_var name="SELECTED_POSTING_MEMBERS_ONLY_MODERATED">>
+ <tmpl_var name="TEXT_POSTING_MEMBERS_ONLY_MODERATED">
+ </option>
+ <option value="<tmpl_var name="VALUE_POSTING_ADMINS_ONLY">" <tmpl_var name="SELECTED_POSTING_ADMINS_ONLY">>
+ <tmpl_var name="TEXT_POSTING_ADMINS_ONLY">
+ </option>
+ </select>
</p>
<p>
- <input type="checkbox" name="OPENPOST" id="OPENPOST" value="1" <tmpl_var name="CHECK_OPENPOST"> />
- <label for="OPENPOST">
- <tmpl_var name="TEXT_OPENPOST">
- </label>
- </p>
- <p>
<input type="checkbox" name="OPENARCHIVE" id="OPENARCHIVE" value="1" <tmpl_var name="CHECK_OPENARCHIVE"> />
<label for="OPENARCHIVE">
<tmpl_var name="TEXT_OPENARCHIVE">
@@ -52,6 +70,15 @@
</p>
</form>
+<h2><tmpl_var name="TITLE_SIGNATURE"></h2>
+<form action="save_sig.pl" method="post">
+ <p><textarea name="signature" rows="7" cols="50"><tmpl_var name="VALUE_SIGNATURE"></textarea>
+ </p>
+ <input type="hidden" name="DOMAIN" value="<tmpl_var name="VALUE_DOMAIN">" />
+ <input type="hidden" name="LOCALPART" value="<tmpl_var name="VALUE_LOCALPART">" />
+ <input type="submit" value="<tmpl_var name="TEXT_SUBMIT_SIGNATURE">"/>
+</form>
+
<h2><tmpl_var name="TITLE_MEMBERS"></h2>
<h3><tmpl_var name="TITLE_LIST_MEMBERS"> (<tmpl_var name="HOWMANY_MEMBERS">)</h3>
Modified: trunk/vhffs-panel/templates/main/auth.tmpl
===================================================================
--- trunk/vhffs-panel/templates/main/auth.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/main/auth.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -22,13 +22,14 @@
- <form action="/login.pl" method="post">
+ <form action="/auth.pl" method="post">
<h2><tmpl_var name="TEXT_PLEASEIDENTIFY"></h2>
+ <tmpl_var name="errors">
<p>
<label for="username">
<tmpl_var name="TEXT_USERNAME">
</label>
- <input type="text" name="username" id="username" maxlength="32" />
+ <input type="text" name="username" id="username" maxlength="32" value="<tmpl_var name="VALUE_USERNAME">"/>
</p>
<p>
<label for="password">
@@ -37,7 +38,7 @@
<input type="password" name="password" id="password" maxlength="32" />
</p>
<p class="button">
- <input type="submit" value="<tmpl_var name="TEXT_LOGIN">" />
+ <input type="submit" value="<tmpl_var name="TEXT_LOGIN">" id="login_submit" name="login_submit"/>
</p>
</form>
<div id="sub_opts">
Modified: trunk/vhffs-panel/templates/main/panel.tmpl
===================================================================
--- trunk/vhffs-panel/templates/main/panel.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/main/panel.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -6,8 +6,9 @@
<link rel="stylesheet" type="text/css" href="/themes/<tmpl_var name="THEME">/main.css"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
- <script language="javascript" type="text/javascript" charset="utf-8" src="/functions.js"/>
-
+ <tmpl_loop name="JSCRIPTS">
+ <script language="javascript" type="text/javascript" charset="utf-8" src="<tmpl_var name="SCRIPT">"/>
+ </tmpl_loop>
</head>
@@ -20,6 +21,9 @@
<tmpl_var name="GROUPNAME">
</div>
<div class="main" id="main">
+ <h1><tmpl_var name="TEXT_TITLE"></h1>
+ <tmpl_var name="errors">
+ <tmpl_var name="infos">
<tmpl_var name="CENTRE">
</div>
Modified: trunk/vhffs-panel/templates/menu/group.tmpl
===================================================================
--- trunk/vhffs-panel/templates/menu/group.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/menu/group.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,8 +1,5 @@
- <p class="title"><tmpl_var name="TEXT_PROJECT"><tmpl_var name="PROJECTNAME">
- (<a href="javascript:ShowHideId('projectConfigurationMenu')" class="smalllink"><tmpl_var name="SHOW_HIDE"></a>)
- </p>
+ <a href="#" id="projectConfigurationMenuTitle"><tmpl_var name="TEXT_PROJECT"><tmpl_var name="PROJECTNAME"></a>
-
<ul id="projectConfigurationMenu">
<li id="projectConfiguration">
<a href="/group/prefs.pl" title="<tmpl_var name="TEXT_CONFIG">">
@@ -18,6 +15,5 @@
<tmpl_var name="DNS_MENU">
<tmpl_var name="MAIL_MENU">
<tmpl_var name="MAILINGLIST_MENU">
- <tmpl_var name="LARGEFILE_MENU">
<tmpl_var name="REPOSITORY_MENU">
</ul>
Modified: trunk/vhffs-panel/templates/menu/main.tmpl
===================================================================
--- trunk/vhffs-panel/templates/menu/main.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/menu/main.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,12 +1,13 @@
<div id="username_menu">
<tmpl_var name="TEXT_ACCOUNT"><tmpl_var name="USERNAME">
</div>
-
-<div id="menu">
+<div id="logo">
<a class="logomenu" href="/panel.pl">
<img src="/themes/<tmpl_var name="THEME">/images/logo.png" alt="logo"/>
</a>
-<tmpl_var name="USER_MENU">
-<tmpl_var name="ADMIN_MENU">
-<tmpl_var name="PROJECT_MENU">
</div>
+<ul id="menu">
+<li><tmpl_var name="USER_MENU"></li>
+<tmpl_if name="ADMIN_MENU"><li><tmpl_var name="ADMIN_MENU"></li></tmpl_if>
+<tmpl_if name="PROJECT_MENU"><li><tmpl_var name="PROJECT_MENU"></li></tmpl_if>
+</ul>
Modified: trunk/vhffs-panel/templates/menu/user.tmpl
===================================================================
--- trunk/vhffs-panel/templates/menu/user.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/menu/user.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,5 @@
- <ul id="userMenu">
+ <a href="#" id="userMenuTitle"><tmpl_var name="MENU_TITLE"></a>
+ <ul id="userMenu">
<li id="user">
<a href="/user/prefs.pl" title="<tmpl_var name="TEXT_PREFS">">
<tmpl_var name="TEXT_PREFS">
Copied: trunk/vhffs-panel/templates/misc/errors.tmpl (from rev 555, branches/vhffs_4.1/vhffs-panel/templates/misc/errors.tmpl)
Copied: trunk/vhffs-panel/templates/misc/infos.tmpl (from rev 555, branches/vhffs_4.1/vhffs-panel/templates/misc/infos.tmpl)
Modified: trunk/vhffs-panel/templates/mysql/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mysql/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mysql/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="mySqlDatabase">
- <tmpl_var name="TEXT_MYSQL">
+ <a href="#"><tmpl_var name="TEXT_MYSQL"></a>
<ul id="mySqlDatabaseMenu">
<li id="mySqlDatabaseAccess">
<a href="<tmpl_var name="PHPMYADMIN_URL">" target="_blank" title="<tmpl_var name="TEXT_DBACCESS">">
Modified: trunk/vhffs-panel/templates/mysql/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mysql/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mysql/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="mySqlDatabaseEntry">
- <a href="/mysql/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
- <tmpl_var name="NAME">
+ <a href="/mysql/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
+ <tmpl_var name="NAME">
</a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/mysql/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/mysql/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/mysql/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="mySqlDatabaseEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/pgsql/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/pgsql/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/pgsql/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="posgrSqlDatabase">
- <tmpl_var name="TEXT_PGSQL">
+ <a href="#"><tmpl_var name="TEXT_PGSQL"></a>
<ul id="posgrSqlDatabaseMenu">
<li id="posgrSqlDatabaseAccess">
<a href="<tmpl_var name="PHPPGADMIN_URL">" title="<tmpl_var name="TEXT_DBACCESS">">
Modified: trunk/vhffs-panel/templates/pgsql/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/pgsql/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/pgsql/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,7 +1,8 @@
-
<li class="posgrSqlDatabaseEntry">
- <a href="/pgsql/prefs.pl?name=<tmpl_var name="NAME">">
- <tmpl_var name="NAME">
+ <a href="/pgsql/prefs.pl?name=<tmpl_var name="NAME">">
+ <tmpl_var name="NAME">
</a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/pgsql/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/pgsql/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/pgsql/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="posgrSqlDatabaseEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/public/allwebsites.tmpl
===================================================================
--- trunk/vhffs-panel/templates/public/allwebsites.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/public/allwebsites.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -14,6 +14,17 @@
<div id="public">
<h1><tmpl_var name="TEXT_TITLE"></h1>
+<tmpl_if name="LETTERS">
+<p style="text-align:center">
+<tmpl_loop name="LETTERS">
+[<a href="/public/allwebsites.pl?letter=<tmpl_var name="letter">" title="<tmpl_var name="count">"><tmpl_var name="letter"></a>]
+</tmpl_loop>
+[<a href="/public/allwebsites.pl?letter=all"><tmpl_var name="ALL"></a>]
+</p>
+<tmpl_if name="MESSAGE">
+<p style="text-align:center;font-weight:bold;"><tmpl_var name="MESSAGE"></p>
+</tmpl_if>
+</tmpl_if>
<ul>
<tmpl_var name="VALUES">
</ul>
Modified: trunk/vhffs-panel/templates/public/group.tmpl
===================================================================
--- trunk/vhffs-panel/templates/public/group.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/public/group.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -52,18 +52,5 @@
</ul>
</p>
- <p>
- <h2><tmpl_var name="LARGEFILE_TITLE"></h2>
- <ul>
- <tmpl_var name="LARGEFILE_VALUE">
- </ul>
- </p>
- <p>
- <h2><tmpl_var name="LARGEFILE_TITLE"></h2>
- <ul>
- <tmpl_var name="LARGEFILE_VALUE">
- </ul>
- </p>
-
</body>
</html>
Deleted: trunk/vhffs-panel/templates/public/misc/largefile-part.tmpl
===================================================================
--- trunk/vhffs-panel/templates/public/misc/largefile-part.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/public/misc/largefile-part.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,8 +0,0 @@
-<li>
-<tmpl_var name="FILENAME">
-<tmpl_var name="TYPE">
-<tmpl_var name="LICENCE">
-<a href="largefile.pl?filename=<tmpl_var name="FILENAME">&groupname=<tmpl_var name="GROUPNAME">">
-<tmpl_var name="DOWNLOAD">
-</a>
-</li>
Modified: trunk/vhffs-panel/templates/repository/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/repository/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/repository/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="repositoryDownload">
- <tmpl_var name="TEXT_REPOSITORY">
+ <a href="#"><tmpl_var name="TEXT_REPOSITORY"></a>
<ul id="repositoryDownloadMenu">
<tmpl_var name="SUB_REPOSITORY">
Modified: trunk/vhffs-panel/templates/repository/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/repository/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/repository/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="repositoryDownloadEntry">
<a href="/repository/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
<tmpl_var name="NAME"></a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
- - <a href="<tmpl_var name="URL_VALUE">"><tmpl_var name="URL_NAME"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ <li><a href="<tmpl_var name="URL_VALUE">"><tmpl_var name="URL_NAME"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/repository/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/repository/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/repository/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,6 @@
<li class="repositoryDownloadEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/svn/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/svn/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/svn/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="repositorySVN">
- <tmpl_var name="TEXT_SVN">
+ <a href="#"><tmpl_var name="TEXT_SVN"></a>
<ul id="repositorySVNMenu">
<li id="repositorySVNDocumentation">
<a href="<tmpl_var name="HELP_URL">" title="<tmpl_var name="TEXT_SVNDOC">">
Modified: trunk/vhffs-panel/templates/svn/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/svn/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/svn/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,8 +1,10 @@
<li class="repositorySVNEntry">
<a href="/svn/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
<tmpl_var name="NAME">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
- <!-- ( <a href="<tmpl_var name="SVNWEBURL">/listing.php?repname=<tmpl_var name="NAME">+%28<tmpl_var name="GROUPNAME">%29&path=%2F"><tmpl_var name="SVNWEB_TEXT"></a> ) -->
- ( <a href="<tmpl_var name="SVNWEBURL">/svn_<tmpl_var name="GROUPNAME">_<tmpl_var name="NAME">/"><tmpl_var name="SVNWEB_TEXT"></a> )
- </a>
+ </a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ <li><a href="<tmpl_var name="SVNWEBURL">/svn_<tmpl_var name="GROUPNAME">_<tmpl_var name="NAME">/">
+ <tmpl_var name="SVNWEB_TEXT"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/svn/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/svn/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/svn/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,4 +1,6 @@
<li class="repositorySVNEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/user/create.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/create.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/create.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -19,9 +19,11 @@
<div class="subscribe">
<form method="post" action="subscribe.pl">
- <tmpl_loop name="ERRORS">
- <p style="font-weight:bold;color:red;"><tmpl_var name="ERROR"></p>
- </tmpl_loop>
+ <div id="errors">
+ <tmpl_loop name="ERRORS">
+ <p class="error"><tmpl_var name="ERROR"></p>
+ </tmpl_loop>
+ </div>
<h2><tmpl_var name="TEXT_INFOS"></h2>
<p>
@@ -76,7 +78,7 @@
<label for="CONFIRMATION">
<TMPL_VAR NAME="CONFIRMATION_TEXT">
</label>
- <img src="show_code.pl?cid=<TMPL_VAR NAME="CID">"/>
+ <img src="show_code.pl?code=<TMPL_VAR NAME="CRYPTED_CODE">"/>
</p>
<p>
<label for="CONFIRMATION">
@@ -84,8 +86,8 @@
</label>
<input type="text" name="CONFIRMATION" id="CONFIRMATION" maxlength="16"/>
</p>
+ <input type="hidden" name="CRYPTED_CODE" id="CRYPTED_CODE" value="<TMPL_VAR NAME="CRYPTED_CODE">"/>
<p class="button">
- <input type="hidden" name="CID" value="<TMPL_VAR NAME="CID">"/>
<input type="submit" value="<TMPL_VAR NAME="SEND">" name="CREATE_SUBMIT"/>
</p>
Modified: trunk/vhffs-panel/templates/user/mailuser.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/mailuser.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/mailuser.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,9 +4,11 @@
</legend>
<p>
- <input name="mail_activate" id="mail_activate" type="checkbox" <tmpl_var name="ACTIV_CHECKED">/> <label for="mail_activate"><tmpl_var name="TEXT_MAILACTIV"></label>
+ <input name="mail_activate" id="mail_activate" type="checkbox"
+ <tmpl_if name="ACTIV_CHECKED">checked="checked"</tmpl_if>
+ onchange="javascript:toggle('mail_prefs');"/> <label for="mail_activate"><tmpl_var name="TEXT_MAILACTIV"></label>
</p>
-
+ <div id="mail_prefs"<tmpl_unless name="ACTIV_CHECKED">style="display:none"</tmpl_unless>>
<p>
<label for="mail_usage">
<tmpl_var name="TEXT_MAILINFO2">
@@ -14,18 +16,21 @@
</p>
<p>
- <input name="mail_usage" id="mail_usage_box" value="1" type="radio" <tmpl_var name="POP_CHECKED">/>
+ <input name="mail_usage" id="mail_usage_box" value="1" type="radio" <tmpl_if name="POP_CHECKED">checked="checked"</tmpl_if> onchange="javascript:document.getElementById('mbox_options').style.display='';"/>
<label for="mail_usage_box" ><tmpl_var name="TEXT_MAILBOX"></label>
</p>
- <p>
+ <div id="mbox_options" <tmpl_unless name="POP_CHECKED">style="display:none"</tmpl_unless>>
<tmpl_var name="MAILUSER_OPTIONS">
- </p>
+ </div>
<p>
- <input name="mail_usage" id="mail_usage_foward" value="2" type="radio" <tmpl_var name="FWD_CHECKED">/>
+ <input name="mail_usage"
+ id="mail_usage_foward" value="2"
+ type="radio" <tmpl_if name="FWD_CHECKED">checked="checked"</tmpl_if>
+ onchange="javascript:document.getElementById('mbox_options').style.display='none';" />
<label for="mail_usage_foward"><tmpl_var name="TEXT_MAILFORWARD"></label>
</p>
-
+ </div>
</fieldset>
Modified: trunk/vhffs-panel/templates/user/mailuserspam.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/mailuserspam.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/mailuserspam.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,2 +1,2 @@
-<br/>
-<input name="mail_nospam" id="mail_activate" type="checkbox" <tmpl_var name="ACTIV_CHECKED">/><tmpl_var name="TEXT_NOSPAM">
+<p><input name="mail_nospam" id="mail_nospam" type="checkbox" <tmpl_var name="ACTIV_CHECKED">/>
+ <label for="mail_nospam"><tmpl_var name="TEXT_NOSPAM"></label><p>
Modified: trunk/vhffs-panel/templates/user/mailuservirus.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/mailuservirus.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/mailuservirus.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,2 +1,2 @@
-<br/>
-<input name="mail_novirus" id="mail_activate" type="checkbox" <tmpl_var name="ACTIV_CHECKED">/><tmpl_var name="TEXT_VIRUS">
+<p><input name="mail_novirus" id="mail_novirus" type="checkbox" <tmpl_var name="ACTIV_CHECKED">/>
+ <label for="mail_novirus"><tmpl_var name="TEXT_VIRUS"></label></p>
Modified: trunk/vhffs-panel/templates/user/prefs.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/prefs.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/prefs.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,8 +1,5 @@
- <form method="post" action="/user/prefs_save.pl">
-
- <h1><tmpl_var name="TEXT_TITLE"></h1>
-
+ <form method="post" action="/user/prefs.pl">
<p>
<label><tmpl_var name="TEXT_USERNAME"> :</label>
<span class="formInput"><tmpl_var name="VALUE_USERNAME"></span>
@@ -71,7 +68,7 @@
<p class="button" id="buttonModify">
- <input type="submit" value="<tmpl_var name="TEXT_SEND">"/>
+ <input type="submit" value="<tmpl_var name="TEXT_SEND">" name="prefs_submit" id="prefs_submit"/>
</p>
</form>
Modified: trunk/vhffs-panel/templates/user/prefs_avatar.tmpl
===================================================================
--- trunk/vhffs-panel/templates/user/prefs_avatar.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/user/prefs_avatar.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,8 @@
<h2><tmpl_var name="TEXT_AVATAR"></h2>
<form method="post" action="../object/upavatar.pl" enctype="multipart/form-data">
+ <h3><tmpl_var name="CURRENT_AVATAR"></h3>
+ <img alt="avatar for your user" src="/getavatar.pl?oid=<tmpl_var name="VALUE_OID">"/>
<p>
- <h3><tmpl_var name="CURRENT_AVATAR"></h3>
- <img alt="avatar for your user" src="/getavatar.pl?oid=<tmpl_var name="VALUE_OID">"/>
- </p>
- <p>
<tmpl_var name="EXPLAIN_AVATAR">
</p>
<input type="hidden" name="OID" value="<tmpl_var name="VALUE_OID">"/>
Modified: trunk/vhffs-panel/templates/web/menu.tmpl
===================================================================
--- trunk/vhffs-panel/templates/web/menu.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/web/menu.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,5 @@
<li id="webAreas">
- <tmpl_var name="TEXT_WEB">
+ <a href="#"><tmpl_var name="TEXT_WEB"></a>
<ul id="webAreasMenu">
<tmpl_var name="SUB_WEB">
Modified: trunk/vhffs-panel/templates/web/menu_sub.tmpl
===================================================================
--- trunk/vhffs-panel/templates/web/menu_sub.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/web/menu_sub.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,10 +1,8 @@
<li class="webAreasEntry">
- <a href="/web/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
- <tmpl_var name="NAME">
- </a>
-
- <a href="<tmpl_var name="STATSURL">/<tmpl_var name="NAME">/" title="Stats">
- Stats
- </a>
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="/web/prefs.pl?name=<tmpl_var name="NAME">" title="<tmpl_var name="NAME">">
+ <tmpl_var name="NAME"></a>
+ <ul>
+ <li><a href="<tmpl_var name="STATSURL">/<tmpl_var name="NAME">/" title="Stats">Stats</a></li>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Modified: trunk/vhffs-panel/templates/web/menu_sub_wait.tmpl
===================================================================
--- trunk/vhffs-panel/templates/web/menu_sub_wait.tmpl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/templates/web/menu_sub_wait.tmpl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,6 +1,8 @@
<li class="webAreasEntryWait">
- <tmpl_var name="NAME"> <tmpl_var name="REASON">
- ( <a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a> )
+ <a href="#"><tmpl_var name="NAME"> <tmpl_var name="REASON"></a>
+ <ul>
+ <li><a href="/history.pl?OID=<tmpl_var name="OID">"><tmpl_var name="HISTORY"></a></li>
+ </ul>
</li>
Copied: trunk/vhffs-panel/themes/vhffs/js (from rev 555, branches/vhffs_4.1/vhffs-panel/themes/vhffs/js)
Modified: trunk/vhffs-panel/themes/vhffs/main.css
===================================================================
--- trunk/vhffs-panel/themes/vhffs/main.css 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/themes/vhffs/main.css 2007-04-15 21:17:33 UTC (rev 561)
@@ -82,6 +82,23 @@
text-align: center;
}
+#logo
+{
+ position:absolute;
+ top:20px;
+ left:5px;
+}
+
+#menu
+{
+ margin-top:140px;
+}
+
+#menu>li
+{
+ list-style-type: none;
+}
+
#menu a
{
color: black;
@@ -93,8 +110,11 @@
color: grey;
}
+#userMenuTitle, #adminMenuTitle, #projectMenuTitle, #projectConfigurationMenuTitle
+{
+ font-weight:bold;
+}
-
body a
{
color: black;
@@ -299,20 +319,6 @@
list-style-image:url(./images/mailingentry.png);
}
-
-#menu #largeFileList, #menu #adminLargeFile
-{
- list-style-image:url(./images/largefile.png);
-}
-#menu #largeFileCreate
-{
- list-style-image:url(./images/largefilecreate.png);
-}
-#menu .largeFileEntry, #menu .largeFileEntryWait, #menu #adminLargeFileList, #menu #adminLargeFileSearch
-{
- list-style-image:url(./images/largefileentry.png);
-}
-
#menu #repositoryDownload, #menu #adminRepositoryDownload
{
list-style-image:url(./images/repository.png);
@@ -466,6 +472,7 @@
background-color: black;
padding-top: 0;
color: white;
+ z-index:1;
display: block;
}
@@ -673,8 +680,16 @@
color:red;
text-align: center;
width: 50%;
+ font-weight: bold;
}
+.info
+{
+ color:blue;
+ text-align: center;
+ width: 50%;
+ font-weight: bold;
+}
.warning
{
@@ -829,3 +844,8 @@
padding-right: 5em;
}
+div#mbox_options
+{
+ padding-left:2em;
+}
+
Copied: trunk/vhffs-panel/themes/vhffs-ng (from rev 555, branches/vhffs_4.1/vhffs-panel/themes/vhffs-ng)
Modified: trunk/vhffs-panel/user/delete.pl
===================================================================
--- trunk/vhffs-panel/user/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/user/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -70,7 +71,7 @@
if( $delete == 1 )
{
- if( defined $user->get_groups )
+ if( $user->have_activegroups )
{
$message = gettext("This user is always in a group");
}
Modified: trunk/vhffs-panel/user/prefs.pl
===================================================================
--- trunk/vhffs-panel/user/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/user/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
@@ -45,35 +46,190 @@
use Vhffs::Panel::User;
my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
+my $cgi = $panel->{cgi};
+my $vhffs = $panel->{vhffs};
+my $session = $panel->{session};
+my $maintemplate = $panel->{template};
+my $user = $panel->{user};
+
+my $submitted = defined($cgi->param('prefs_submit'));
+
+if($submitted) {
+ my $mail = $cgi->param( "MAIL" );
+ my $firstname = $cgi->param( "FIRSTNAME" );
+ my $lastname = $cgi->param( "LASTNAME" );
+ my $city = $cgi->param( "CITY" );
+ my $zipcode = $cgi->param( "ZIPCODE" );
+ my $country = $cgi->param( "COUNTRY" );
+ my $address = $cgi->param( "ADDRESS" );
+ my $pass1 = $cgi->param("PASSWORD1");
+ my $pass2 = $cgi->param("PASSWORD2");
+
+ my $theme = $cgi->param( "THEME" );
+ my $lang = $cgi->param( "LANG" );
+
+ my $pwd_change = 0;
+ my $mail_change = 0;
+
+
+ # Checks data and perform requested modifications
+ $panel->{'themecookie'} = CGI->cookie( -name=>"theme", -value=>$theme, -expires=>'+10y' );
+ Vhffs::Panel::User::set_theme( $user, $theme );
+
+ $panel->{'langcookie'} = CGI->cookie( -name=>"language", -value=>$lang, -expires=>'+10y' );
+ Vhffs::Panel::User::set_lang( $user, $lang );
+
+
+# Commit all the changes for the current user
+if( ( ! defined $firstname ) || ( ! defined $lastname ) || ( ! defined $city ) || ( ! defined $mail ) || ( ! defined $zipcode ) || ( ! defined $country ) || ( ! defined $address ) ) {
+ $panel->add_error( gettext( "CGI Error!" ) );
+} else {
+ if( ! ( $zipcode =~ /^[\w\d\s\-]+$/ ) ) {
+ $panel->add_error( gettext( "Zipcode is not correct !" ) );
+ }
+ if( $pass1 ne $pass2 ) {
+ $panel->add_error( gettext( "Passwords don't match" ) );
+ }
+ if(! $panel->has_errors) {
+ $user->set_firstname( $firstname );
+ $user->set_lastname( $lastname );
+ $user->set_city( $city );
+ $user->set_zipcode( $zipcode );
+ $user->set_country( $country );
+ $user->set_address( $address );
+
+ if( ( length( $pass1 ) > 1 ) && ( $pass1 eq $pass2 ) ) {
+ $pwd_change = 1;
+ $user->set_password( $pass1 );
+ $panel->add_info( gettext('Password changed') );
+ }
+
+ my $prevmail = $user->get_mail();
+ if( $prevmail ne $mail ) {
+ $mail_change = 1;
+ $user->set_mail( $mail );
+ my $subject = gettext("Mailbox modified");
+ my $content = sprintf( gettext("Hello %s %s,\n\nYou changed your email, here are your new personal information :\n\nUser: %s\nMail: %s\n\nVHFFS administrators\n"), $user->get_firstname, $user->get_lastname, $user->get_username, $user->get_mail);
+ $user->send_mail_user( $subject, $content );
+ $panel->add_info( gettext('Email address changed') );
+ }
+
+ if( $user->commit < 0 ) {
+ $panel->clear_infos();
+ $panel->add_error( gettext("An error occured while updating the user account") );
+ }
+
+ my $mu;
+ if( $vhffs->get_config->use_mailuser == 1 ) {
+ use Vhffs::Services::MailUser;
+ $mu = init Vhffs::Services::MailUser( $vhffs , $user );
+ }
+
+ # check if mu is not a negative integer
+ if( defined $mu && $mu >= 0 && $mu->available > 0 ) {
+
+ my $mail_activate = $cgi->param( "mail_activate" );
+ my $nospam = $cgi->param( "mail_nospam" );
+ my $novirus = $cgi->param( "mail_novirus" );
+ $nospam = (( defined $nospam ) && ( $nospam eq "on" ));
+ $novirus = ( ( defined $novirus ) && ( $novirus eq "on" ) );
+
+ if( ( defined $mail_activate ) && ( $mail_activate eq "on" ) ) {
+ my $usage = $cgi->param( "mail_usage" );
+ if( ! defined $usage ) {
+ $panel->add_error( gettext("You must choose a method for your mail") );
+ } elsif( $usage == 1 ) {
+ #In this case, we treat for popable accounts
+ if( $mu->exists_box == 0 ) {
+ # Box doesn't exists, need a password
+ if( $pwd_change == 0 ) {
+ $panel->add_error( gettext("Error ! You MUST provide a password in your account when you create your popable account") );
+ } elsif( ($mu->addbox ($pass1 )) < 0 ) {
+ $panel->add_error( gettext("An error occured while adding the box") );
+ } elsif( $nospam && ( $mu->change_spam_status < 0 ) ) {
+ $panel->add_error( gettext("An error occured while adding the box (anti-spam adding)") );
+ } elsif( $novirus && ( $mu->change_virus_status < 0 ) ) {
+ $panel->add_error( gettext("An error occured while adding the box (anti-virus adding)") );
+ } else {
+ $panel->add_info( gettext("Mailbox successfully added") );
+ }
+ } else {
+ #Box already exists
+ # The use changed his password, we must update password for mail
+ if( $pwd_change ) {
+ $mu->delbox;
+ $mu->addbox( $pass1 );
+ }
+
+ # We change the spam status. if the spam status changed
+ if( $vhffs->get_config->use_nospam == 1 ) {
+ if( $nospam != $mu->use_nospam ) {
+ if( $mu->change_spam_status == 1 ) {
+ $panel->add_info( gettext( "Change spam protection status for your account\n" ) );
+ } else {
+ $panel->add_error( gettext( "Error for spam protection\n" ) );
+ }
+ }
+ }
+
+ # As spam, the virus status changes only if the user changed values
+ if( $vhffs->get_config->use_novirus == 1 ) {
+ if( $novirus != $mu->use_novirus ) {
+ if( $mu->change_virus_status == 1 ) {
+ $panel->add_info( gettext( "Changed anti-virus status for your account\n" ) );
+ } else {
+ $panel->add_error( gettext( "Error for virus protection\n" ) );
+ }
+ }
+ }
+ }
+ } elsif( $usage == 2 ) {
+ #Here, we create the forward
+ my $ad = $user->get_mail;
+ if( $mu->exists_forward == 0 ) {
+ if( ! defined $ad ) {
+ $panel->add_error( gettext("There is a problem with the address you filled in your profile, unable to add forwarding") );
+ } elsif( $mu->addforward( $user->get_mail ) < 0) {
+ $panel->add_error( gettext("An error occured while adding the forwarding") );
+ } else {
+ $panel->add_info( gettext('Forward added') );
+ }
+ } elsif( $mail_change ==1 ) {
+ $mu->delforward;
+ if( $mu->addforward( $mail ) < 0 ) {
+ $panel->add_error( gettext("An error occured while the forwarding") );
+ } else {
+ $panel->add_info( gettext('Forward updated') );
+ }
+ }
+ }
+ } elsif($mu->exists_box || $mu->exists_forward) {
+ $panel->add_info( gettext('Mail deleted') );
+ # User doesn't want mail anymore
+ $mu->delbox;
+ $mu->delforward;
+ }
+ }
+ }
}
+} # if($submitted)
-my $vhffs = $panel->{'vhffs'};
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-my $user = $panel->{'user'};
-
my $mailuser;
-if( $vhffs->get_config->use_mailuser == 1 )
-{
- $mailuser = 1;
+if( $vhffs->get_config->use_mailuser == 1 ) {
+ $mailuser = 1;
+} else {
+ $mailuser = 0;
}
-else
-{
- $mailuser = 0;
-}
my $username = $user->get_username();
my $usermail = $user->get_mail();
+$panel->set_title( gettext("User Preferences") );
+
my $templatedir = $vhffs->get_config->get_templatedir;
-
my $template = new HTML::Template( filename => $templatedir."/user/prefs.tmpl" );
-$template->param( TEXT_TITLE => gettext("User Preferences") );
-
$template->param( TEXT_USERNAME => gettext("Username") );
$template->param( TEXT_MAIL => gettext("mail") );
$template->param( TEXT_FIRSTNAME => gettext("Firstname") );
@@ -142,14 +298,10 @@
my @langs = Vhffs::Panel::Main::list_languages( $vhffs );
my $curlang = Vhffs::Panel::User::get_lang( $user );
my $langlist;
-foreach( @langs )
-{
- if($curlang ne $_)
- {
+foreach( @langs ) {
+ if($curlang ne $_) {
$langlist .= "<option value=\"".$_."\">".$_."</option>\n";
- }
- else
- {
+ } else {
$langlist .= "<option value=\"".$_."\" selected=\"selected\">".$_."</option>\n";
}
}
@@ -168,9 +320,9 @@
if( defined $mu && $mu >= 0 && $mu->available > 0 )
{
- $subtemplate->param( ACTIV_CHECKED => "checked" ) if( $mu->exists == 1 );
- $subtemplate->param( POP_CHECKED => "checked" ) if( $mu->exists_box == 1 );
- $subtemplate->param( FWD_CHECKED => "checked" ) if( $mu->exists_forward == 1 );
+ $subtemplate->param( ACTIV_CHECKED => 1 ) if( $mu->exists == 1 );
+ $subtemplate->param( POP_CHECKED => 1 ) if( $mu->exists_box == 1 );
+ $subtemplate->param( FWD_CHECKED => 1 ) if( $mu->exists_forward == 1 );
$subtemplate->param( TEXT_MAILACTIV => sprintf( gettext("Activate %s\@%s email"), $username, $config->{domain}) );
$subtemplate->param( TEXT_MAILINFO1 => sprintf( gettext("We offer you the possibility to have one email box on the domain %s") , $config->{domain}) );
$subtemplate->param( TEXT_MAILINFO2 => gettext("There is two possible usages :") );
Deleted: trunk/vhffs-panel/user/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/user/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/user/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,290 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-
-use POSIX qw(locale_h);
-use HTML::Template;
-use locale;
-use Locale::gettext;
-use CGI;
-use CGI::Session;
-use strict;
-
-use Vhffs::User;
-use Vhffs::Main;
-use Vhffs::Panel::Main;
-use Vhffs::Panel::Menu;
-use Vhffs::Panel::User;
-
-my $panel = new Vhffs::Panel::Main();
-if(!$panel) {
- exit 0;
-}
-
-my $vhffs = $panel->{'vhffs'};
-my $session = $panel->{'session'};
-my $maintemplate = $panel->{'template'};
-my $user = $panel->{'user'};
-my $cgi = $panel->{'cgi'};
-
-my $message;
-
-my $mail = $cgi->param( "MAIL" );
-my $firstname = $cgi->param( "FIRSTNAME" );
-my $lastname = $cgi->param( "LASTNAME" );
-my $city = $cgi->param( "CITY" );
-my $zipcode = $cgi->param( "ZIPCODE" );
-my $country = $cgi->param( "COUNTRY" );
-my $address = $cgi->param( "ADDRESS" );
-my $pass1 = $cgi->param("PASSWORD1");
-my $pass2 = $cgi->param("PASSWORD2");
-
-my $theme = $cgi->param( "THEME" );
-my $lang = $cgi->param( "LANG" );
-
-my $pwd_change = 0;
-my $mail_change = 0;
-my $templatedir = $vhffs->get_config->get_templatedir;
-
-# We set informations user fill in the form
-
-
-my $cookie = CGI->cookie(theme => $theme);
-Vhffs::Panel::User::set_theme( $user, $theme );
-
-my $cookie2 = CGI->cookie(language => $lang);
-Vhffs::Panel::User::set_lang( $user, $lang );
-
-
-# Commit all the changes for the current user
-if( ( ! defined $firstname ) || ( ! defined $lastname ) || ( ! defined $city ) || ( ! defined $mail ) || ( ! defined $zipcode ) || ( ! defined $country ) || ( ! defined $address ) )
-{
- $message = gettext( "CGI Error!" );
-}
-elsif( ! ( $zipcode =~ /^[\w\d\s\-]+$/ ) )
-{
- $message = gettext( "Zipcode is not correct !" );
-}
-elsif( $pass1 ne $pass2 )
-{
- $message = gettext( "Passwords don't match" );
-}
-else
-{
- $user->set_firstname( $firstname );
- $user->set_lastname( $lastname );
- $user->set_city( $city );
- $user->set_zipcode( $zipcode );
- $user->set_country( $country );
- $user->set_address( $address );
-
- if( ( length( $pass1 ) > 1 ) && ( $pass1 eq $pass2 ) )
- {
- $pwd_change = 1;
- $user->set_password( $pass1 );
- }
-
- my $prevmail = $user->get_mail();
- if( $prevmail ne $mail )
- {
- $mail_change = 1;
- $user->set_mail( $mail );
- my $subject = gettext("Mailbox modified");
- my $content = sprintf( gettext("Hello %s %s,\n\nYou changed your email, here are your new personal information :\n\nUser: %s\nMail: %s\n\nVHFFS administrators\n"), $user->get_firstname, $user->get_lastname, $user->get_username, $user->get_mail);
- $user->send_mail_user( $subject, $content );
- }
-
- if( $user->commit < 0 )
- {
- $message = gettext("An error occured while updating the user account");
- }
- else
- {
- $message = gettext("User Successfully modified") . "<br>";
- }
-
- my $mu;
- if( $vhffs->get_config->use_mailuser == 1 )
- {
- use Vhffs::Services::MailUser;
- $mu = init Vhffs::Services::MailUser( $vhffs , $user );
- }
-
- # check if mu is not a negative integer
- if( defined $mu && $mu >= 0 && $mu->available > 0 ) {
-
- my $mail_activate = $cgi->param( "mail_activate" );
- my $nospam = $cgi->param( "mail_nospam" );
- my $novirus = $cgi->param( "mail_novirus" );
- if( ( defined $nospam ) && ( $nospam eq "on" ) )
- {
- $nospam = 1;
- }
- else
- {
- $nospam = 0;
- }
- if( ( defined $novirus ) && ( $novirus eq "on" ) )
- {
- $novirus = 1;
- }
- else
- {
- $novirus = 0;
- }
-
- if( ( defined $mail_activate ) && ( $mail_activate eq "on" ) )
- {
- my $usage = $cgi->param( "mail_usage" );
- if( ! defined $usage )
- {
- $message = gettext("You must choose a method for your mail");
- }
- elsif( $usage == 1 )
- {
-
- #In this case, we treat for popable accounts
- if( $mu->exists_box == 0 )
- {
- if( $pwd_change == 0 )
- {
- $message = gettext("Error ! You MUST provide a password in your account when you create your popable account");
- }
- elsif( ($mu->addbox ($pass1 )) < 0 )
- {
- $message = gettext("An error occured while adding the box");
- }
- elsif( ( $nospam == 1 ) && ( $mu->change_spam_status < 0 ) )
- {
- $message = gettext("An error occured while adding the box (anti-spam adding)");
- }
- elsif( ( $novirus == 1 ) && ( $mu->change_virus_status < 0 ) )
- {
- $message = gettext("An error occured while adding the box (anti-virus adding)");
- }
- else
- {
- $message .= "<br/>";
- $message .= gettext("Mailbox successfully added");
- }
- }
- else
- {
- # The use changed his password, we must update password for mail
- if( $pwd_change == 1 )
- {
- $mu->delbox;
- $mu->addbox( $pass1 );
- }
-
- # We change the spam status. if the spam status changed
- if( $vhffs->get_config->use_nospam == 1 )
- {
- if( $nospam != $mu->use_nospam )
- {
- if( $mu->change_spam_status == 1 )
- {
- $message .= gettext( "Change spam protection status for your account\n" );
- $message .= "<br/>";
- }
- else
- {
- $message .= gettext( "Error for spam protection\n" );
- $message .= "<br/>";
- }
- }
- }
-
- # As spam, the virus status changes only if the user changed values
- if( $vhffs->get_config->use_novirus == 1 )
- {
- if( $novirus != $mu->use_novirus )
- {
- if( $mu->change_virus_status == 1 )
- {
- $message .= gettext( "Change anti-virus status for your account\n" );
- $message .= "<br/>";
- }
- else
- {
- $message .= gettext( "Error for virus protection\n" );
- $message .= "<br/>";
- }
- }
- }
- }
- }
- elsif( $usage == 2 )
- {
- #Here, we create the forward
- my $ad = $user->get_mail;
- if( $mu->exists_forward == 0 )
- {
- if( ! defined $ad )
- {
- $message = "<br>" . gettext("There is a problem with the address you filled in your profile, unable to add forwarding");
- }
- else
- {
- if( $mu->addforward( $user->get_mail ) < 0)
- {
- $message = gettext("An error occured while adding the forwarding");
- }
- }
- }
- else
- {
- #Here, we update the forward
- if( $mail_change ==1 )
- {
- $mu->delforward;
- if( $mu->addforward( $mail ) < 0 )
- {
- $message .= "<br>" . gettext("An error occured while the forwarding");
-
- }
- }
- }
- }
- }
- else
- {
- $mu->delbox;
- $mu->delforward;
- }
- }
-
-}
-my $template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
-$template->param( MESSAGE => $message );
-
-set_refresh_url Vhffs::Panel::Main($panel, "/user/prefs.pl", 0);
-display Vhffs::Panel::Main($panel, $template->output, $cookie, $cookie2);
Modified: trunk/vhffs-panel/web/create.pl
===================================================================
--- trunk/vhffs-panel/web/create.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/web/create.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Panel::Main;
Modified: trunk/vhffs-panel/web/delete.pl
===================================================================
--- trunk/vhffs-panel/web/delete.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/web/delete.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -70,10 +71,10 @@
my $servername = $cgi->param("name");
-my $web = new Vhffs::Services::Httpd( $vhffs , $servername , $user , $group );
+my $web = Vhffs::Services::Httpd::get_by_servername( $vhffs , $servername );
-if( ( ! defined( $web ) ) || ( $web->fetch < 0 ) )
+if( ! defined( $web ) )
{
$message = gettext("This web area doesn't exist in VHFFS database");
}
Modified: trunk/vhffs-panel/web/prefs.pl
===================================================================
--- trunk/vhffs-panel/web/prefs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/web/prefs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -62,9 +63,9 @@
my $template;
my $templatedir = $vhffs->get_config->get_templatedir;
-my $web = new Vhffs::Services::Httpd( $vhffs , $servername , $user , $group );
+my $web = Vhffs::Services::Httpd::get_by_servername( $vhffs , $servername );
-if( $web->fetch < 0 )
+if( ! defined($web) )
{
$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
Modified: trunk/vhffs-panel/web/prefs_save.pl
===================================================================
--- trunk/vhffs-panel/web/prefs_save.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/web/prefs_save.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Group;
@@ -70,9 +71,9 @@
-my $web = new Vhffs::Services::Httpd( $vhffs , $servername , $user , $group );
+my $web = Vhffs::Services::Httpd::get_by_servername( $vhffs , $servername );
-if( ( ! defined( $web ) ) || ( $web->fetch < 0 ) )
+if( ! defined( $web ) )
{
$message = gettext("This web area doesn't exist in VHFFS database");
}
Modified: trunk/vhffs-panel/web/web_submit.pl
===================================================================
--- trunk/vhffs-panel/web/web_submit.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-panel/web/web_submit.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
use CGI::Session;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -78,12 +79,10 @@
else
{
- my $web = Vhffs::Panel::Web::create_web( $vhffs , $servername , $user , $group );
+ my $web = Vhffs::Panel::Web::create_web( $vhffs, $servername, $description, $user, $group );
if( defined $web )
{
- $web->set_description( $description );
- $web->commit;
$message = gettext("Web area successfully created !");
}
else
@@ -92,7 +91,7 @@
}
}
-$template = open_template( $vhffs , "misc" , "simplemsg" );
+$template = new HTML::Template( filename => $templatedir."/misc/simplemsg.tmpl" );
$template->param( MESSAGE => $message );
set_refresh_url Vhffs::Panel::Main($panel, "/panel.pl?project=$groupname", 0);
Deleted: trunk/vhffs-rfc/largefile
===================================================================
--- trunk/vhffs-rfc/largefile 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-rfc/largefile 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,137 +0,0 @@
-VHFFS Largefiles
-----------------
-
-
-Introduction
-------------
-The goal of largefiles service is to host large files
-on several servers. The problem is that many people
-use web hosting to host files like OpenOffice.org
-installer or others files. This type of hosting is bad for
-large files, in fact only one server serves all the files
-and it takes many bandwith.
-
-It will be better with several servers and an appropriate
-protocol to transfer files. The purpose is to use FTP or Bittorent
-protocol.
-
-
-
-Directories
------------
-We considers:
-- /ftppublic/ the root of the public ftp path
-- /ftppriv/ the root of the private ftp to put files into
-
-Largefile database schema and informations
-------------
-Largefile is a service on VHFFS like webhosting. Indeed, the user
-has to ask to host a file. VHFFS will store file informations
-in his database. The database schema will be like this :
-
-vhffs_largefile
-(
- filename as string,
- size as number,
- counted_size as number,
- username as string,
- password as string,
- directory as string,
- hash as string,
- gid as number REFERENCES vhffs_groups( gid ),
- object_id REFERENCES vhffs_object( object_id )
-);
-
-- filename will be the name of the file. So, the user has to
- put on FTP servers a file with the SAME name. Another name
- will be refused.
-- gid will be the gid of the group (Group Identifier)
-- uid will be the uid of the person who asks for the hosting of this largefile
-- size will be the size of the file
-- counted_size will be used by vhffs-bots
-- hash will be the md5 result of the file
-
-uid and size informations are only used for moderation purposes.
-
-Largefiles will inherit of Object class, so it can stores state, description
-or uid informations too.
-
-
-Create a new largefile hosting
----------------
-The user will ask to create a new largefile service. He will mention
-the name of the file and its size. Then, the demand will be moderated.
-
-If the service is refused, the status will be updated on VALIDATION_REFUSED
-and the db-relative data will be deleted.
-
-If the service is accepted, a bot will create a directory, a username
-and generate a password to put the file on the server. It will delivery
-a new FTP access. The username and the password are sent by mail.
-
-If the user forgot the username and password to put the file, he can
-ask to send it by mail.
-
-It's better to generate a new access by FTP than using the existing.
-In fact, somebody in the group can ask for a new largefile transfer but
-he cannot do it and another person will send the file. So, the group
-can ask new access to put the file.
-
-
-
-Largefile management
----------------
-All the groups can consult the hosted largefiles. They can delete it when
-they want. Admins can delete it too.
-
-
-
-Largefile bots
---------------
-Largefile has bots and will be transfer incoming largefiles on the FTP public
-server. A bot detects that a file is succesfully uploaded when its size
-hasn't change since the last run. When the bot detects that the file is
-fully uploaded, the state of the largefile changes on ACTIVATED.
-When it is ACTIVATED, new FTP access cannot be delivered and the file
-is available on public FTP server.
-The file is copied on the directory:
-/ftppublic/group/filename
-
-When a file is activated, the only action which can be operated is DELETE.
-
-Several bots will be created:
-- One bot to copy files from privftp to pubftp
-- One bot to clean privftp direcory without erased some files in uploading
-- One bot to delete files
-- One bot to create XML relative files
-- One bot to active privftp access and send email to have privftp
- username and password
-
-
-Largefile search
---------------
-Largefile service will offer a web-service to search files.
-The search can be made on:
-- group description
-- group name
-- filename
-- size
-
-The web-service does not need VHFFS database. It has to be independant.
-In fact, vhffs-bots will create a XML file which contains all informations
-about largefiles. The web-service will search into this XML file.
-
-Webservice will be capable of generating .torrent file for download.
-
-
-Largefile public access
---------------
-The hosted largefiles will be available with public-ftp or bittorent
-client. Largefile service will provide .torrent files and FTP
-anonymous access.
-
-
-Largefile mirroring
-----------------
-The largefile directory can be copied with rsync.
-
Copied: trunk/vhffs-robots/misc/awstats_6.6_vhffs.patch (from rev 555, branches/vhffs_4.1/vhffs-robots/misc/awstats_6.6_vhffs.patch)
Modified: trunk/vhffs-robots/src/create_cvs.pl
===================================================================
--- trunk/vhffs-robots/src/create_cvs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_cvs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,6 +32,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Cvs;
use Vhffs::Robots;
use Vhffs::Main;
Modified: trunk/vhffs-robots/src/create_dns.pl
===================================================================
--- trunk/vhffs-robots/src/create_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,8 +30,9 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib '/usr/share/vhffs/api';
-use Vhffs::Robots::DNS;
+use Vhffs::Services::DNS;
use Vhffs::Robots;
use Vhffs::Main;
@@ -53,7 +54,6 @@
foreach $dns ( @{$tocreate} )
{
$dns->set_status( Vhffs::Constants::ACTIVATED );
- $dns->activate;
if( $dns->commit > 0 )
{
Vhffs::Robots::vhffs_log( sprintf( "Create domain %s" , $dns->get_domain ) , $vhffs);
Modified: trunk/vhffs-robots/src/create_groups.pl
===================================================================
--- trunk/vhffs-robots/src/create_groups.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_groups.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Group;
use Vhffs::Robots;
Modified: trunk/vhffs-robots/src/create_homes.pl
===================================================================
--- trunk/vhffs-robots/src/create_homes.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_homes.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,6 +31,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::User;
use Vhffs::Robots;
use Vhffs::Main;
Deleted: trunk/vhffs-robots/src/create_largefile.pl
===================================================================
--- trunk/vhffs-robots/src/create_largefile.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_largefile.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,88 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-use Vhffs::Services::LargeFile;
-use Vhffs::Robots;
-use Vhffs::Functions;
-use Vhffs::Main;
-use locale;
-use Locale::gettext;
-
-
-my $vhffs = init Vhffs::Main;
-
-lock( $vhffs );
-
-my $files = Vhffs::Services::LargeFile::getall( $vhffs , Vhffs::Constants::WAITING_FOR_CREATION , undef, undef );
-my $file;
-my $groupname;
-my $path;
-my $pass;
-
-foreach $file ( @{$files} )
-{
- $groupname = $file->get_group->get_groupname;
-
- $path = $vhffs->get_config->get_datadir. "/largefile/queue/" . substr( $groupname , 0 , 1 ) . "/" . substr( $groupname , 1 , 1 ) . "/" . $groupname;
-
- Vhffs::Functions::create_dir( $path );
- chmod( 0770 , $path );
- chown( $file->get_user->get_uid , $file->get_group->get_gid , $path );
-
- $pass = Vhffs::Functions::generate_random_password;
-
- $file->set_password( $pass );
- $file->set_username( $groupname );
-
- $file->commit;
-
- mail_template( $vhffs ,
- "largefile-upload" ,
- $file->get_user ,
- { FILENAME => $file->get_filename ,
- USERNAME => $file->get_user->get_username ,
- 'FTP-USERNAME' => $file->get_username ,
- 'FTP-PASSWORD' => $pass ,
- 'FTP-SERVER' => $vhffs->get_config->largefile_upload_host ,
- 'FROM' => $vhffs->get_config->get_moderator_mail ,
- 'SUBJECT' => sprintf( gettext( "Upload file %s for file-hosting" ), $file->get_filename ) ,
- 'HOSTINGSERVICE' => $vhffs->get_config->get_host_name
- }
- );
-
- $file->set_status( Vhffs::Constants::CREATED );
- $file->commit;
-}
-
-unlock( $vhffs );
-
-exit 0;
-
Modified: trunk/vhffs-robots/src/create_mail.pl
===================================================================
--- trunk/vhffs-robots/src/create_mail.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_mail.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,7 +32,10 @@
#This robot create mail domain
#It actives it
-use Vhffs::Robots::Mail;
+# FIXME : This robot is unnecessary, we just have to activate mailbox on creation
+
+use lib '/usr/share/vhffs/api';
+use Vhffs::Services::Mail;
use Vhffs::Robots;
use Vhffs::Main;
Modified: trunk/vhffs-robots/src/create_ml.pl
===================================================================
--- trunk/vhffs-robots/src/create_ml.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_ml.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Constants;
@@ -46,18 +47,15 @@
foreach $ml ( @{$mls} )
{
- if( $ml->fetch > 0 )
+ $ml->set_status( Vhffs::Constants::ACTIVATED );
+ if( $ml->commit < 0 )
{
- $ml->set_status( Vhffs::Constants::ACTIVATED );
- if( $ml->commit < 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot create list %s", $ml->get_title ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Create list %s", $ml->get_title ), $vhffs);
- }
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot create list %s", $ml->get_title ), $vhffs);
}
+ else
+ {
+ Vhffs::Robots::vhffs_log( sprintf( "Create list %s", $ml->get_title ), $vhffs);
+ }
}
Vhffs::Robots::unlock( $vhffs );
Modified: trunk/vhffs-robots/src/create_mysql.pl
===================================================================
--- trunk/vhffs-robots/src/create_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,6 +32,7 @@
use strict;
use POSIX;
use locale;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Services::Mysql;
use Vhffs::Robots::Mysql;
Modified: trunk/vhffs-robots/src/create_pgsql.pl
===================================================================
--- trunk/vhffs-robots/src/create_pgsql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_pgsql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Postgres;
use Vhffs::Main;
use Vhffs::Robots;
Modified: trunk/vhffs-robots/src/create_repository.pl
===================================================================
--- trunk/vhffs-robots/src/create_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -32,6 +32,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Repository;
use Vhffs::Robots;
use Vhffs::Main;
Modified: trunk/vhffs-robots/src/create_svn.pl
===================================================================
--- trunk/vhffs-robots/src/create_svn.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_svn.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Robots::Svn;
@@ -44,17 +45,10 @@
my $svn;
foreach $svn ( @{$repos} )
{
- if( $svn->fetch >= 0)
- {
-
- if( Vhffs::Robots::Svn::create_repo( $vhffs , $svn ) < 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot create SVN %s" , $svn->get_reponame ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Create SVN %s" , $svn->get_reponame ), $vhffs);
- }
+ if( Vhffs::Robots::Svn::create_repo( $vhffs , $svn ) < 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot create SVN %s" , $svn->get_reponame ), $vhffs);
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "Create SVN %s" , $svn->get_reponame ), $vhffs);
}
}
Modified: trunk/vhffs-robots/src/create_viewvcconf.pl
===================================================================
--- trunk/vhffs-robots/src/create_viewvcconf.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_viewvcconf.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,6 +31,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Services::Cvs;
Modified: trunk/vhffs-robots/src/create_web.pl
===================================================================
--- trunk/vhffs-robots/src/create_web.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/create_web.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Web;
use Vhffs::Services::Httpd;
use Vhffs::Robots;
Modified: trunk/vhffs-robots/src/cvs_fixperms.pl
===================================================================
--- trunk/vhffs-robots/src/cvs_fixperms.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/cvs_fixperms.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -38,6 +38,7 @@
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Functions;
@@ -60,51 +61,48 @@
foreach $cvs ( @{$cvss} )
{
- if( $cvs->fetch > 0 )
+ $dir = $cvs->get_dir . "/CVSROOT/" ;
+ $readers_file = $dir."/readers";
+ $passwd_file = $dir."/passwd";
+ $user = $cvs->get_user;
+ $group = $cvs->get_group;
+ #First, update uid and gid informations on files
+ if( ( defined $user ) && ( defined $group ) )
+ {
+ Vhffs::Functions::change_owner_recur( $cvs->get_dir , $user->get_uid , $group->get_gid );
+ }
+
+ if( $cvs->is_public == 0 )
{
- $dir = $cvs->get_dir . "/CVSROOT/" ;
- $readers_file = $dir."/readers";
- $passwd_file = $dir."/passwd";
- $user = $cvs->get_user;
- $group = $cvs->get_group;
- #First, update uid and gid informations on files
- if( ( $user->fetch > 0 ) && ( $group->fetch > 0 ) )
- {
- Vhffs::Functions::change_owner_recur( $cvs->get_dir , $user->get_uid , $group->get_gid );
- }
+ Vhffs::Robots::vhffs_log( sprintf( "CVS fixperm (private) for %s", $cvs->get_cvsroot ), $vhffs);
+ $cvs->add_history("CVS is now private");
+ Vhffs::Functions::chmod_recur( $cvs->get_dir , 0660 , 02770 );
- if( $cvs->is_public == 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "CVS fixperm (private) for %s", $cvs->get_cvsroot ), $vhffs);
- $cvs->add_history("CVS is now private");
- Vhffs::Functions::chmod_recur( $cvs->get_dir , 0660 , 02770 );
+ #Delete reader_file if exists
+ unlink( $readers_file ) if( -f $readers_file );
+ }
+ else
+ {
+ #Fix permissions
+ Vhffs::Robots::vhffs_log( sprintf( "CVS fixperm (public) for %s", $cvs->get_cvsroot ), $vhffs);
+ $cvs->add_history("CVS is now public");
+ Vhffs::Functions::chmod_recur( $cvs->get_dir , 0664 , 02775 );
- #Delete reader_file if exists
- unlink( $readers_file ) if( -f $readers_file );
- }
- else
- {
- #Fix permissions
- Vhffs::Robots::vhffs_log( sprintf( "CVS fixperm (public) for %s", $cvs->get_cvsroot ), $vhffs);
- $cvs->add_history("CVS is now public");
- Vhffs::Functions::chmod_recur( $cvs->get_dir , 0664 , 02775 );
+ #Fix readers file
+ Vhffs::Robots::vhffs_log( sprintf("CVS, put repository %s public" , $cvs->get_cvsroot), $vhffs);
+ open( FILE , ">$readers_file" ) or die( "cannot open $readers_file" );
+ print FILE "anonymous";
+ close( FILE );
- #Fix readers file
- Vhffs::Robots::vhffs_log( sprintf("CVS, put repository %s public" , $cvs->get_cvsroot), $vhffs);
- open( FILE , ">$readers_file" ) or die( "cannot open $readers_file" );
- print FILE "anonymous";
- close( FILE );
-
- open( FILE , ">$passwd_file" ) or die( "cannot open $passwd_file" );
- print FILE "anonymous::".$user->get_username;
- close( FILE );
- chown $cvs->get_owneruid , $cvs->get_ownergid , $passwd_file;
- chown $cvs->get_owneruid , $cvs->get_ownergid , $readers_file;
- }
- $cvs->set_status( Vhffs::Constants::ACTIVATED );
- $cvs->commit;
+ open( FILE , ">$passwd_file" ) or die( "cannot open $passwd_file" );
+ print FILE "anonymous::".$user->get_username;
+ close( FILE );
+ chown $cvs->get_owneruid , $cvs->get_ownergid , $passwd_file;
+ chown $cvs->get_owneruid , $cvs->get_ownergid , $readers_file;
}
+ $cvs->set_status( Vhffs::Constants::ACTIVATED );
+ $cvs->commit;
}
Vhffs::Robots::unlock( $vhffs );
Modified: trunk/vhffs-robots/src/delete_cvs.pl
===================================================================
--- trunk/vhffs-robots/src/delete_cvs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_cvs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Cvs;
use Vhffs::Services::Cvs;
use Vhffs::Constants;
@@ -46,26 +47,17 @@
foreach $cvs ( @{$lol} )
{
- if( ( defined $cvs ) && ( $cvs->fetch > 0 ))
- {
- if( Vhffs::Robots::Cvs::delete_cvs( $cvs ) > 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Delete files from %s", $cvs->get_cvsroot ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot delete files from %s", $cvs->get_cvsroot ), $vhffs);
- }
-
- if( $cvs->delete > 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Delete CVS object %s", $cvs->get_cvsroot ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot delete CVS object %s", $cvs->get_cvsroot ), $vhffs);
- }
+ if( Vhffs::Robots::Cvs::delete_cvs( $cvs ) > 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Delete files from %s", $cvs->get_cvsroot ), $vhffs);
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot delete files from %s", $cvs->get_cvsroot ), $vhffs);
}
+
+ if( $cvs->delete > 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Delete CVS object %s", $cvs->get_cvsroot ), $vhffs);
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot delete CVS object %s", $cvs->get_cvsroot ), $vhffs);
+ }
}
Modified: trunk/vhffs-robots/src/delete_dns.pl
===================================================================
--- trunk/vhffs-robots/src/delete_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,8 +29,9 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
-use Vhffs::Robots::DNS;
+use Vhffs::Services::DNS;
use Vhffs::Main;
use strict;
Modified: trunk/vhffs-robots/src/delete_group.pl
===================================================================
--- trunk/vhffs-robots/src/delete_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Group;
use Vhffs::Main;
use Vhffs::Group;
@@ -61,7 +62,7 @@
$ok = 1;
$objects = Vhffs::Services::Cvs::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0 );
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain cvs for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -70,7 +71,7 @@
}
$objects = Vhffs::Services::Svn::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0);
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain svn for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -79,7 +80,7 @@
}
$objects = Vhffs::Services::DNS::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0);
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain dns for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -88,7 +89,7 @@
}
$objects = Vhffs::Services::Mysql::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0 );
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain mysql for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -97,7 +98,7 @@
}
$objects = Vhffs::Services::Postgres::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0 );
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain pgsql for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -107,7 +108,7 @@
$objects = Vhffs::Services::Httpd::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0 );
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain website for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -116,7 +117,7 @@
}
$objects = Vhffs::Services::Mailing::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0);
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain list for group %s before delete" , $group->get_groupname ), $vhffs);
@@ -126,7 +127,7 @@
$objects = Vhffs::Services::Mail::getall( $vhffs , undef , undef , $group );
- $ok = 0 if( defined $objects );
+ $ok = 0 if( @$objects != 0 );
foreach $object ( @{$objects} )
{
Vhffs::Robots::vhffs_log( sprintf( "Remain mail for group %s before delete" , $group->get_groupname ), $vhffs);
Deleted: trunk/vhffs-robots/src/delete_largefile.pl
===================================================================
--- trunk/vhffs-robots/src/delete_largefile.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_largefile.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,78 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-use Vhffs::Services::LargeFile;
-use Vhffs::Robots;
-use Vhffs::Functions;
-use Vhffs::Main;
-use locale;
-use Locale::gettext;
-use File::Copy;
-
-
-my $vhffs = init Vhffs::Main;
-
-lock( $vhffs );
-
-my $files = Vhffs::Services::LargeFile::getall( $vhffs , Vhffs::Constants::TO_DELETE , undef, undef );
-my $file;
-my $groupname;
-my $queue_path;
-my $completed_path;
-my $pass;
-
-foreach $file ( @{$files} )
-{
- $groupname = $file->get_group->get_groupname;
-
- $queue_path = $vhffs->get_config->get_datadir. "/largefile/queue/" . substr( $groupname , 0 , 1 ) . "/" . substr( $groupname , 1 , 1 ) . "/" . $groupname . "/" . $file->get_filename ;
- $completed_path = $vhffs->get_config->get_datadir. "/largefile/completed/" . substr( $groupname , 0 , 1 ) . "/" . substr( $groupname , 1 , 1 ) . "/" . $groupname . "/" . $file->get_filename ;
-
- if( -f $queue_path )
- {
- unlink( $queue_path );
- }
- if( -f $completed_path )
- {
- unlink( $queue_path );
- }
-
- $file->add_history( gettext( "Will try to delete the object from the platform" ) );
- if( $file->delete != 1 )
- {
- $file->add_history( gettext( "Error when delete the file from platform" ) );
- }
-}
-
-unlock( $vhffs );
-
-exit 0;
-
Modified: trunk/vhffs-robots/src/delete_mail.pl
===================================================================
--- trunk/vhffs-robots/src/delete_mail.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_mail.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,7 +30,8 @@
# POSSIBILITY OF SUCH DAMAGE.
-use Vhffs::Robots::Mail;
+use lib '/usr/share/vhffs/api';
+
use Vhffs::Services::Mail;
use Vhffs::Services::Mailing;
use Vhffs::Robots;
@@ -49,17 +50,13 @@
foreach $mail ( @{$mails} )
{
my $lists = Vhffs::Services::Mailing::getall( $vhffs , undef , undef , undef , $mail->get_domain );
- if( defined $lists )
- {
+ if( @$lists != 0) {
Vhffs::Robots::vhffs_log( sprintf( "Cannot delete mail domain %s, remains lists" , $mail->get_domain ) , $vhffs);
- foreach $list ( @{$lists} )
- {
+ foreach $list ( @{$lists} ) {
$list->set_status( Vhffs::Constants::TO_DELETE );
$list->commit;
}
- }
- else
- {
+ } else {
Vhffs::Robots::vhffs_log( sprintf( "Delete mail domain %s" , $mail->get_domain ) , $vhffs);
$mail->delete;
}
Modified: trunk/vhffs-robots/src/delete_ml.pl
===================================================================
--- trunk/vhffs-robots/src/delete_ml.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_ml.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Robots;
Modified: trunk/vhffs-robots/src/delete_mysql.pl
===================================================================
--- trunk/vhffs-robots/src/delete_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Robots::Mysql;
use Vhffs::Services::Mysql;
Modified: trunk/vhffs-robots/src/delete_pgsql.pl
===================================================================
--- trunk/vhffs-robots/src/delete_pgsql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_pgsql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Services::Postgres;
use Vhffs::Robots::Postgres;
Modified: trunk/vhffs-robots/src/delete_repository.pl
===================================================================
--- trunk/vhffs-robots/src/delete_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots::Repository;
use Vhffs::Services::Repository;
use Vhffs::Constants;
@@ -46,7 +47,7 @@
foreach $repo ( @{$repos} )
{
- if( ( defined $repo ) && ( $repo->fetch > 0 ))
+ if( defined $repo )
{
if( Vhffs::Robots::Repository::delete_repository( $repo ) > 0 )
{
Modified: trunk/vhffs-robots/src/delete_svn.pl
===================================================================
--- trunk/vhffs-robots/src/delete_svn.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_svn.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Robots::Svn;
@@ -44,25 +45,16 @@
my $svn;
foreach $svn ( @{$repos} )
{
- if( $svn->fetch >= 0)
- {
- if( Vhffs::Robots::Svn::delete_repo( $vhffs , $svn ) < 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot delete files from SVN repository %s" , $svn->get_reponame ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Delete files from SVN repository %s" , $svn->get_reponame ), $vhffs);
- }
+ if( Vhffs::Robots::Svn::delete_repo( $vhffs , $svn ) < 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot delete files from SVN repository %s" , $svn->get_reponame ), $vhffs);
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "Delete files from SVN repository %s" , $svn->get_reponame ), $vhffs);
+ }
- if( $svn->delete < 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Cannot delete SVN repository object %s" , $svn->get_reponame ), $vhffs);
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "Delete SVN repository object %s" , $svn->get_reponame ), $vhffs);
- }
+ if( $svn->delete < 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot delete SVN repository object %s" , $svn->get_reponame ), $vhffs);
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "Delete SVN repository object %s" , $svn->get_reponame ), $vhffs);
}
}
Modified: trunk/vhffs-robots/src/delete_users.pl
===================================================================
--- trunk/vhffs-robots/src/delete_users.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_users.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots qw( lock unlock vhffs_log );
use Vhffs::Robots::User;
use Vhffs::User;
@@ -47,7 +48,7 @@
foreach $user ( @{$lol} )
{
$ok = 1;
- if( ( defined $user ) && ( $user->fetch > 0 ))
+ if( defined $user )
{
$groups = $user->get_groups;
Modified: trunk/vhffs-robots/src/delete_web.pl
===================================================================
--- trunk/vhffs-robots/src/delete_web.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/delete_web.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Robots::Web;
use Vhffs::Services::Httpd;
Modified: trunk/vhffs-robots/src/dump_mysql.pl
===================================================================
--- trunk/vhffs-robots/src/dump_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/dump_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -34,20 +34,14 @@
# and put it on each group directory
#
-use Vhffs::Robots;
-
-
-#################
-#Config Stuff
-my $MYSQLDUMP_BINARY = "/usr/bin/mysqldump";
-#################
-
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Functions;
use Vhffs::Services::Mysql;
+use Vhffs::Robots;
my $vhffs = init Vhffs::Main;
@@ -57,16 +51,13 @@
my $admin_dbuser = $vhffs->get_config->get_mysql_admin_username;
my $admin_dbpass = $vhffs->get_config->get_mysql_admin_pass;
my $admin_dbhost = $vhffs->get_config->get_mysql_admin_host;
+my $mysqldumppath = $vhffs->get_config->get_mysql_mysqldump_path;
my $obj;
my $group;
my $groupname;
-if( ! -x $MYSQLDUMP_BINARY )
-{
- print "Error, mysqldump is not present on this system\n";
- exit( -1 );
-}
+die "Error, mysqldump is not present on this system in path \"$mysqldumppath\"\n" unless( -x $mysqldumppath );
foreach $obj ( @{$objs} )
{
@@ -76,7 +67,7 @@
if( -d $dir )
{
my $file = $dir."/".$dbname.".mysql.dump";
- my $cmd = "$MYSQLDUMP_BINARY -u $admin_dbuser -h $admin_dbhost -p$admin_dbpass $dbname > $file";
+ my $cmd = "$mysqldumppath -u $admin_dbuser -h $admin_dbhost -p$admin_dbpass $dbname > $file";
system( $cmd );
#Change the chmod if the backup succeed
@@ -87,7 +78,6 @@
}
}
-# $group = new Vhffs::Group( $vhffs , Vhffs::Group::get_name_by_gid( $vhffs , $obj->get_ownergid ) );
}
Vhffs::Robots::unlock( $vhffs );
Copied: trunk/vhffs-robots/src/dump_pgsql.pl (from rev 555, branches/vhffs_4.1/vhffs-robots/src/dump_pgsql.pl)
Modified: trunk/vhffs-robots/src/fix_quota.pl
===================================================================
--- trunk/vhffs-robots/src/fix_quota.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/fix_quota.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -35,6 +35,7 @@
use locale;
use Locale::gettext;
use Quota;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Group;
@@ -54,40 +55,34 @@
foreach $group ( @{$groups} )
{
- if( $group->fetch > 0 )
- {
- $blocks = $group->get_quota * 1024;
- $inodes = $group->get_quota * 1126400 / 100;
+ $blocks = $group->get_quota * 1024;
+ $inodes = $group->get_quota * 1126400 / 100;
- unless( Quota::setqlim($dev, $group->get_gid, $blocks, $blocks, $inodes, $inodes, 0, 1) )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Update quota for group %s set %s" , $group->get_groupname , $group->get_quota ) , $vhffs);
- }
- else
- {
- printf("Cannot update quota for group %s, reason: %s\n", $group->get_groupname, Quota::strerr);
- }
+ unless( Quota::setqlim($dev, $group->get_gid, $blocks, $blocks, $inodes, $inodes, 0, 1) )
+ {
+ Vhffs::Robots::vhffs_log( sprintf( "Update quota for group %s set %s" , $group->get_groupname , $group->get_quota ) , $vhffs);
}
+ else
+ {
+ printf("Cannot update quota for group %s, reason: %s\n", $group->get_groupname, Quota::strerr);
+ }
}
$users = Vhffs::User::getall( $vhffs , Vhffs::Constants::ACTIVATED );
foreach $user ( @{$users} )
{
- if( $user->fetch > 0 )
- {
- $blocks = 1024;
- $inodes = 1126400 / 100;
+ $blocks = 1024;
+ $inodes = 1126400 / 100;
- unless( Quota::setqlim($dev, $user->get_gid, $blocks, $blocks, $inodes, $inodes, 0, 1) )
- {
+ unless( Quota::setqlim($dev, $user->get_gid, $blocks, $blocks, $inodes, $inodes, 0, 1) )
+ {
Vhffs::Robots::vhffs_log( sprintf( "Update quota for user group %s set 1" , $user->get_username ) , $vhffs);
- }
- else
- {
- printf("Cannot update quota for group %s, reason: %s\n", $user->get_username, Quota::strerr);
- }
}
+ else
+ {
+ printf("Cannot update quota for group %s, reason: %s\n", $user->get_username, Quota::strerr);
+ }
}
Vhffs::Robots::unlock( $vhffs );
Modified: trunk/vhffs-robots/src/fix_quota_repository.pl
===================================================================
--- trunk/vhffs-robots/src/fix_quota_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/fix_quota_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -34,6 +34,7 @@
use POSIX;
use locale;
use Locale::gettext;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Group;
@@ -57,7 +58,7 @@
foreach $group ( @{$groups} )
{
- if( $group->fetch > 0 )
+ if( defined $group )
{
$quota = 0;
$blocks = 0;
@@ -68,7 +69,7 @@
{
foreach $repo ( @{$repos} )
{
- if( $repo->fetch > 0)
+ if( defined $repo )
{
$quota += $repo->get_quota;
$blocks += $repo->get_quota * 1024;
@@ -102,7 +103,7 @@
foreach $user ( @{$users} )
{
- if( $user->fetch > 0 )
+ if( defined $user )
{
# give no space for all primary groups of users
if( Quota::setqlim($dev, $user->get_gid, 1, 1, 1, 1, 0, 1) )
Modified: trunk/vhffs-robots/src/generate_repositorystats.pl
===================================================================
--- trunk/vhffs-robots/src/generate_repositorystats.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/generate_repositorystats.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,6 +36,7 @@
#CustomLog /var/log/apache2/http.log vhffs
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Conf;
use Vhffs::Functions;
Modified: trunk/vhffs-robots/src/generate_webstats.pl
===================================================================
--- trunk/vhffs-robots/src/generate_webstats.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/generate_webstats.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -36,6 +36,7 @@
#CustomLog /var/log/apache2/vhffs.log vhffs
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Conf;
use Vhffs::Functions;
Modified: trunk/vhffs-robots/src/listengine_publicarchives.pl
===================================================================
--- trunk/vhffs-robots/src/listengine_publicarchives.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/listengine_publicarchives.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -2,6 +2,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Group;
use Vhffs::Functions;
@@ -39,121 +40,118 @@
die "Cannot create ".$outputdir." directory\n" unless( -d $outputdir );
my $lists = Vhffs::Services::Mailing::getall( $vhffs , Vhffs::Constants::ACTIVATED , undef );
-if( defined $lists )
+foreach my $list ( @{$lists} )
{
- foreach my $list ( @{$lists} )
- {
# print $list->get_domain." ".$list->get_localpart." ".Vhffs::Group::get_name_by_gid( $vhffs , $list->get_ownergid )." ".$list->get_oid." ".Vhffs::Functions::status_string_from_status_id( $list->get_status )."\n";
- next if ( !defined $list->get_domain || !defined $list->get_localpart || $list->get_domain eq "" || $list->get_localpart eq "" );
+ next if ( !defined $list->get_domain || !defined $list->get_localpart || $list->get_domain eq "" || $list->get_localpart eq "" );
- # delete previous public archives (if available) if there is no public archives for this list
- if ( $list->get_open_archive == 0 ) {
- my $publicdir = $outputdir."/".$list->get_domain."/".$list->get_localpart;
- if ( -d $publicdir) {
- system("rm -rf $publicdir 2>/dev/null");
- }
- next;
+ # delete previous public archives (if available) if there is no public archives for this list
+ if ( $list->get_open_archive == 0 ) {
+ my $publicdir = $outputdir."/".$list->get_domain."/".$list->get_localpart;
+ if ( -d $publicdir) {
+ system("rm -rf $publicdir 2>/dev/null");
}
+ next;
+ }
- $listdir = $archivedir."/".$list->get_domain."/".$list->get_localpart;
- next if( !defined opendir( LISTDIR , $listdir ) );
+ $listdir = $archivedir."/".$list->get_domain."/".$list->get_localpart;
+ next if( !defined opendir( LISTDIR , $listdir ) );
- $outputlistdir = $outputdir."/".$list->get_domain;
- mkdir($outputlistdir, 0755);
- if (! -d $outputlistdir) { die "Cannot create ".$outputlistdir." directory\n"; };
+ $outputlistdir = $outputdir."/".$list->get_domain;
+ mkdir($outputlistdir, 0755);
+ if (! -d $outputlistdir) { die "Cannot create ".$outputlistdir." directory\n"; };
- $outputlistdir = $outputdir."/".$list->get_domain."/".$list->get_localpart;
- mkdir($outputlistdir, 0755);
- if (! -d $outputlistdir) { die "Cannot create ".$outputlistdir." directory\n"; };
+ $outputlistdir = $outputdir."/".$list->get_domain."/".$list->get_localpart;
+ mkdir($outputlistdir, 0755);
+ if (! -d $outputlistdir) { die "Cannot create ".$outputlistdir." directory\n"; };
- # -- index : main page
- my $maintemplate = new HTML::Template( filename => $templatedir."/indexmain.tmpl" );
- $maintemplate->param( NAME => $list->get_domain."/".$list->get_localpart );
- my $indexbody = "";
- my $oddoreven = "odd";
+ # -- index : main page
+ my $maintemplate = new HTML::Template( filename => $templatedir."/indexmain.tmpl" );
+ $maintemplate->param( NAME => $list->get_domain."/".$list->get_localpart );
+ my $indexbody = "";
+ my $oddoreven = "odd";
- @years = readdir( LISTDIR );
- foreach $year ( sort @years )
- {
- next if( $year =~ /^\..*$/ );
+ @years = readdir( LISTDIR );
+ foreach $year ( sort @years )
+ {
+ next if( $year =~ /^\..*$/ );
- $yearpath = $listdir."/".$year;
+ $yearpath = $listdir."/".$year;
- next if( !defined opendir( YEARDIR , $yearpath ) );
+ next if( !defined opendir( YEARDIR , $yearpath ) );
- $outputyeardir = $outputlistdir."/".$year;
- mkdir($outputyeardir, 0755);
- if (! -d $outputyeardir) { die "Cannot create ".$outputyeardir." directory\n"; };
+ $outputyeardir = $outputlistdir."/".$year;
+ mkdir($outputyeardir, 0755);
+ if (! -d $outputyeardir) { die "Cannot create ".$outputyeardir." directory\n"; };
- @months = readdir( YEARDIR );
- foreach $month ( sort @months )
- {
- next if( $month =~ /^\..*$/ );
+ @months = readdir( YEARDIR );
+ foreach $month ( sort @months )
+ {
+ next if( $month =~ /^\..*$/ );
- $monthpath = $yearpath."/".$month;
+ $monthpath = $yearpath."/".$month;
- $outputmonthdir = $outputyeardir."/".$month;
- mkdir($outputmonthdir, 0755);
- if (! -d $outputmonthdir) { die "Cannot create ".$outputmonthdir." directory\n"; };
+ $outputmonthdir = $outputyeardir."/".$month;
+ mkdir($outputmonthdir, 0755);
+ if (! -d $outputmonthdir) { die "Cannot create ".$outputmonthdir." directory\n"; };
- print $monthpath." -> ".$outputmonthdir."\n";
- $cmd = "mhonarc -add -rc " . $configmhonarc . " -definevar MAIN-TITLE='" . $list->get_domain . "/" . $list->get_localpart . "' -outdir " . $outputmonthdir . " " . $monthpath . "/*/*";
- print $cmd."\n";
- system( $cmd );
+ print $monthpath." -> ".$outputmonthdir."\n";
+ $cmd = "mhonarc -add -rc " . $configmhonarc . " -definevar MAIN-TITLE='" . $list->get_domain . "/" . $list->get_localpart . "' -outdir " . $outputmonthdir . " " . $monthpath . "/*/*";
+ print $cmd."\n";
+ system( $cmd );
- # -- index : part
- my $parttemplate = new HTML::Template( filename => $templatedir."/indexpart.tmpl" );
- $parttemplate->param( YEAR => $year );
- $parttemplate->param( MONTH => $month );
+ # -- index : part
+ my $parttemplate = new HTML::Template( filename => $templatedir."/indexpart.tmpl" );
+ $parttemplate->param( YEAR => $year );
+ $parttemplate->param( MONTH => $month );
- if( defined opendir( MONTHDIR , $monthpath ) ) {
+ if( defined opendir( MONTHDIR , $monthpath ) ) {
- my $mailnb = 0;
- my $mailsize = 0;
+ my $mailnb = 0;
+ my $mailsize = 0;
- my @days = readdir ( MONTHDIR );
- foreach my $day ( @days )
- {
- next if( $day =~ /^\..*$/ );
+ my @days = readdir ( MONTHDIR );
+ foreach my $day ( @days )
+ {
+ next if( $day =~ /^\..*$/ );
- my $daypath = $monthpath."/".$day;
+ my $daypath = $monthpath."/".$day;
- next if( !defined opendir( DAYDIR , $daypath ) );
+ next if( !defined opendir( DAYDIR , $daypath ) );
- my @mails = readdir ( DAYDIR );
- foreach my $mail ( @mails )
- {
- next if( $mail =~ /^\..*$/ );
+ my @mails = readdir ( DAYDIR );
+ foreach my $mail ( @mails )
+ {
+ next if( $mail =~ /^\..*$/ );
- $mailnb++;
+ $mailnb++;
- my $size;
- (undef,undef,undef,undef,undef,undef,undef,$size,undef,undef,undef,undef,undef) = stat( $daypath."/".$mail );
- $mailsize += $size;
- }
+ my $size;
+ (undef,undef,undef,undef,undef,undef,undef,$size,undef,undef,undef,undef,undef) = stat( $daypath."/".$mail );
+ $mailsize += $size;
}
-
- my $totalsize = sprintf("%d", $mailsize/1024 );
- $parttemplate->param( NUMBER => $mailnb );
- $parttemplate->param( SIZE => $totalsize );
- $parttemplate->param( SIZEUNIT => "KB" );
- $parttemplate->param( ODDOREVEN => $oddoreven );
- if ( $oddoreven eq "odd" ) { $oddoreven = "even"; }
- else { $oddoreven = "odd"; }
}
- $indexbody .= $parttemplate->output;
+ my $totalsize = sprintf("%d", $mailsize/1024 );
+ $parttemplate->param( NUMBER => $mailnb );
+ $parttemplate->param( SIZE => $totalsize );
+ $parttemplate->param( SIZEUNIT => "KB" );
+ $parttemplate->param( ODDOREVEN => $oddoreven );
+ if ( $oddoreven eq "odd" ) { $oddoreven = "even"; }
+ else { $oddoreven = "odd"; }
}
- closedir ( YEARDIR );
+ $indexbody .= $parttemplate->output;
}
- $maintemplate->param( BODY => $indexbody );
- open( OUTPUT , ">".$outputlistdir."/index.html" );
- print OUTPUT $maintemplate->output;
- close( OUTPUT );
-
- closedir( LISTDIR );
+ closedir ( YEARDIR );
}
+
+ $maintemplate->param( BODY => $indexbody );
+ open( OUTPUT , ">".$outputlistdir."/index.html" );
+ print OUTPUT $maintemplate->output;
+ close( OUTPUT );
+
+ closedir( LISTDIR );
}
Modified: trunk/vhffs-robots/src/mailing.pl
===================================================================
--- trunk/vhffs-robots/src/mailing.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/mailing.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -42,6 +42,7 @@
use strict;
use Encode;
use utf8;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Functions;
@@ -88,7 +89,7 @@
next if( ! defined $mailings->{$idm}{subject} );
my $query = "UPDATE vhffs_mailings SET state='".Vhffs::Constants::ACTIVATED."' WHERE id_mailing='".$idm."'";
- my $request = $vhffs->get_db_object->{'DB_WRITE'}->prepare( $query );
+ my $request = $vhffs->get_db_object->prepare( $query );
$request->execute or print ( "error" );
$subject = Vhffs::Functions::stripslashes( $mailings->{$idm}{subject} );
@@ -98,7 +99,6 @@
foreach $user ( @{$users} )
{
next if( ! defined( $user ) );
- next if( $user->fetch < 0 );
Vhffs::Functions::send_mail( $from , $user->get_mail , $subject , $message , $vhffs );
}
Modified: trunk/vhffs-robots/src/modify_mysql.pl
===================================================================
--- trunk/vhffs-robots/src/modify_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/modify_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Robots::Mysql;
use Vhffs::Services::Mysql;
Modified: trunk/vhffs-robots/src/modify_pgsql.pl
===================================================================
--- trunk/vhffs-robots/src/modify_pgsql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/modify_pgsql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -30,6 +30,7 @@
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Robots;
use Vhffs::Services::Postgres;
use Vhffs::Robots::Postgres;
Deleted: trunk/vhffs-robots/src/move-completed-largefile.pl
===================================================================
--- trunk/vhffs-robots/src/move-completed-largefile.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/move-completed-largefile.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,98 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-use Vhffs::Services::LargeFile;
-use Vhffs::Robots;
-use Vhffs::Functions;
-use Vhffs::Main;
-use locale;
-use Locale::gettext;
-use File::Copy;
-
-
-my $vhffs = init Vhffs::Main;
-
-lock( $vhffs );
-
-my $files = Vhffs::Services::LargeFile::getall( $vhffs , Vhffs::Constants::WAITING_FOR_MODIFICATION , undef, undef );
-my $file;
-my $groupname;
-my $queue_path;
-my $completed_path;
-my $pass;
-
-foreach $file ( @{$files} )
-{
- $groupname = $file->get_group->get_groupname;
-
- $queue_path = $vhffs->get_config->get_datadir. "/largefile/queue/" . substr( $groupname , 0 , 1 ) . "/" . substr( $groupname , 1 , 1 ) . "/" . $groupname . "/" . $file->get_filename ;
- $completed_path = $vhffs->get_config->get_datadir. "/largefile/completed/" . substr( $groupname , 0 , 1 ) . "/" . substr( $groupname , 1 , 1 ) . "/" . $groupname . "/" ;
-
- if( -f $queue_path )
- {
- Vhffs::Functions::create_dir( $completed_path );
- copy( $queue_path , $completed_path );
- unlink( $queue_path );
- $file->set_status( Vhffs::Constants::ACTIVATED );
- $file->commit;
- mail_template( $vhffs ,
- "largefile-finished" ,
- $file->get_user ,
- { FILENAME => $file->get_filename ,
- USERNAME => $file->get_user->get_username ,
- 'FROM' => $vhffs->get_config->get_moderator_mail ,
- 'SUBJECT' => sprintf( gettext( "File %s is now available on %s" ), $file->get_filename , $vhffs->get_config->get_host_name ) ,
- 'HOSTINGSERVICE' => $vhffs->get_config->get_host_name
- }
- );
- }
- else
- {
- $file->set_status( Vhffs::Constants::CREATED );
- $file->commit;
- $file->add_history( gettext( "The file is not available" ) );
- mail_template( $vhffs ,
- "largefile-copyfailed" ,
- $file->get_user ,
- { FILENAME => $file->get_filename ,
- USERNAME => $file->get_user->get_username ,
- 'FROM' => $vhffs->get_config->get_moderator_mail ,
- 'SUBJECT' => sprintf( gettext( "File %s not found" ), $file->get_filename ) ,
- 'HOSTINGSERVICE' => $vhffs->get_config->get_host_name
- }
- );
- }
-}
-
-unlock( $vhffs );
-
-exit 0;
-
Modified: trunk/vhffs-robots/src/refused_cvs.pl
===================================================================
--- trunk/vhffs-robots/src/refused_cvs.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_cvs.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -60,31 +61,26 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your CVS request : %s ") , $object->get_cvsroot);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
-
- $subject = gettext("Your CVS repository request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
+ $user = $object->get_user;
+ $lang = Vhffs::Panel::User::get_lang( $user );
+ setlocale( LC_ALL , $lang ) if( defined $lang );
+ if( defined $user ) {
+ $message = sprintf( gettext("Your CVS request : %s ") , $object->get_cvsroot);
+ $message .= gettext("has been refused by the Moderators team")."\n";
+ $message .= gettext("In hope to keep you in our hosting service")."\n\n";
+ if( length( $object->get_description ) > 1 ) {
+ $message .= gettext("Reason given : ");
+ $message .= $object->get_description . "\n";
}
-
- $object->delete;
+ $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
+ $message .= gettext("Cheers,")."\n";
+ $message .= gettext("The Moderator and Admin team");
+
+ $subject = gettext("Your CVS repository request");
+ Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
}
+
+ $object->delete;
}
Vhffs::Robots::unlock( $vhffs );
Modified: trunk/vhffs-robots/src/refused_dns.pl
===================================================================
--- trunk/vhffs-robots/src/refused_dns.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_dns.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Robots;
@@ -59,12 +60,12 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
+ if( defined $object )
{
$user = $object->get_user;
$lang = Vhffs::Panel::User::get_lang( $user );
setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
+ if( defined $user )
{
$message = sprintf( gettext("Your DNS hosting request for the domain : %s ") , $object->get_domain );
$message .= gettext("has been refused by the Moderators team")."\n";
Modified: trunk/vhffs-robots/src/refused_groups.pl
===================================================================
--- trunk/vhffs-robots/src/refused_groups.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_groups.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -59,31 +60,26 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your Group request : %s ") , $object->get_groupname);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
-
- $subject = gettext("Your Group request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
+ $user = $object->get_user;
+ $lang = Vhffs::Panel::User::get_lang( $user );
+ setlocale( LC_ALL , $lang ) if( defined $lang );
+ if( defined $user ) {
+ $message = sprintf( gettext("Your Group request : %s ") , $object->get_groupname);
+ $message .= gettext("has been refused by the Moderators team")."\n";
+ $message .= gettext("In hope to keep you in our hosting service")."\n\n";
+ if( length( $object->get_description ) > 1 ) {
+ $message .= gettext("Reason given : ");
+ $message .= $object->get_description . "\n";
}
-
- $object->delete;
+ $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
+ $message .= gettext("Cheers,")."\n";
+ $message .= gettext("The Moderator and Admin team");
+
+ $subject = gettext("Your Group request");
+ Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
}
+
+ $object->delete;
}
Deleted: trunk/vhffs-robots/src/refused_largefile.pl
===================================================================
--- trunk/vhffs-robots/src/refused_largefile.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_largefile.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,93 +0,0 @@
-#!/usr/bin/perl
-# Copyright (c) vhffs project and its contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-#3. Neither the name of vhffs nor the names of its contributors
-# may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-no warnings 'redefine';
-
-use POSIX qw(locale_h);
-use locale;
-use Locale::gettext;
-use strict;
-use Vhffs::Main;
-use Vhffs::User;
-use Vhffs::Group;
-use Vhffs::Services::LargeFile;
-use Vhffs::Panel::User;
-use Vhffs::Robots;
-
-
-my $vhffs;
-my $user;
-my $message;
-my $subject;
-my $object;
-my $lang;
-my $objects;
-
-$vhffs = init Vhffs::Main;
-
-Vhffs::Robots::lock( $vhffs );
-
-$objects = Vhffs::Services::LargeFile::getall( $vhffs , Vhffs::Constants::VALIDATION_REFUSED );
-bindtextdomain("vhffs", $vhffs->get_config->get_intldir);
-textdomain("vhffs");
-
-foreach $object ( @{$objects} )
-{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your file hosting request for the file : %s\n") , $object->get_filename);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
-
- $subject = gettext("Your file-hosting request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
- }
-
- $object->delete;
- }
-}
-
-
-Vhffs::Robots::unlock( $vhffs );
-exit 0;
Modified: trunk/vhffs-robots/src/refused_mail.pl
===================================================================
--- trunk/vhffs-robots/src/refused_mail.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_mail.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -59,12 +60,12 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
+ if( defined $object )
{
$user = $object->get_user;
$lang = Vhffs::Panel::User::get_lang( $user );
setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
+ if( defined $user )
{
$message = sprintf( gettext("Your Mail hosting request for the domain: %s ") , $object->get_domain);
$message .= gettext("has been refused by the Moderators team")."\n";
Modified: trunk/vhffs-robots/src/refused_ml.pl
===================================================================
--- trunk/vhffs-robots/src/refused_ml.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_ml.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::User;
@@ -59,30 +60,27 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your Mailing-list request : %s ") , $object->get_listname);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
- $subject = gettext("Your Mailing-list request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
- }
+ $user = $object->get_user;
+ $lang = Vhffs::Panel::User::get_lang( $user );
+ setlocale( LC_ALL , $lang ) if( defined $lang );
+ if( defined $user )
+ {
+ $message = sprintf( gettext("Your Mailing-list request : %s ") , $object->get_listname);
+ $message .= gettext("has been refused by the Moderators team")."\n";
+ $message .= gettext("In hope to keep you in our hosting service")."\n\n";
+ if( length( $object->get_description ) > 1 )
+ {
+ $message .= gettext("Reason given : ");
+ $message .= $object->get_description . "\n";
+ }
+ $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
+ $message .= gettext("Cheers,")."\n";
+ $message .= gettext("The Moderator and Admin team");
+ $subject = gettext("Your Mailing-list request");
+ Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
+ }
- $object->delete;
- }
+ $object->delete;
}
Modified: trunk/vhffs-robots/src/refused_mysql.pl
===================================================================
--- trunk/vhffs-robots/src/refused_mysql.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_mysql.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use POSIX qw(locale_h);
use locale;
use Locale::gettext;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -30,12 +31,12 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
+ if( defined $object )
{
$user = $object->get_user;
$lang = Vhffs::Panel::User::get_lang( $user );
setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
+ if( defined $user )
{
$message = sprintf( gettext("Your MySQL database request : %s ") , $object->get_dbname );
$message .= gettext("has been refused by the Moderators team")."\n";
Modified: trunk/vhffs-robots/src/refused_postgres.pl
===================================================================
--- trunk/vhffs-robots/src/refused_postgres.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_postgres.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -59,12 +60,13 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
+ # useless !!! (?)
+ if( defined $object )
{
$user = $object->get_user;
$lang = Vhffs::Panel::User::get_lang( $user );
setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
+ if( defined $user )
{
$message = sprintf( gettext("Your PostgreSQL database request : %s ") , $object->get_dbname );
$message .= gettext("has been refused by the Moderators team")."\n";
Modified: trunk/vhffs-robots/src/refused_repository.pl
===================================================================
--- trunk/vhffs-robots/src/refused_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -60,12 +61,12 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
+ if( defined $object )
{
$user = $object->get_user;
$lang = Vhffs::Panel::User::get_lang( $user );
setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
+ if( defined $user )
{
$message = sprintf( gettext("Your Download repository request : %s ") , $object->get_name);
$message .= gettext("has been refused by the Moderators team")."\n";
Modified: trunk/vhffs-robots/src/refused_svn.pl
===================================================================
--- trunk/vhffs-robots/src/refused_svn.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_svn.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -4,6 +4,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -30,31 +31,26 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your Subversion repository request : %s") , $object->get_reponame);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
-
- $subject = gettext("Your Subversion repository request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
+ $user = $object->get_user;
+ $lang = Vhffs::Panel::User::get_lang( $user );
+ setlocale( LC_ALL , $lang ) if( defined $lang );
+ if( defined $user ) {
+ $message = sprintf( gettext("Your Subversion repository request : %s") , $object->get_reponame);
+ $message .= gettext("has been refused by the Moderators team")."\n";
+ $message .= gettext("In hope to keep you in our hosting service")."\n\n";
+ if( length( $object->get_description ) > 1 ) {
+ $message .= gettext("Reason given : ");
+ $message .= $object->get_description . "\n";
}
-
- $object->delete;
+ $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
+ $message .= gettext("Cheers,")."\n";
+ $message .= gettext("The Moderator and Admin team");
+
+ $subject = gettext("Your Subversion repository request");
+ Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
}
+
+ $object->delete;
}
Modified: trunk/vhffs-robots/src/refused_web.pl
===================================================================
--- trunk/vhffs-robots/src/refused_web.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/refused_web.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -33,6 +33,7 @@
use locale;
use Locale::gettext;
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -59,31 +60,26 @@
foreach $object ( @{$objects} )
{
- if( ( defined $object ) && ( $object->fetch > 0 ) )
- {
- $user = $object->get_user;
- $lang = Vhffs::Panel::User::get_lang( $user );
- setlocale( LC_ALL , $lang ) if( defined $lang );
- if( $user->fetch > 0 )
- {
- $message = sprintf( gettext("Your web hosting request for the servername : %s ") , $object->get_servername);
- $message .= gettext("has been refused by the Moderators team")."\n";
- $message .= gettext("In hope to keep you in our hosting service")."\n\n";
- if( length( $object->get_description ) > 1 )
- {
- $message .= gettext("Reason given : ");
- $message .= $object->get_description . "\n";
- }
- $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
- $message .= gettext("Cheers,")."\n";
- $message .= gettext("The Moderator and Admin team");
-
- $subject = gettext("Your hosting request");
- Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
+ $user = $object->get_user;
+ $lang = Vhffs::Panel::User::get_lang( $user );
+ setlocale( LC_ALL , $lang ) if( defined $lang );
+ if( defined $user ) {
+ $message = sprintf( gettext("Your web hosting request for the servername : %s ") , $object->get_servername);
+ $message .= gettext("has been refused by the Moderators team")."\n";
+ $message .= gettext("In hope to keep you in our hosting service")."\n\n";
+ if( length( $object->get_description ) > 1 ) {
+ $message .= gettext("Reason given : ");
+ $message .= $object->get_description . "\n";
}
-
- $object->delete;
+ $message .= sprintf( gettext("If you encounters problem, please mail: %s\n") , $vhffs->get_config->get_moderator_mail ) if( defined $vhffs->get_config->get_moderator_mail );
+ $message .= gettext("Cheers,")."\n";
+ $message .= gettext("The Moderator and Admin team");
+
+ $subject = gettext("Your hosting request");
+ Vhffs::Functions::send_mail( $vhffs->get_config->get_moderator_mail , $user->get_mail , $subject , $message );
}
+
+ $object->delete;
}
Modified: trunk/vhffs-robots/src/svn_public.pl
===================================================================
--- trunk/vhffs-robots/src/svn_public.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/svn_public.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Robots::Svn;
@@ -44,43 +45,33 @@
my $svn;
foreach $svn ( @{$repos} )
{
- if( $svn->fetch >= 0)
- {
- $user = $svn->get_user;
- $group = $svn->get_group;
- #First, update uid and gid informations on files
- if( ( $user->fetch > 0 ) && ( $group->fetch > 0 ) )
- {
+ $user = $svn->get_user;
+ $group = $svn->get_group;
+ #First, update uid and gid informations on files
+ if( ( defined $user ) && ( defined $group ) ) {
Vhffs::Robots::vhffs_log( sprintf( "SVN change owner/group to %s/%s for repository %s" , $user->get_username , $group->get_groupname , $svn->get_dir ) , $vhffs);
Vhffs::Functions::change_owner_recur( $svn->get_dir , $user->get_uid , $group->get_gid );
- }
+ }
+ if( $svn->is_public == 1 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "SVN change status %s is now public" , $svn->get_dir ) , $vhffs);
+ Vhffs::Functions::chmod_recur( $svn->get_dir , 0664 , 02775 );
+ } else {
+ Vhffs::Robots::vhffs_log( sprintf( "SVN change status %s is now private" , $svn->get_dir ) , $vhffs);
+ Vhffs::Functions::chmod_recur( $svn->get_dir , 0660 , 02770 );
+ }
- if( $svn->is_public == 1 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "SVN change status %s is now public" , $svn->get_dir ) , $vhffs);
- Vhffs::Functions::chmod_recur( $svn->get_dir , 0664 , 02775 );
- }
- else
- {
- Vhffs::Robots::vhffs_log( sprintf( "SVN change status %s is now private" , $svn->get_dir ) , $vhffs);
- Vhffs::Functions::chmod_recur( $svn->get_dir , 0660 , 02770 );
- }
-
- Vhffs::Robots::Svn::change_conf( $svn );
- $svn->set_status( Vhffs::Constants::ACTIVATED );
-
- if( $svn->commit < 0 )
- {
- $svn->add_history( "Error while updating repository configuration");
- }
- else
- {
- $svn->add_history( "Successfully modify repository configuration");
- }
+ Vhffs::Robots::Svn::change_conf( $svn );
+ $svn->set_status( Vhffs::Constants::ACTIVATED );
+
+ if( $svn->commit < 0 ) {
+ $svn->add_history( "Error while updating repository configuration");
+ } else {
+ $svn->add_history( "Successfully modify repository configuration");
}
}
+
Vhffs::Robots::unlock( $vhffs );
exit 0;
Modified: trunk/vhffs-robots/src/svn_websvn.pl
===================================================================
--- trunk/vhffs-robots/src/svn_websvn.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/svn_websvn.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -31,6 +31,7 @@
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Services::Svn;
Modified: trunk/vhffs-robots/src/update_quota_used.pl
===================================================================
--- trunk/vhffs-robots/src/update_quota_used.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/update_quota_used.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -35,6 +35,7 @@
use locale;
use Locale::gettext;
use Quota;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Group;
@@ -47,25 +48,20 @@
my $groups = Vhffs::Group::getall( $vhffs , Vhffs::Constants::ACTIVATED );
my $group;
my $blocks;
-my $inodes;
-my $su;
+my $used;
my $dev = Quota::getqcarg($vhffs->get_config->get_datadir);
-foreach $group ( @{$groups} )
-{
- if( $group->fetch > 0 )
- {
- ($blocks,undef,undef,undef,$inodes,undef,undef,undef) = Quota::query($dev, $group->get_gid, 1);
- if ( defined $blocks )
- {
- $su = ($blocks+1024-($blocks%1024))/1024;
- $group->set_quota_used( $su );
- if( $group->commit > 0 )
- {
- Vhffs::Robots::vhffs_log( sprintf( "Update quota used for group %s set %s" , $group->get_groupname , $su ) , $vhffs);
- }
- }
- }
+foreach $group ( @$groups ) {
+ ($blocks,undef,undef,undef,undef,undef,undef,undef) = Quota::query($dev, $group->get_gid, 1);
+ if(defined($blocks)) {
+ $used = ($blocks + 1024 - ($blocks % 1024)) / 1024;
+ if($group->get_quota_used() != $used) {
+ $group->set_quota_used( $used );
+ if( $group->commit > 0 ) {
+ Vhffs::Robots::vhffs_log( sprintf( "Update quota used for group %s set %s" , $group->get_groupname , $used ) , $vhffs);
+ }
+ }
+ }
}
Vhffs::Robots::unlock( $vhffs );
Modified: trunk/vhffs-robots/src/update_quota_used_repository.pl
===================================================================
--- trunk/vhffs-robots/src/update_quota_used_repository.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/update_quota_used_repository.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -34,6 +34,7 @@
use POSIX;
use locale;
use Locale::gettext;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Robots;
use Vhffs::Group;
@@ -55,7 +56,7 @@
foreach $group ( @{$groups} )
{
- if( $group->fetch > 0 )
+ if( defined $group )
{
$repos = Vhffs::Services::Repository::getall_per_group( $vhffs, $group);
if( defined $repos )
@@ -68,11 +69,8 @@
# set this space usedto all repositories of this group
foreach $repo ( @{$repos} )
{
- if( $repo->fetch > 0)
- {
- $repo->set_quota_used( $su );
- $repo->commit;
- }
+ $repo->set_quota_used( $su );
+ $repo->commit;
}
Vhffs::Robots::vhffs_log( sprintf( "Update quota used for repositories of group %s to %s MB" , $group->get_groupname , $su ) , $vhffs);
Modified: trunk/vhffs-robots/src/user_group.pl
===================================================================
--- trunk/vhffs-robots/src/user_group.pl 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-robots/src/user_group.pl 2007-04-15 21:17:33 UTC (rev 561)
@@ -29,6 +29,7 @@
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::User;
use Vhffs::Group;
@@ -50,14 +51,12 @@
{
foreach( keys %{$joins} )
{
- $name = Vhffs::Group::get_name_by_gid( $vhffs , $_ );
- $group = new Vhffs::Group( $vhffs , $name , '401' );
- if( ( defined $group ) && ( $group->fetch > 0 ) )
+ $group = Vhffs::Group::get_by_gid( $vhffs , $_ );
+ if( defined $group )
{
- $name = Vhffs::User::get_name_by_uid( $vhffs , $joins->{$_}{'uid'} );
- $user = new Vhffs::User( $vhffs , $name , '401' );
+ $user = Vhffs::User::get_by_uid($vhffs, $joins->{$_}{'uid'} );
- if( ( defined $user ) && ( $user->fetch > 0 ) )
+ if( defined $user )
{
if( Vhffs::Robots::Group::add_user( $user , $group , $vhffs ) < 0 )
{
@@ -76,7 +75,7 @@
}
else
{
- Vhffs::Robots::vhffs_log( sprintf( "Cannot get user %s" , $_ ), $vhffs);
+ Vhffs::Robots::vhffs_log( sprintf( "Cannot get group %s" , $_ ), $vhffs);
}
}
}
@@ -93,14 +92,12 @@
foreach( keys %{$joins} )
{
- $name = Vhffs::Group::get_name_by_gid( $vhffs , $_ );
- $group = new Vhffs::Group( $vhffs , $name , '401' );
- if( ( defined $group ) && ( $group->fetch > 0 ) )
+ $group = Vhffs::Group::get_by_gid( $vhffs , $_ );
+ if( defined $group )
{
- $name = Vhffs::User::get_name_by_uid( $vhffs , $joins->{$_}{'uid'} );
- $user = new Vhffs::User( $vhffs , $name , '401' );
+ $user = Vhffs::User::get_by_uid( $vhffs , $joins->{$_}{'uid'} );
- if( ( defined $user ) && ( $user->fetch > 0 ) )
+ if( defined $user )
{
Vhffs::Robots::vhffs_log( sprintf( "Remove user %s from group %s" , $user->get_username , $group->get_groupname ), $vhffs);
Vhffs::Robots::Group::del_user( $user , $group , $vhffs );
Copied: trunk/vhffs-tests (from rev 555, branches/vhffs_4.1/vhffs-tests)
Copied: trunk/vhffs-tools/mans/vhffs-makeadmin.1 (from rev 555, branches/vhffs_4.1/vhffs-tools/mans/vhffs-makeadmin.1)
Modified: trunk/vhffs-tools/src/vhffs-blankmysql
===================================================================
--- trunk/vhffs-tools/src/vhffs-blankmysql 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-blankmysql 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,6 +6,7 @@
# Use as it : blank_mysql
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Functions;
Modified: trunk/vhffs-tools/src/vhffs-checkinstall
===================================================================
--- trunk/vhffs-tools/src/vhffs-checkinstall 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-checkinstall 2007-04-15 21:17:33 UTC (rev 561)
@@ -3,6 +3,7 @@
#Wrote by soda <god@xxxxxxxxx>
use strict;
+use lib "/usr/share/vhffs/api/";
my @DEPS = qw(HTML::Template Digest::MD5 CGI Locale::gettext Config::General DBI Email::Valid Crypt::PasswdMD5 GD::Text::Wrap GD MIME::Lite XML::RSS CGI::Session Encode utf8);
my $dep;
@@ -12,28 +13,9 @@
my $file;
my $found;
-foreach $depname ( @DEPS )
+foreach ( @DEPS )
{
- $found = 0;
- $dep = $depname;
- $dep =~ s/::/\//g;
- $dep .=".pm";
-
- foreach $dir ( @INC )
- {
- $file = $dir . "/" . $dep;
- $found = 1 if( -f $file );
- }
-
- if( $found == 0 )
- {
- print "$depname module is not found by VHFFS\n";
- print "/o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ \n";
- print "Please consult http://www.vhffs.org website to get documentation\n";
- print "or found miss module on http://cpan.org website\n";
- exit( 1 );
- }
-
+ die ( "Module $_ not found\n/o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ /o\\ \nPlease consult http://www.vhffs.org website to get documentation\nor found miss module on http://cpan.org website\n" ) if ( eval("require $_") == 0);
}
print "Great, your system seems have all required modules\n";
Modified: trunk/vhffs-tools/src/vhffs-dumpmysql
===================================================================
--- trunk/vhffs-tools/src/vhffs-dumpmysql 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-dumpmysql 2007-04-15 21:17:33 UTC (rev 561)
@@ -9,6 +9,7 @@
# Use as it : dump_mysql database_name
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Functions;
Deleted: trunk/vhffs-tools/src/vhffs-firstadmin
===================================================================
--- trunk/vhffs-tools/src/vhffs-firstadmin 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-firstadmin 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,56 +0,0 @@
-#!/usr/bin/perl
-
-use Vhffs::User;
-use Vhffs::Main;
-use Vhffs::Constants;
-
-if( $#ARGV != 1 )
-{
- print "Usage: vhffs-admincreate username password\n";
- exit( 1 );
-}
-
-my $vhffs = init Vhffs::Main;
-my $user = new Vhffs::User( $vhffs , $ARGV[0] , '401' );
-
-
-if( ! defined( $user ) )
-{
- print "Invalid username\n";
- exit( 1 );
-}
-
-if( $user->fetch > 0 )
-{
- print "User already exists\n";
- exit( 1 );
-}
-
-
-if( $user->create < 0 )
-{
- print "Creation error\n";
- exit( 1 );
-}
-
-$user->set_password( $ARGV[1] );
-$user->set_admin( 1 );
-$user->set_status( Vhffs::Constants::ACTIVATED );
-
-if( $user->commit < 0 )
-{
- print "Error while commit\n";
- exit( 1 );
-}
-
-print "Remember, this user is your first admin user\n";
-print "One this user works, please delete it\n";
-print "\n";
-print " VHFFS Team\n";
-
-
-exit( 0 );
-
-
-
-
Modified: trunk/vhffs-tools/src/vhffs-groupdel
===================================================================
--- trunk/vhffs-tools/src/vhffs-groupdel 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-groupdel 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Group;
use Vhffs::Main;
use Vhffs::Constants;
@@ -11,10 +12,10 @@
}
my $vhffs = init Vhffs::Main;
-my $group = new Vhffs::Group( $vhffs , $ARGV[0] , '401' );
+my $group = Vhffs::Group::get_by_groupname( $vhffs , $ARGV[0] );
-if( ( defined $group ) && ( $group->fetch == 1 ) )
+if( defined $group )
{
$group->set_status( Vhffs::Constants::TO_DELETE );
Modified: trunk/vhffs-tools/src/vhffs-groupinfo
===================================================================
--- trunk/vhffs-tools/src/vhffs-groupinfo 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-groupinfo 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::Group;
use Vhffs::Main;
Copied: trunk/vhffs-tools/src/vhffs-makeadmin (from rev 555, branches/vhffs_4.1/vhffs-tools/src/vhffs-makeadmin)
Modified: trunk/vhffs-tools/src/vhffs-moderate
===================================================================
--- trunk/vhffs-tools/src/vhffs-moderate 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-moderate 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,6 +6,7 @@
use Locale::gettext;
use Data::Dumper;
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Group;
use Vhffs::Main;
@@ -380,15 +381,10 @@
$status = shift;
$vhffs = init Vhffs::Main;
- $object = new Vhffs::Object( $vhffs , $oid , '51' );
+ $object = Vhffs::Object::get_by_oid( $vhffs , $oid );
if( ! defined $object )
{
- print "Object is null, error\n";
- return( -1 );
- }
- elsif( $object->fetch < 0 )
- {
print "Cannot fetch object\n";
return( -1 );
}
Modified: trunk/vhffs-tools/src/vhffs-passwd
===================================================================
--- trunk/vhffs-tools/src/vhffs-passwd 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-passwd 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
@@ -10,10 +11,10 @@
}
my $vhffs = init Vhffs::Main;
-my $user = new Vhffs::User( $vhffs , $ARGV[0] , '401' );
+my $user = Vhffs::User::get_by_username( $vhffs , $ARGV[0] );
-if( ( defined $user ) && ( $user->fetch == 1 ) )
+if( defined $user )
{
$user->set_password( $ARGV[1] );
Modified: trunk/vhffs-tools/src/vhffs-quota
===================================================================
--- trunk/vhffs-tools/src/vhffs-quota 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-quota 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,6 +6,7 @@
#Use some VHFFS modules, it can be useful
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Group;
@@ -30,20 +31,14 @@
my $vhffs = init Vhffs::Main;
#Create new group
-my $group = new Vhffs::Group( $vhffs , $groupname , '401' );
+my $group = Vhffs::Group::get_by_groupname( $vhffs , $groupname );
if( ! defined $group )
{
print "Error while build vhffs object\n";
exit( -1 );
}
-elsif( $group->fetch < 0 )
-{
- print "Group does not exists\n";
- exit( -2 );
-}
-
if( $action eq 'get' )
{
print "Quota used for this group:\t".$group->get_quota_used."Mb\n";
Modified: trunk/vhffs-tools/src/vhffs-userdel
===================================================================
--- trunk/vhffs-tools/src/vhffs-userdel 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-userdel 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Constants;
@@ -11,10 +12,10 @@
}
my $vhffs = init Vhffs::Main;
-my $user = new Vhffs::User( $vhffs , $ARGV[0] , '401' );
+my $user = Vhffs::User::get_by_username( $vhffs , $ARGV[0] );
-if( ( defined $user ) && ( $user->fetch == 1 ) )
+if( defined $user )
{
$user->set_status( Vhffs::Constants::TO_DELETE );
Modified: trunk/vhffs-tools/src/vhffs-userinfo
===================================================================
--- trunk/vhffs-tools/src/vhffs-userinfo 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-userinfo 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Functions;
Modified: trunk/vhffs-tools/src/vhffs-usermod
===================================================================
--- trunk/vhffs-tools/src/vhffs-usermod 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-usermod 2007-04-15 21:17:33 UTC (rev 561)
@@ -1,5 +1,6 @@
#!/usr/bin/perl
+use lib "/usr/share/vhffs/api/";
use Vhffs::User;
use Vhffs::Main;
use Vhffs::Constants;
@@ -13,11 +14,11 @@
}
my $vhffs = init Vhffs::Main;
-my $user = new Vhffs::User( $vhffs , $ARGV[0] , '401' );
+my $user = Vhffs::User::get_by_username( $vhffs , $ARGV[0] );
my $mod = $ARGV[1];
my $value = $ARGV[2];
-if( ( defined $user ) && ( $user->fetch == 1 ) )
+if( defined $user )
{
if( $mod =~ /shell|firstname|lastname|city|admin/ )
{
Modified: trunk/vhffs-tools/src/vhffs-webdir
===================================================================
--- trunk/vhffs-tools/src/vhffs-webdir 2007-04-15 19:31:15 UTC (rev 560)
+++ trunk/vhffs-tools/src/vhffs-webdir 2007-04-15 21:17:33 UTC (rev 561)
@@ -6,6 +6,7 @@
# Use as it : webdir toto.tuxfamily.org
use strict;
+use lib "/usr/share/vhffs/api/";
use Vhffs::Main;
use Vhffs::Constants;
use Vhffs::Functions;