public override void CreateRole(string roleName) { SecUtility.CheckParameter(ref roleName, true, true, true, 256, "roleName"); try { using (var session = new MongoSession(_connectionString)) { var roles = from r in session.Roles where r.RoleName == roleName select r; if (roles.Any()) { throw new ProviderException(StringResources.GetString(StringResources.Provider_role_already_exists, roleName)); } var role = new MembershipRole { RoleName = roleName, LoweredRoleName = roleName.ToLowerInvariant() }; session.Add(role); } } catch { throw; } }
public static void InitializeRoles(Type r, string connectionString) { var session = new MongoSession(connectionString); List <MembershipRole> roles = new List <MembershipRole>(); List <MembershipPermission> permissions = session.Permissions.ToList(); List <string> dbRoles = session.Roles.Select(x => x.RoleName).ToList(); foreach (FieldInfo field in r.GetFields(BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.Public)) { string value = field.GetRawConstantValue().ToString(); if (!dbRoles.Contains(value)) { MembershipRole role = new MembershipRole { RoleName = value }; if (value == DefaultRoles.Admin) { foreach (var p in permissions) { role.Permissions.Add(p.Name); } } session.Save(role); } } }
public override void CreateRole(string roleName) { SecUtility.CheckParameter(ref roleName, true, true, true, 256, "roleName"); try { var roles = from r in _session.Roles where r.RoleName == roleName select r; if (roles.Any()) { throw new ProviderException(StringResources.GetString(StringResources.Provider_role_already_exists, roleName)); } var role = new MembershipRole { RoleName = roleName, LoweredRoleName = roleName.ToLowerInvariant() }; _session.Add(role); } catch { throw; } }
private static void ProcessActionPermissionsToRole(List<MembershipPermission> permissions, MembershipRole role, List<MembershipAccount> usersInRole, Func<List<string>, string, List<string>> processOpUnderPermissions) { foreach (var perm in permissions) { if (perm != null) { if (!role.Permissions.Contains(perm.Name)) { processOpUnderPermissions(role.Permissions, perm.Name); foreach (var user in usersInRole) { var roleToChange = user.Roles.FirstOrDefault(x => x.RoleName == role.RoleName); processOpUnderPermissions(roleToChange.Permissions, perm.Name); } } } } _session.Save(role); foreach (var user in usersInRole) { _session.Save(user); } }
public static void InitializeRoles(Type r, string connectionString) { var session = new MongoSession(connectionString); List<MembershipRole> roles = new List<MembershipRole>(); List<MembershipPermission> permissions = session.Permissions.ToList(); List<string> dbRoles = session.Roles.Select(x => x.RoleName).ToList(); foreach (FieldInfo field in r.GetFields(BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.Public)) { string value = field.GetRawConstantValue().ToString(); if (!dbRoles.Contains(value)) { MembershipRole role = new MembershipRole { RoleName = value }; if (value == DefaultRoles.Admin) { foreach (var p in permissions) { role.Permissions.Add(p.Name); } } session.Save(role); } } }
private static void ProcessActionPermissionsToRole(List <MembershipPermission> permissions, MembershipRole role, List <MembershipAccount> usersInRole, Func <List <string>, string, List <string> > processOpUnderPermissions) { foreach (var perm in permissions) { if (perm != null) { if (!role.Permissions.Contains(perm.Name)) { processOpUnderPermissions(role.Permissions, perm.Name); foreach (var user in usersInRole) { var roleToChange = user.Roles.FirstOrDefault(x => x.RoleName == role.RoleName); processOpUnderPermissions(roleToChange.Permissions, perm.Name); } } } } _session.Save(role); foreach (var user in usersInRole) { _session.Save(user); } }