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); }
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); } }
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)); }
protected override void OnIDChanged() { base.OnIDChanged(); this._AllPermissions = null; this._AllPermissionsRelations = null; this._AllRoles = null; this._AllRolesRelations = null; this._CurrentRoles = null; this._CurrentPermissions = null; }