|
发表于 2009-9-14 12:37:15
|
显示全部楼层
2、非项目负责人(某个工作项的负责人)也能创建工作项,应该是当前节点的负责人只能创建当前节点的子节点,而不能创建同级别兄弟节点
项目中心-新增权限控制
1、项目创建者、控制者可以创建所有工作项
2、当前工作项的控制者可以新建子工作项,不允许新建一级工作项
3、其他操作者无任何权限
1、业务系统\项目中心\工作项\工作项信息
a、声明project
FProject: TProject;
property Project: TProject read FProject write FProject;
b、增加函数,判断权限
function GetOperateLevel(AProject: TProject; APlan: TPlan; AOperatorID: String): Integer;
var
lExcutor: TProjectExecutor;
begin
{在这里计算工作项的新建权限
1、项目创建者、控制者可以创建所有工作项 20
2、当前工作项的控制者可以新建子工作项,不允许新建一级工作项 10
3、其他操作者无任何权限 0}
if Assigned(AProject) and (AProject.Executors.Find([TProjectExecutorType.petCreator,
TProjectExecutorType.petPrincipal], AOperatorID, false) <> nil) then
Result := 20
else if Assigned(APlan) and (APlan.PlanExecutors.FindPlanExecutor([TPlanExecutorType.petCreator,
TPlanExecutorType.petPrincipal], AOperatorID, false) <> nil) then
result := 10
else result := 0;
end;
c、根据权限控制action状态
procedure TWBSINFO.ActionUpdate(Sender: TAction);
begin
{jhm 控制新增权限}
if SysUtils.SameText(Sender.Name, 'actPlanNewRoot') then
Sender.Enabled := OperationEnabled('BIZ:\COLLABORATION\PLANOPERATIONGROUP.OPERATIONGROUP\NEWROOT.OPERATION') and
(GetOperateLevel(Project, FPlan, TSystemCore.Operator.ID) > 0)
else if StringUtils.PosAnsi('actPlanNewRoot_', Sender.Name) = 1 then
Sender.Enabled := OperationEnabled('BIZ:\COLLABORATION\PLANOPERATIONGROUP.OPERATIONGROUP\NEWROOT.OPERATION') and
(GetOperateLevel(Project, FPlan, TSystemCore.Operator.ID) >= 20)
else if SysUtils.SameText(Sender.Name, 'actPlanNewSub') then
Sender.Enabled := OperationEnabled('BIZ:\COLLABORATION\PLANOPERATIONGROUP.OPERATIONGROUP\NEWSUB.OPERATION') and
(GetOperateLevel(Project, FPlan, TSystemCore.Operator.ID) >= 10)
else if StringUtils.PosAnsi('actPlanNewSub_', Sender.Name) = 1 then
Sender.Enabled := OperationEnabled('BIZ:\COLLABORATION\PLANOPERATIONGROUP.OPERATIONGROUP\NEWROOT.OPERATION') and
(GetOperateLevel(Project, FPlan, TSystemCore.Operator.ID) >= 10)
2、业务系统\项目中心\面板功能\我的功能(项目中心)\我的项目
修改procedure TMYPROJECT.ViewModeChanged;
TProjectViewMode.vmProjectWBS:
begin
tbTab.Index := 2; // imgTab.Picture := imgTab4.Picture;
pnlDocBarProject.Visible := False;
pnlExecutor.Visible := False;
cnrHeader.Height := tbTab.Height;
RefreshWBSPage;
dvWBS.Visible := True;
dvWBS.BringToFront;
pnlGrid.Visible := False;
dvTask.Visible := False;
dvDetail.Visible := False;
dvDetail.Readonly := True;
dvExcutors.Visible := False;
dvDoc.Visible := False;
dvResource.Visible := False;
{jhm 控制新增工作项权限}
InfoWBS.Project := InfoProject.Project;
end; |
|