Exemple #1
0
        /// <summary>
        /// 撤消资源的权限
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="resourceCategory">资源分类</param>
        /// <param name="resourceId">资源主键</param>
        /// <param name="revokePermissionItemIds">操作权限主键</param>
        /// <returns>影响的行数</returns>
        public int RevokeResourcePermission(UserInfo userInfo, string resourceCategory, string resourceId, string[] revokePermissionItemIds)
        {
            var returnValue = 0;
            var parameter   = ParameterUtil.CreateWithMessage(userInfo, MethodBase.GetCurrentMethod(), this.serviceName, RDIFrameworkMessage.PermissionService_RevokeResourcePermission);

            ServiceUtil.ProcessRDIReadDb(userInfo, parameter, dbProvider =>
            {
                if (revokePermissionItemIds != null)
                {
                    var permissionManager = new PiPermissionManager(dbProvider, userInfo);
                    string[] names        = new string[3];
                    string[] values       = new string[3];
                    names[0]  = PiPermissionTable.FieldResourceCategory;
                    values[0] = resourceCategory;
                    names[1]  = PiPermissionTable.FieldResourceId;
                    values[1] = resourceId;
                    names[2]  = PiPermissionTable.FieldPermissionId;
                    for (int i = 0; i < revokePermissionItemIds.Length; i++)
                    {
                        values[2] = revokePermissionItemIds[i];
                        // returnValue += permissionManager.SetDeleted(names, values);
                        returnValue += permissionManager.Delete(names, values);
                    }
                }
            });
            return(returnValue);
        }
        /// <summary>
        /// 撤销组织机构全部权限
        /// </summary>
        /// <param name="organizeId">组织机构主键</param>
        /// <returns>影响行数</returns>
        public int RevokeAll(string organizeId)
        {
            PiPermissionManager permissionManager            = new PiPermissionManager(DBProvider, UserInfo, this.CurrentTableName);
            List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceCategory, this.CurrentTableName),
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceId, organizeId)
            };

            return(permissionManager.Delete(parameters));
        }
        //
        //  撤销权限的实现部分
        //

        #region private int Revoke(PiPermissionManager permissionManager, string organizeId, string permissionItemId) 为了提高撤销的运行速度
        /// <summary>
        /// 为了提高撤销的运行速度
        /// </summary>
        /// <param name="permissionManager">资源权限读写器</param>
        /// <param name="organizeId">组织机构主键</param>
        /// <param name="permissionItemId">权限主键</param>
        /// <returns>影响行数</returns>
        private int Revoke(PiPermissionManager permissionManager, string organizeId, string permissionItemId)
        {
            List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceCategory, PiOrganizeTable.TableName),
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceId, organizeId),
                new KeyValuePair <string, object>(PiPermissionTable.FieldPermissionId, permissionItemId)
            };

            return(permissionManager.Delete(parameters));
        }
Exemple #4
0
        /// <summary>
        /// 撤销用户全部权限
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <returns>影响行数</returns>
        public int RevokeAll(string userId)
        {
            PiPermissionManager permissionManager = new PiPermissionManager(DBProvider, UserInfo);

            string[] names  = new string[2];
            string[] values = new string[2];
            names[0]  = PiPermissionTable.FieldResourceCategory;
            values[0] = PiUserTable.TableName;
            names[1]  = PiPermissionTable.FieldResourceId;
            values[1] = userId;
            return(permissionManager.Delete(names, values));
        }
Exemple #5
0
        //
        //  撤销权限的实现部分
        //

        #region private int Revoke(PiPermissionManager permissionManager, string userId, string permissionItemId) 为了提高撤销的运行速度
        /// <summary>
        /// 为了提高撤销的运行速度
        /// </summary>
        /// <param name="permissionManager">资源权限读写器</param>
        /// <param name="userId">用户主键</param>
        /// <param name="permissionItemId">权限主键</param>
        /// <returns>影响行数</returns>
        private int Revoke(PiPermissionManager permissionManager, string userId, string permissionItemId)
        {
            string[] names  = new string[3];
            string[] values = new string[3];
            names[0]  = PiPermissionTable.FieldResourceCategory;
            values[0] = PiUserTable.TableName;
            names[1]  = PiPermissionTable.FieldResourceId;
            values[1] = userId;
            names[2]  = PiPermissionTable.FieldPermissionId;
            values[2] = permissionItemId;
            return(permissionManager.Delete(names, values));
        }
Exemple #6
0
        public int Delete(string moduleId, string permissionItemId)
        {
            int returnValue = 0;
            List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >
            {
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceCategory, PiModuleTable.TableName),
                new KeyValuePair <string, object>(PiPermissionTable.FieldResourceId, moduleId),
                new KeyValuePair <string, object>(PiPermissionTable.FieldPermissionId, permissionItemId)
            };
            PiPermissionManager manager = new PiPermissionManager(this.DBProvider, this.UserInfo);

            returnValue = manager.Delete(parameters);
            return(returnValue);
        }