/// <summary> /// This instance is allowed to call only from test bed - todo security /// </summary> /// <param name="userName">The logged in user name</param> /// <param name="rbacName">The overridden rbac name, empty will use user's default</param> /// <param name="roleName">The overriden role name, empty will use user's default</param> public Rbac(string userName, string rbacName, string roleName) { //no cache will be implemented DataManager.Manager manager = new DataManager.Manager(false); RbacUser user = new RbacUser(userName); if (!string.IsNullOrEmpty(roleName)) { user.Role = new RbacRole(roleName); //override role } if (user.Role == null) { RbacException.Raise(string.Format("The role '{0}' is not found!", roleName), RbacExceptionCategories.Repository); } Rbac dbRbac = null; if (!string.IsNullOrEmpty(rbacName)) { dbRbac = manager.GetRbac(rbacName); //override rbac } else { dbRbac = manager.GetRbac(user.Role.RbacId); } if (dbRbac == null) { RbacException.Raise(string.Format("The rbac '{0}' was not defined yet!", rbacName), RbacExceptionCategories.Repository); } dbRbac.User = user; Assign(dbRbac); }
public Rbac CreateNew(string rbacName, string description, string connectionString, string metaDataEntitlement) { DataManager.Manager manager = new DataManager.Manager(false); if (manager.GetRbac(rbacName) != null) { RbacException.Raise(string.Format("'{0}' already exists! Please provide a different name.", rbacName), RbacExceptionCategories.Repository); } Rbac newRbac = new Rbac(); newRbac.Name = rbacName; newRbac.Description = description; newRbac.ConnectionString = connectionString; N("Generating meta data..."); newRbac.MetaDataRbac = RbacMetaData.Generate(newRbac.ConnectionString); N("Done!", LogMessageTypes.Success); N("Saving your rbac instance..."); Rbac rbac = manager.AddOrUpdate(newRbac); N("Done!", LogMessageTypes.Success); return(rbac); }