ACC SHELL

Path : /usr/share/YaST2/include/sudo/
File Upload :
Current File : //usr/share/YaST2/include/sudo/wizards.ycp

/* ------------------------------------------------------------------------------
 * Copyright (c) 2006 Novell, Inc. All Rights Reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of version 2 of the GNU General Public License as published by the
 * Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, contact Novell, Inc.
 *
 * To contact Novell about this file by physical or electronic mail, you may find
 * current contact information at www.novell.com.
 * ------------------------------------------------------------------------------
 */

/**
 * File:	include/sudo/wizards.ycp
 * Package:	Configuration of sudo
 * Summary:	Wizards definitions
 * Authors:	Bubli <kmachalkova@suse.cz>
 *
 * $Id: wizards.ycp 27914 2006-02-13 14:32:08Z locilka $
 */

{

textdomain "sudo";

import "Sequencer";
import "Wizard";

include "sudo/complex.ycp";
include "sudo/dialogs.ycp";
include "sudo/dialog-spec.ycp";
include "sudo/dialog-user.ycp";
include "sudo/dialog-host.ycp";
include "sudo/dialog-runas.ycp";
include "sudo/dialog-cmnd.ycp";

/*
 * Main workflow of sudo configuration
 */

any MainSequence() {

    map aliases = $[
	"configuration" :  ``( RunSudoDialogs() ),
	"user_spec_add" :  ``( AddEditUserSpecDialog("Add") ),
	"user_spec_edit" : ``( AddEditUserSpecDialog("Edit") ),
	"user_spec_save" :  ``( SaveUserSpec() ),
	"user_alias_add" :  ``( AddEditUserAliasDialog("Add") ),
	"user_alias_edit" : ``( AddEditUserAliasDialog("Edit") ),
	"user_alias_save" :  ``( SaveUserAliases() ),
	"host_alias_add" :  ``( AddEditHostAliasDialog("Add") ),
	"host_alias_edit" : ``( AddEditHostAliasDialog("Edit") ),
	"host_alias_save" :  ``( SaveHostAliases() ),
	"runas_alias_add" :  ``( AddEditRunAsAliasDialog("Add") ),
	"runas_alias_edit" : ``( AddEditRunAsAliasDialog("Edit") ),
	"runas_alias_save" :  ``( SaveRunAsAliases() ),
	"cmnd_alias_add"  : ``(AddEditCmndAliasDialog("Add")),
	"cmnd_alias_edit" : ``(AddEditCmndAliasDialog("Edit")),
    ];

    map sequence = $[
		"ws_start" : "configuration",
		"configuration" : $[
			`add_spec : "user_spec_add",
			`edit_spec: "user_spec_edit",
			`add_u_alias : "user_alias_add",
			`edit_u_alias: "user_alias_edit",
			`add_h_alias : "host_alias_add",
			`edit_h_alias: "host_alias_edit",
			`add_r_alias:	"runas_alias_add",
			`edit_r_alias: "runas_alias_edit",
			`save_r_alias: "runas_alias_save",
			`add_c_alias : "cmnd_alias_add",
			`edit_c_alias: "cmnd_alias_edit",
			`abort	: `abort,
			`next	: `next,
		],
		"user_spec_add" : $[
			`abort : `abort,
			`next : "user_spec_save",
		],
		"user_spec_edit" : $[
			`abort : `abort,
			`next : "user_spec_save",
		],
		"user_spec_save" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"user_alias_add" : $[
			`abort : `abort,
			`next : "user_alias_save",
		],
		"user_alias_edit" : $[
			`abort : `abort,
			`next : "user_alias_save",
		],
		"user_alias_save" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"host_alias_add" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"host_alias_edit" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"runas_alias_add" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"runas_alias_edit" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"cmnd_alias_add" : $[
			`abort : `abort,
			`next : "configuration",
		],
		"cmnd_alias_edit" : $[
			`abort : `abort,
			`next : "configuration",
		],
	 ];
    any ret = Sequencer::Run(aliases, sequence);

    return ret;
}

/**
 * Whole configuration of sudo
 * @return sequence result
 */
any SudoSequence() {

    map aliases = $[
	"main"	:   ``( MainSequence() ),
	"write"	: [ ``( WriteDialog() ), true ]
    ];

    map sequence = $[
	"ws_start" : "main",
	"main" : $[
	    `abort	: `abort,
	    `next	: "write"
	],
	"write" : $[
	    `abort	: `abort,
	    `next	: `next
	]
    ];

    Wizard::CreateDialog();
    Wizard::SetDesktopIcon("sudo");
    if (!Sudo::Read())
       return `abort;

    any ret = Sequencer::Run(aliases, sequence);

    UI::CloseDialog();
    return ret;
}

/* EOF */
}

ACC SHELL 2018