コード例 #1
0
        public static SCPermissionCollection GetPermissions(this DataTable table, SCPermissionCollection existedPermissions)
        {
            Dictionary <string, SCPermission> existedDict = existedPermissions.ToDictionaryByCodeName();

            SCPermissionCollection permissions = new SCPermissionCollection();

            if (table != null && table.Columns.Contains("权限点/数据权限"))
            {
                foreach (DataRow row in table.Rows)
                {
                    string permissionName = row["权限点/数据权限"].ToString();

                    if (permissionName.IsNotEmpty())
                    {
                        SCPermission permission = null;

                        if (existedDict.TryGetValue(permissionName, out permission) == false)
                        {
                            permission = new SCPermission();

                            InitProperties(permission, permissionName);
                        }

                        permissions.Add(permission);
                    }
                }
            }

            return(permissions);
        }
コード例 #2
0
        public static void ImportRolesAndPermissions(this SCApplication app, DataTable table, Action <RolesFunctionsImportContext> callerAction = null)
        {
            if (table.Columns.Count > StartColumn)
            {
                ProcessProgress.Current.MinStep     = 0;
                ProcessProgress.Current.MaxStep     = 1;
                ProcessProgress.Current.CurrentStep = 0;
                ProcessProgress.Current.Response();

                SCRolesAndPermissions rolesAndPermissions = table.GetRolesAndPermissions(app.CurrentPermissions);

                SCRoleCollection       roles       = rolesAndPermissions.Roles;
                SCPermissionCollection permissions = rolesAndPermissions.Permissions;

                app.UpdateImportedRoles(roles, callerAction);
                app.UpdateImportedPermissions(permissions, callerAction);

                app = app.Refresh();

                app.UpdateImportedPermissionsInRoles(roles, callerAction);

                app = app.Refresh();
                app.SyncGroupsInRoles(callerAction);
            }
        }
コード例 #3
0
        public static SCRolesAndPermissions GetRolesAndPermissions(this DataTable table, SCPermissionCollection existedPermissions)
        {
            table.NullCheck("table");

            SCRoleCollection       roles       = new SCRoleCollection();
            SCPermissionCollection permissions = table.GetPermissions(existedPermissions);

            if (table.Columns.Contains("权限点/数据权限") && table.Columns.Count > StartColumn)
            {
                for (int i = StartColumn; i < table.Columns.Count; i++)
                {
                    string roleName = table.Columns[i].ColumnName;

                    SCRole role = roles.Append(InitProperties(new SCRole(), roleName));

                    foreach (DataRow row in table.Rows)
                    {
                        string permissionName = row["权限点/数据权限"].ToString();

                        if (permissionName.IsNotEmpty())
                        {
                            SCPermission permission = permissions.Find(p => string.Compare(permissionName, p.CodeName, true) == 0);

                            if (permission != null)
                            {
                                string cellValue = row[roleName].ToString();

                                if (cellValue.IsNullOrEmpty() || cellValue.Trim().IsNullOrEmpty() || cellValue.Trim().ToUpper() == "N")
                                {
                                    continue;
                                }

                                role.CurrentPermissions.Append(permission);
                            }
                        }
                    }
                }
            }

            return(new SCRolesAndPermissions(roles, permissions));
        }
コード例 #4
0
		protected override void OnIDChanged()
		{
			base.OnIDChanged();

			this._AllPermissions = null;
			this._AllPermissionsRelations = null;
			this._AllRoles = null;
			this._AllRolesRelations = null;
			this._CurrentRoles = null;
			this._CurrentPermissions = null;
		}