Exemple #1
0
        protected virtual TRole GetRole(int tenantId, RoleTemplateMarkup role, bool addIfMissing)
        {
            var retVal = db.SecurityRoles.FirstOrDefault(n =>
                                                         n.TenantId == tenantId && n.RoleName == role.Name);

            if (retVal == null && addIfMissing)
            {
                retVal = new TRole
                {
                    TenantId     = tenantId,
                    RoleName     = role.Name,
                    IsSystemRole = role.IsSystemRole
                };
                db.SecurityRoles.Add(retVal);
            }

            return(retVal);
        }
Exemple #2
0
        protected virtual void ApplyPermissions(TRole role, RoleTemplateMarkup template)
        {
            foreach (var perm in template.Permissions)
            {
                var tmp = GetPermission(role.TenantId, perm, true);
                if (role.RoleId == 0 || tmp.PermissionId == 0 || !db.RolePermissions.Any(n =>
                                                                                         n.TenantId == role.TenantId && n.PermissionId == tmp.PermissionId && n.RoleId == role.RoleId))
                {
                    TRolePermission lnk = new TRolePermission
                    {
                        Permission = tmp,
                        TenantId   = role.TenantId,
                        Role       = role
                    };

                    db.RolePermissions.Add(lnk);
                }
            }
        }
Exemple #3
0
        protected virtual void RevokePermissions(TRole role, RoleTemplateMarkup template, IList <int> permissionsToCheck)
        {
            foreach (var perm in template.Permissions)
            {
                var tmp = GetPermission(role.TenantId, perm, false);
                if (tmp != null)
                {
                    if (!perm.Global && !permissionsToCheck.Contains(tmp.PermissionId))
                    {
                        permissionsToCheck.Add(tmp.PermissionId);
                    }

                    var lnk = db.RolePermissions.FirstOrDefault(n =>
                                                                n.TenantId == role.TenantId && n.PermissionId == tmp.PermissionId && n.RoleId == role.RoleId);
                    if (lnk != null)
                    {
                        db.RolePermissions.Remove(lnk);
                    }
                }
            }
        }