Import nweadmin 0.1b from upstream zip
This commit is contained in:
116
SRC/EDUSER.PAS
Normal file
116
SRC/EDUSER.PAS
Normal file
@@ -0,0 +1,116 @@
|
||||
unit Eduser;
|
||||
|
||||
interface
|
||||
|
||||
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
|
||||
StdCtrls, ExtCtrls, Dialogs;
|
||||
|
||||
type
|
||||
TBtnBottomDlg3 = class(TForm)
|
||||
OKBtn: TBitBtn;
|
||||
CancelBtn: TBitBtn;
|
||||
Bevel1: TBevel;
|
||||
Edit1: TEdit;
|
||||
CheckBox1: TCheckBox;
|
||||
Button1: TButton;
|
||||
Label1: TLabel;
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure OKBtnClick(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
UserNAme: String;
|
||||
Int1: Integer;
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
BtnBottomDlg3: TBtnBottomDlg3;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.DFM}
|
||||
|
||||
uses User, nwBindry, SysUtils, ChgPass2;
|
||||
|
||||
function IsUserPrivileged(UserName:String): Boolean;
|
||||
begin
|
||||
IsUserPrivileged:=IsBinderyObjectInSet(UserName, OT_USER, 'SECURITY_EQUALS',
|
||||
'SUPERVISOR', OT_USER);
|
||||
end;
|
||||
|
||||
procedure TBtnBottomDlg3.FormShow(Sender: TObject);
|
||||
begin
|
||||
UserName:=''; Int1:=1;
|
||||
While BtnBottomDlg.ListBox1.Items[BtnBottomDlg.ListBox1.ItemIndex][Int1]<>',' do
|
||||
begin
|
||||
UserName:=UserName+BtnBottomDlg.ListBox1.Items[BtnBottomDlg.ListBox1.ItemIndex][Int1];
|
||||
Int1:=Int1+1;
|
||||
end;
|
||||
Edit1.Text:=BtnBottomDlg.GetUnixUser(UserName);
|
||||
Caption:='Editing User '+UserName;
|
||||
CheckBox1.Checked:=((IsUserPrivileged(UserName)) or (UserName='SUPERVISOR'));
|
||||
CheckBox1.Enabled:=(UserName<>'SUPERVISOR');
|
||||
Button1.Enabled:=(UserName<>'SUPERVISOR');
|
||||
end;
|
||||
|
||||
function GetNewPass: String;
|
||||
begin
|
||||
PassWordDlg.ShowModal;
|
||||
GetNewPAss:=PasswordDlg.Password.Text;
|
||||
end;
|
||||
|
||||
|
||||
procedure TBtnBottomDlg3.OKBtnClick(Sender: TObject);
|
||||
var SX: Integer;
|
||||
MyPThing: TProperty;
|
||||
|
||||
begin
|
||||
For SX:=1 to 128 do MyPThing[SX]:=0;
|
||||
StrPCopy(Addr(MyPThing), Edit1.Text);
|
||||
WritePropertyValue(UserName, OT_USER, 'UNIX_USER', 1, MyPThing, False);
|
||||
if UserName<>'SUPERVISOR' then
|
||||
begin
|
||||
DeleteProperty(UserName, OT_USER, 'SECURITY_EQUALS');
|
||||
CreateProperty(Edit1.Text, OT_USER, 'SECURITY_EQUALS', BF_SET, $31);
|
||||
if CheckBox1.Checked then AddBinderyObjectToSet(Edit1.Text, OT_USER,
|
||||
'SECURITY_EQUALS','SUPERVISOR', OT_USER)
|
||||
else AddBinderyObjectToSet(Edit1.Text, OT_USER,'SECURITY_EQUALS','EVERYONE', OT_USER_GROUP);
|
||||
end;
|
||||
MessageDlg('Changes to user will take effect next time they login.', mtInformation, [mbOK], 0);
|
||||
Close;
|
||||
end;
|
||||
|
||||
procedure TBtnBottomDlg3.Button1Click(Sender: TObject);
|
||||
var Successish: Boolean;
|
||||
Int3: Integer;
|
||||
Prop1: TProperty;
|
||||
begin
|
||||
Successish:=DeleteBinderyObject(UserName, OT_USER);
|
||||
if Successish=TRUE then
|
||||
begin
|
||||
if CreateBinderyObject(UserName, OT_USER, 0, $31)=FALSE then Successish:=False
|
||||
else begin
|
||||
CreateProperty(UserNAme, OT_USER, 'UNIX_USER', 0, $30);
|
||||
CreateProperty(UserName, OT_USER, 'SECURITY_EQUALS', BF_SET, $31);
|
||||
CreateProperty(UserName, OT_USER, 'GROUPS_I''M_IN', BF_SET, $32);
|
||||
For Int3:=1 to 128 do Prop1[Int3]:=0;
|
||||
StrPCopy(Addr(Prop1), Edit1.Text);
|
||||
WritePropertyValue(UserName, OT_USER, 'UNIX_USER', 1, Prop1, False);
|
||||
{Security}
|
||||
if CheckBox1.Checked then AddBinderyObjectToSet(UserName, OT_USER,
|
||||
'SECURITY_EQUALS','SUPERVISOR', OT_USER)
|
||||
else AddBinderyObjectToSet(UserName, OT_USER,'SECURITY_EQUALS','EVERYONE', OT_USER_GROUP);
|
||||
{Groups}
|
||||
AddBinderyObjectToSet(UserName, OT_USER, 'GROUPS_I''M_IN','EVERYONE', OT_USER_GROUP);
|
||||
{Set Password}
|
||||
if ChangeEncrBinderyObjectPassword(Username, OT_USER, '', GetNewPass)=FALSE then
|
||||
MessageDlg('There was an error setting the password. The password is empty!', mtwarning, [mbOK], 0);
|
||||
end;
|
||||
end;
|
||||
if Successish=FALSE then MessageDlg('Failed. Sorry.', mtError, [mbOK], 0) else
|
||||
MessageDlg('Password Changed.', mtError, [mbOK], 0);
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user